Hacker News new | ask | show | jobs
by anithian 4055 days ago
From my experience, Java while more verbose offers better tooling, standards, documentation and support. Scala certainly is more concise but there is a cost that you will incur later when trying to debug or maintain s large fast moving code base. Sbt blows, ide support for scala is spotty and good luck defining a code convention and standard that you can automatically lint and format. To me it's c++ for the jvm (not a good thing ☺).

The next thing I'd advise is to not use play but to consider dropwizard or better yet spring boot. You may be thinking "ugh spring.. Isn't that so heavy?" Possibly but it's a lot simpler to use, extremely powerful and well documented and supported. Play just doesn't have that maturity and support going for it that a spring or dropwizard have.

2 comments

I like Scala, Spring, and Maven. Sbt is definitely questionable and I always use Maven instead. IDE support for Scala is not great but it's pretty close to good enough. I don't really like Spring Boot but I like Spring in general and use it for pretty much all projects.

After switching back and forth between Java and Scala a lot I find that I prefer Scala. I have never used it in teams of more than a few people though.

I would recommend the same thing I recommend to all teams. Mandatory code reviews. Don't think of them as judgement. Think of them as async pair programming.

If you want really bad IDE support you can always cross compile Java and Scala in same project with Maven.

I tried ScalaIDE once and I hated it. I've also used the IntelliJ plugin for Scala and it was a pleasant experience. Would you explain what you're missing with the IntelliJ plugin?
It depends on when they used the IntelliJ plugin. I've been using it for a few years and it is much better now than it was when I started.
I agree. Intellij and Scala work very well together.