Java or Scala for new projects with new fields?

After I read the Bloch discussion http://www.infoq.com/news/2010/04/bloch_java_future I started thinking about "do I need to switch to scala for new web development" or Java is preferable in all cases . What is your opinion?

Thanks,

+7
java scala
source share
4 answers

If your choice is between Java or Scala, you should probably go with Scala. Spring, Hibernete, etc. works great with Scala, so if you can use it right now. The tool for Scala is not so bad at IntelliJ at the moment. It doesn't look like it was 6 months ago.

However, I must warn you ... Java is a pretty bloated platform at the moment for strictly web development. I have been a hardcore Java software developer for 9 years and have recently been involved with Scala, so I have a bias for these platforms. Even if all you want to do is an application that provides modest functionality over a database, you should just use Grails or even Rails (although Grails will probably be better suited to your skills).

I would not recommend doing Lift for Scala if you do not already know functional programming.

+11
source share

It depends on which web applications you want to work with, although I would choose java because of the large code and the API base of its large community.

+4
source share

I am still a big fan of Java Spring. Some people think that it can be a little heavy weight, however, with annotations and automatic wiring, you can quickly build web applications. In addition, with Java, you get access to a large number of open source libraries, especially from Apache shared resources.

One of the things that I don't really like about Scala / Lift is that the line between the view and the controllers is a bit confused. With Java Spring, there is a clear distinction between presentation and controllers, especially if you use a template language for presentation, such as Apache speed.

In any case, depending on the size of your project, I don’t think there is a big difference between Scala and Java. Both will do the job for you. If your project can become very large, I would be mistaken in choosing Java because of its maturity and the large number of mature open source libraries that are easily accessible.

+3
source share

I think it depends on the scale of your web applications and your human resources. Do you have good programmers who can quickly master the new technology? You must also take care of project lead time and budget.

Maybe it's time to try the new technology only if it really suits your project. Java still has a strong position in the community, and you can also find a lot of support and an open source framework.

+2
source share

All Articles