Hi,
After I read Bloch's discussion http://www.infoq.com/news/2010/04/bloch_java_future I started to think about "Do I have to switch to scala for new web developements" or is java preferred in all cases. What is your opinion ?
Thanks,
Hi,
After I read Bloch's discussion http://www.infoq.com/news/2010/04/bloch_java_future I started to think about "Do I have to switch to scala for new web developements" or is java preferred in all cases. What is your opinion ?
Thanks,
I am still a big fan of Java Spring. Some people think it might be a little heavy weight however, with annotations and auto wiring, you can put together Web apps really quickly. As well, with Java, you have access to a whole wealth of open source libraries especially from Apache commons.
One of the things I don't really like about Scala/Lift is that the line between view and controllers are a little mixed. With Java Spring, there is a clear distinction between view and controllers particularly if you use a template language for the view like Apache Velocity.
Over all though, depending on the size of your project, I don't think there is a large difference between Scala and Java. Both will do the job for you. If your project has the potential of becoming very big, I would err on choosing Java because of its maturity and large body of mature open source libraries readily available.
It depends on what kind of web applications you want to work with although I would choose java due to the large code and API base its large community
I think it depends on the scale of your web applications and your human resources. Do you have good programmers who can catch up with the new technology quickly? You also need to care about the due time for the project and the budget as well.
It may be a good time to try out new technology only if it is really suitable for your project. Java still has a strong position in community and you can also find a lot of supports and open source framework.
If your choice is between Java or Scala, you should probably go with Scala. Spring, Hibernete, etc. works just fine with Scala, so if you can use it right now. Tooling for Scala isn't too bad in IntelliJ at this point. It's not like it was 6 months to a year ago.
However, I must caution you... Java is a pretty bloated platform at this point for strictly web development. I was a hardcore Java software architect for 9 years, and have been doing Scala recently, so I have a bias towards these platforms. Even still, if all you want to do is make an app that provides modest functionality over a database, you should just use Grails, or even Rails (although Grails will probably fit your skillset better).
I wouldn't recommend doing Lift for Scala unless you already know functional programming.