My experience with C# is that, yes, it does have a lot of amazing features, but they somehow feel "bolted on". The language took a very different path from Java, and added features as people demanded them.
Scala's approach is different yet again, it Learned from both Java and C#, as well as ML, Haskell, Smalltalk, Erlang and LISP, and unified all these lessons to offer an elegance and a consistency that's hard to put into words, but everything really does integrate so well. It doesn't (strictly speaking) have operator overloading for example, because it doesn't have operators, just methods used in infix notation. Nor does it need properties, just more methods, only without a parameter list (the uniform access principle). Methods can also be used as functions. These sort of design decisions are why I keep stating that Scala is a simpler language that Java, there really are fewer "special" constructs to learn. Nor does Scala need nullable types, as it doesn't have primitives - this is why "operators" can be implemented as methods. The solution using the Option class is also so much more composable, but not so easy to explain until you've used it. Everything just ties together so effortlessly! The way that libraries can be written to look like part of the language is also amazing and wonderful. If you do decide to try Scala, you'll find the community to be very welcoming :) On Wednesday, September 8, 2010, Casper Bang <[email protected]> wrote: >> As Kevin wrote the Scala guys are already at work on the next cool >> thing (parallel collection). And for sure we don't have to wait till >> mid 2012 before to see it delivered. Moreover some very interesting >> tools, libraries and frameworks are already mature enough to be used >> in production environments. And in my small experience they >> dramatically improve your productivity. Give a loot at Akka for >> example. There is only one word to describe it: AWESOME. > > There's also Mono; more familiar to Java developers and with it's own > set of awesome stuff. Sadly it's missing from the JVM, but for all > practical purposes it represents a Java 2.0 (opt-in type inference, > dynamic typing, nullable types, lambda's, expression trees, properties > etc.). Scala might very well be 3.0, but I fear the gap between 1.0 > and 3.0 is too great. Undeniably, Scala has a big opportunity here. > > -- > You received this message because you are subscribed to the Google Groups > "The Java Posse" group. > To post to this group, send email to [email protected]. > To unsubscribe from this group, send email to > [email protected]. > For more options, visit this group at > http://groups.google.com/group/javaposse?hl=en. > > -- Kevin Wright mail / gtalk / msn : [email protected] pulse / skype: kev.lee.wright twitter: @thecoda -- You received this message because you are subscribed to the Google Groups "The Java Posse" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/javaposse?hl=en.
