Stu’s Java.next series


If you haven’t already seen this, let me totally recommend Stuart Halloway’s series on the languages he call Java.next. The series look at several different aspects of these languages (Groovy, Scala, Clojure, JRuby), contrast them with each other and Java. Highly recommended if you are in any way interested in the languages that will soon replace Java for much application development.

The three published parts are:

  1. Java.next: Common Ground
  2. Java.next #2: Java Interop
  3. Java.next #3: Dispatch

2 Comments, Comment or Ping

  1. I’m astonished that Stu doesn’t include C#. I wonder why? I think with a little more investigation and understanding, Stu and others would find that C# is what Java should be. I love Ruby and Groovy, but Java probably shouldn’t be a dynamic language… it’s a static language and that’s all there is to it. Scala and Clojure are interesting but inhumane.

    C# has everything he’s listed in the first article. Everything is an object. Admittedly structs/value types complicated the hierarchy at first, but no longer. It also has extension methods (mixins), better properties (a bit verbose on declaration, but better than Java upon usage), functional programming features (lambdas, delegates), operator overloading, and unchecked exceptions. The collections API could be better, but that’s now easily resolved with extension methods.

    In addition, things he doesn’t mention are things like indexers. Does anyone even know that C# classes can have a [] method/property just like Ruby? Even with multidimensional support! Also type inference, baked-in events, anonymous types (new {FirstName=”Ola”, LastName=”Bini”}), which are duck typed. Also better type literals, but not perfect. However, the language is so flexible that it’s made it possible to create your own type literal like syntax, like this[1]:

    Dictionary items = Hash(Name => “alex”, Age => “10”, Height => “20”);
    Assert.AreEqual(“alex”, items[“Name”]);

    There’s a lot to love about C#, and even more to love about Mono. Where Java has failed in the GUI space, C# has succeeded. Not only on Windows, but on Linux. Try a Mono GTK+ app like MonoDevelop on linux. You’ll be surprised when you compare the experience to any Java app on linux.. Not only in terms of performance will you be surprised, but also in look and feel.

    The problem with Swing isn’t the language as Stu sort of implies by using it in the examples. The problem with Swing is Swing. It’s a crappy framework for building rich clients. Powerful yes. Useful, no. Kind of like packing for a month when your trip is only for days.

    Finally, C# is closer to making it in the enterprise than any of the aforementioned replacements. I see the Java space splitting into two pieces. The dot-coms will probably move toward Ruby, Python, Groovy maybe … or just stick with PHP as most of them do today. The enterprise will undoubtedly move toward Microsoft .NET, C# or something new that one of the Big 3 (IBM, Oracle, HP) comes up with.

    I don’t disagree with Stu’s articles. I just think that C# is among the top 3 examples of where the Java language should be heading.

    Clinton

    [1] http://blog.bittercoder.com/PermaLink,guid,d1831805-dbf7-4b74-a6fd-2e9ed437c3d9.aspx

    August 27th, 2008

  2. I second the recommendation (for what it’s worth). :-) Stuart is really doing an excellent job in comparing the four languages and drawing conclusions about up-and-coming trends in the JVM language sphere. Good stuff indeed.

    August 28th, 2008

Reply to “Stu’s Java.next series”