4 ms·
Everything he lists is already available in Scala: * Properties, via Scala's Uniform Access Principle * A form of null handling, via the Option type (like
by jorgeortiz85 18y ago
Everything he lists is already available in Scala:
* Properties, via Scala's Uniform Access Principle
* A form of null handling, via the Option type (like Haskell's Maybe monad)
* Indexers, via apply/update methods
* Extension methods, via implicits (Scala's implicits are actually much more powerful/dangerous than C#'s extension methods)
* LINQ[1], via for-comprehensions
* Lambda syntax
* Multi-line strings
* Type inference
As for C#'s future features:
* Scala already has co/contravariant typing
* Scala will have optional and named parameters soon (maybe 2.8.0?)
In addition, Scala has:
* Pattern matching and extractors
* Lazy evaluation and call-by-name parameters
* Mixin composition
* Curried methods
* Higher-kinded types
* Equal footing for immutable data
* An Actor library for concurrency
Scala's also adding virtual classes soon.
F# is also great language, I don't want to say anything bad about it as a language, but unfortunately you're trapped into the Microsoft platform and subject to Microsoft's rules. I'd much rather develop in open-source land.
[1] C#'s LINQ is actually more powerful than Scala's for-comprehensions, because Scala lacks C#'s Expression Trees. Hopefully this will be remedied soon.