Scala - The new programming language


My friend Ajith sent a link that talked about this new programming language based on Java - Scala.The main selling point of this language is that Twitter is now porting its backend operations from Ruby on Rails to Scala for better performance.Personally I have not coded in either of these languages. I know some theoritical knowledge of Ruby and Scala is just new to me. Most of my programming life is spent with Java (I just love that language too much).

Just as a programmer, I got curious as to why this is major change was happening in Twitter and I decided to do some study on this and found this interesting link, an interview with Steve Jenson, Alex Payne, and Robey Pointer, all three popular developers from Twitter.According to them Rails works great for doing front-end web development, for doing heavy weight back-end processing but it had some performance limitations at run time.They continue that the Ruby language lacks some things that contribute to reliable, high performance code.They further say that Ruby does not have good threading support and its garbage collection is not as good as Java.They then reason out why they still want to keep Ruby for all Front end stuff  - They believe that Ruby is very good at AJAX related things, which is one of the key features of Twitter.They also found that Scala integrates with Ruby seamlessly. The above interview link is a good one if somebody is looking at porting to Scala from any other language.

The official home page of Scala can be found here.Scala, a programming language smoothly integrates features of object-oriented (like Java) and functional languages(like Ruby). Code sizes are typically reduced by a factor of two to three when compared to an equivalent Java application.Every value in Scala is a object and every function is a value. Scala inter-operates with Java and .NET. On top of it, you can continue using your favorite Java development tools like Eclipse, NetBeans or Intellij. You can continue using your favorite Java libraries within Scala if you want to and embed some Java code as well.

For more information on this language, check out the tutorials that are there in their official website here. Though technically, I can't point out the disadvantages Scala has (since I have never coded in that language), the one major disadvantage at this point of time could be the support you could get in case you run into any problems. Unlike Java/Ruby, you may not find lots of online resources as well.

Will I start learning this new languauge? Well, I may not jump into it at this point of time.Reasons are very personal - I just don't find enough time from my family - work to learn a new languauge altogether, but I am definitely going to look at it in near future, probably by this year end - a very long target Smile. I am now focussing on PHP frameworks(Code Igniter), jQuery and MySQL. A major change of path on what I am doing now at work - Java, Tapaestry, Spring, Hibernate and Oracle.

Author: pradeep