TheServerSide Europe, third day
June 20th, 2008 at 4:25 pm by Jesper de Jong
The third and last day of the conference. The first session I went to this morning was a very interesting one, “The Busy Java Developer’s Guide to Scala” by Ted Neward. He explained the basics of the Scala programming language. Scala is a new and very interesting programming language that combines object oriented and functional programming. The name is a contraction of “Scalable Language”. It runs on the JVM and interoperates very easily with Java - you can use Java classes seamlessly in Scala. I’ve looked at Scala before, but there was one interesting thing Ted showed which I didn’t know yet and which would also be an interesting feature to put into Java: You can put import statements not only at the top of a source file, but also inside classes or even inside methods. By doing this, you limit the scope of the import statement.
For example (note, the “import BigDecimal._” is the same as “import static java.math.BigDecimal.*” in Java):
object HelloWorld {
def main(args : Array[String]) = {
// Import BigDecimal into the scope of this block of code
import java.math.BigDecimal, BigDecimal._
val a = ONE.add(ONE);
println(”One plus one is: ” + a)
}
}
Martin Odersky, the inventor of Scala, is currently busy writing a book of which a pre-print version is available at Artima. At the moment, Scala is not yet ready for prime time (there are still some funky bugs in the compiler and some rough edges in the language itself, and IDE support is not yet complete), but there’s a good chance that this is going to be an important new programming language in the next two or three years.
The second session I went to today was “Distributed Computing and MapReduce: Technology Selection, Implementation and Deployment Made Easy” by Eugene Ciurana. He explained what MapReduce is - an algorithm for processing large amounts of data efficiently in two steps (”map” and “reduce”). The idea came from Google. Eugene explains how it’s used in the company where he works to analyze log files from webservers, to find out from which countries people are accessing their website. There are a number of implementations of MapReduce available, for example the open source Hadoop from Apache and commercial products from for example GigaSpaces, GridGain and Terracotta. He also used Mule (see also this case study from Eugene).
My third session of today was “Performance Tuning a Web Shop with Open Source Tools” by Jeroen Borgers of Xebia. Often, when developers have to solve a performance problem, they make a guess about what’s wrong with the application and try to fix that, but in reality the only way to know what’s really wrong is by measuring instead of guessing. Jeroen talked about a project in which he used tools such as JMeter and JAMon to measure performance, and JARep, a reporting tool for application performance data that he wrote himself.
After lunch I went to “How to Choose your Java Web Framework” by Shashank Tiwari. It’s a question that ofcourse interests a lot of developers, because there are hundreds of frameworks and it’s not easy to determine which one you should use. Besides discussing the characteristics of the most popular frameworks he also talked about whether you should use a framework at all, because there are also some disadvantages: you’ll have to deal with a learning curve, for simple applications a framework can unnecessarily complicate things, it can cause infrastructure bloat, and it presents challenges for testing and maintenance. Ofcourse he didn’t come up with a perfect recipe for choosing a framework. He finished with two conclusions: For simple applications, it doesn’t matter a lot which framework you choose (or if you use a framework at all), so you shouldn’t waste much time on it; for larger applications, that are part of a bigger system, it’s probably best to go for a “full stack” solution such as Spring or JBoss Seam, because you’ll have less integration problems in your project.
The last session I went to was “Real Google Web Toolkit Applications” by Jeff Dwyer. Google Web Toolkit is a web application framework by Google which allows you to program in Java, as if you’re writing a Swing desktop application. It compiles your Java code into a web application with JavaScript. He showed how GWT works by looking at a real-world example application which integrates GWT with Spring MVC. GWT is one of those things that’s on my list of things to look at sometime.
So, it was an interesting conference, I’ve learned a number of new things and got some new ideas. Thanks to JavaRanch for giving me a free ticket for this conference!
Popularity: 602 points


June 20th, 2008 at 8:27 pm
“For simple applications, it doesn’t matter a lot which framework you choose”
Interesting conclusion, it sounds pretty logical, but then when i thought about it bit longer it occurred to me that it might not be that obvious. For instance if I have a simple CRUDL application; this would cost me probably a lot more time to create with Struts then with Ruby on Rails (or similar tools).
Of course this only works if you can skip the learning curve (or spread the investment of it over multiple small projects).
Did they say anything about this kind of scenario ?
June 23rd, 2008 at 9:55 am
Hello Arjen,
He did mention Groovy on Grails, but didn’t address the specific point you mention. You can make a simple CRUD application very quickly with Rails or Grails, but you’d have to know Ruby or Groovy first - he talked mainly from the perspective of a “plain vanilla” Java developer.
One of the disadvantages of using a framework that Shashank mentioned is that the people who are going to test and maintain your application also need to know the framework, and if you use Rails or Grails they not only have to know the framework, but also the Ruby or Groovy programming languages.