Feature | golang | scala | java | ruby | python | lua | c | ada |
---|---|---|---|---|---|---|---|---|
OOP/Class | no | |||||||
First-class functions | yes | |||||||
Higher-order functions | yes | yes (function pointer) | ||||||
Inline assembly | no | yes | yes | |||||
Mixing of numeric types | no | yes | ||||||
Method chaining | yes | yes | ||||||
Optional delimiters in maps | no | yes | ||||||
Optional delimiters in lists | no but you can use varargs | yes | ||||||
Metaprogramming | limited | yes | ||||||
Dynamic reception | no | yes | ||||||
Short signature for blocks | no | yes | ||||||
Synchronous message passing | yes | |||||||
Explicit concurrency | yes |
- Pointers
- Pointer arithmetic
- Closure
- DSL
- Operator overloading
- function/method overloading
- anonymous functions, i.e. f = func(a,b) {...}
- currying
- exceptions
- pattern matching
- lazy values
- type system (structural, nominal, duck type)
- generic programming
- interface inheritance
- assertions
- inheritance
- garbage collector
- multiple return values
- variant types
- macros
- threads
- coroutines / lwp
https://roslyn.codeplex.com/wikipage?title=Language%20feature%20status
http://blog.rust-lang.org/2015/02/13/Final-1.0-timeline.html