Last modified 2 years ago
GUI languages comparison
[WiP] languages comparison for GUI.
C
Current language for GUI.
- Pros:
- Well-known
- Excellent tools support
- Fast and light
- Static typing
- Cons:
- No garbage collection
- No type inference
- No closures, higher-order functions and flexible containers
- No memory protection
- Somewhat weak type system
C++
- Pros (compared to C):
- Better containers
- Easier memory/resource management (RAII)
- Cons (compared to C):
- Complex and hard to use
- Ugly
Lua+MetaLua
- Pros:
- Relatively well-known
- Good tools support
- Compact and easy to learn
- Garbage collection
- Easy C bindings
- REPL available on device
- Architecture-independent code
- Extensible syntax
- Fast and light (with LNUM patch)
- Memory protection
- Closures, higher-order functions, flexible containers
- Strong type system (with "No implicit type conversions" patch)
- Cons:
- Dynamic typing, lacks most of error checking before run time.
HaXe (over Neko VM)
- Pros:
- Static typing with type inference
- Compact and easy to learn
- Easy C bindings
- Architecture-independent code
- Garbage collection
- Memory protection
- Relatively fast and light
- Closures, higher-order functions, flexible containers
- Strong type system
- Cons:
- Obscure
- Bad tools support
NekoML
- Pros:
- Static typing with type inference
- Compact and easy to learn
- Easy C bindings
- Architecture-independent code
- Garbage-collection
- Memory protection
- Fast and light
- Closures, higher-order functions, flexible containers
- Strong type system
- Cons:
- Obscure
- Bad tools support
librep
- Pros:
- Compact lisp dialect (hybrid of elisp and scheme)
- Easy C bindings
- Architecture-independent (byte-)code
- REPL available on device
- Memory protection
- Garbage-collection
- Strong type system
- Closures, higher-order functions, flexible containers
- Compact and easy to learn
- Cons:
- Dynamic typing, lacks most of error checking before run time.
- Obscure
- Virtually no tools support
ocaml
- Pros:
- Static typing with type inference
- Easy to learn
- Easy C bindings
- Architecture-independent code
- Garbage collection
- Memory protection
- Cons:
- Ugly stdlib
- Softfloat on armel not supported in stable branches
- Compiler is no longer maintained
Vala
- Pros
- Direct C access
- Static typing, type inference for local variables
- Easy to learn
- Refcounting
- Fast and lean, directly translated to C
- Cons
- Object system is based on GObject
- Still needs bindings, though those are easy to write
- No full type inference
- No full garbage collection

