Saturday, July 30, 2011

IT Booze Meetup #2: Scala, Clojure, Groovy


Today, I had a chance to attend local user group IT Booze. It was the second meetup and it was very interesting, because of topics which were under discussion: Scala, Clojure And Groovy. I love such events especially in my town. :-)

I'd like to share my reflections regarding these cool languages.

As you know these languages are very popular on JVM (of cause not so popular as Java :-). And I'm sure every passionate Java/JVM developer has been thinking "what's the Next Big Language". It's really hard to choose the next one.

So, here is a short "brain snapshot":
  1. Scala and Clojure are great languages with huge amount of interesting features, but to master them we need to use Scala (or Clojure) on daily basis.
  2. Scala appeared as complex language. I think it requires a steeper learning curve then Clojure or Groovy. It means we must invest much, much more.
  3. Clojure has lisp syntax, but innovative concurrency concept is worth to look into. I say lisp, because it might be a stopper for someone to evaluate it as a next big language.
  4. Clojure and functional programming require to "patch" our way of thinking. And it can be difficult.
  5. Groovy is agile language. We (Java developers) can start using it right away. I think we should invest more in Groovy just to boost our productivity in: scripting, testing, automation routine work, etc. It doesn't require big investments and we can learn as we go.
So, here is outcome from this meetup:
  • start using Groovy
  • look into Clojure concepts
  • postpone Scala for now
Could you please share your thoughts regarding this?

3 comments:

  1. Todays ITBooze was great. Three wonderful talks, each worth a thumbs up.

    Robert Martin thinks that The Next Big Language really *might* be Closure. The reason is being multiparadigm and concurrent by nature.
    You might want to check out his talk at this year NDC
    http://www.ndc2011.no/agenda.aspx?cat=1071
    http://ndc2011.macsimum.no/SAL7/Onsdag/1020-1120.wmv

    ReplyDelete
  2. Thanks for this link. Uncle Bob was very convincing, as usual ;-)

    ReplyDelete
  3. I'm one year late - sorry, but since i was doing some research about those languages and found this blog, i thought it would be nice to post my thoughts and some results from this little research i've done. My thoughts are on market, jobs and commercial applications.

    Well, i think clojure isn't going anywhere. If it is, it's exactly where lisp is. The real question is about Scala and Groovy and Java. My guess: at first i thought the next big guy int the JVM has not born yet. Now i'm not sure. Taking a look at indeed's trends, there are no big stuff happening for functional languages, that's why i think Scala has no place in the sun.

    But, the big guys are the static languages, so i thought Groovy would be out of the play, also. The real next guy would need to be static and bring stuff that Java needs. Groovy brings dynamic stuff and Scala has not only functional stuff, but it also has some incompatibilities with the Java standard library (not the same Integer, not the same List, just try to integrate to your actual system). Also it's tools are not very good.

    BUT, come June/2012 and Groovy 2 is about to be released with a new little fella: the @CompileStatic annotation. So i'm not sure, but maybe Groovy can be the real winner in the long run.

    Also, there's Gavin King/Red Hat's language: Ceylon/2011. There's also Fantom, which appeared in 2005. These languages do exist, but they need to take their time to maturate.

    About enterprise funding the language, Groovy has SpringSource, and Scala has TypeSafe. I'm not sure what will come next.

    ReplyDelete