Skip to content

Comment on Scala – The Simple Partsparent

Comments

There is a lot to love about Scala, but one of the hurdles is/was the compile time. I used Scala and I didn't love the tooling around it. Even installing and running scalatra, I felt like it was maven installing THE WORLD, just to build a very small thing. Then, once I got it going to have a very simple change, save, refresh to see changes loop in my web workflow was like 3-10 sec. Not huge, but I'm used to PHP or Ruby dev with instant refresh cycles. Then on the TDD side, it would take upwards of 10 seconds to noticed that files had changed to run my test suite in SBT. Again, I'm used to < 1 second to notice a change and run my entire test suite in ruby.

I'm not sure if that's Scala's fault or Scalatra or SBT, but no matter how I sliced it, as of 9 months ago or so, Scala didn't feel amazing to develop code in. Everything felt a bit clunky. The code itself I loved, but the way I got there felt worse.

Surprisingly when I tried Go, it was a much better developer experience in terms of the near instant compile, refresh, see change loop and also running tests was nearly instant. The "instant" feeling I get in PHP and Ruby was there, but in a compiled language. However, in Go, I don't have some of the functional and immutable concepts that I have in Scala, which sort of sucks.

At the end of the day I'm making tradeoffs somewhere and it doesn't feel awesome anywhere. I might check out Facebook's Hack simply because it offers type checking, performance, and fast refresh. Also maybe the latest .NET stuff announced with continuous compile might bridge the gap for C#. I really don't know.

I have yet to find the language that really feels amazing as a developer in sort of all areas. Every language seems to have baked in tradeoffs.

I'm gonna sound like a weirdo, but I still like Java, especially Java 8, and IntelliJ.

It's remarkably uncool to like Java, but I know what you mean. I did a web app using Play! version 1 and it was a really enjoyable experience, even though it was in Java. Also, Android development is not brilliant, but most of that is the emulator's slowness, not the Java language itself.

Also I love IntelliJ or Netbeans both a lot more than Eclipse.

I'm sure there is a Java dev experience that is pretty great, especially if you can pull in some of the functional things from Java 8 and maybe immutable things from guava. I haven't tried that.

I have tried Kotlin and I enjoyed playing with it in IntelliJ, though I haven't done anything beyond project euler problems and some JUnit testing.

On the JVM I like Scala and Clojure more than Java, but I am realistic and know that those languages are only available to me for hobby projects, given how the enterprise works.

AboutSource Built by g1lg1l

Hackerly is an independent reader for Hacker News, built on the public HN API. Not affiliated with Y Combinator.