Quote (Pig @ May 26 2012 01:25pm)
You suggest c# over java - where C# is basically Microsoft's take on java, except less portable since usually only MS products will be able to run it .....
1. C# is a lot nicer than java. closures, linq, inferred typing, operator overloading, indexers, partial classes, pass by reference, extention methods....
2. Ever heard of mono? either way he's doing it as a hobby.
Quote
But seriously - I would learn scala. I've been learning a lot about it recently and feel it is the way of the future. Maybe not scala in particular, but object functional programming in general. Scala is a statically typed, object oriented functional language that runs on top of the JVM. It fully inter-operates with java code and pretty much vice versa. It has the most powerful features in a language I have used to date and I really feel like someone new to the game learning a language like scala as their first language would be a very powerful developer.
Really think about this -- your about to learn a language. Do you learn some crappy language that leaves out half of the concepts (like some of these dynamically typed 'easy to learn' languages) and then have that be your native language that is your reference point? or do you want to learn a real full blown language so that you can pick up a dynamically typed language in a day because you have seen it all and have a very strong reference point.
In summary, scala is an awesome language, it FULLY inter ops with java and has more poweful features then java with a much more terse syntax and feel (so why not learn it over java) and it runs on the jvm so it's as portable as java.
http://www.scala-lang.org/i'm currently learning scala and groovy. i chose scala first since it can compile to MSIL, too, but now i'm more drawn to groovy since some of scala's syntax irks me. but they're both far superior to java, and neither is well-accepted in the business world unfortunately
