Hacker News new | ask | show | jobs
by thr0waway1239 3325 days ago
You might have actually convinced people to not consider Scala. You are saying, Scala is great, except for these small things:

1. Modify your codebase to use microservices

2. Modify your IDE habits to be more REPL friendly

3. Modify your team coding habits even if it makes it hard for one person to work on the other person's codebase.

3 comments

I work with some larger Scala codebases too and the compile times are not that bad either. Maybe 30 seconds is more common for the large ones. Certainly not worse than C++, only a bit slower than Java.

>2. Modify your IDE habits to be more REPL friendly

Plenty of people use IDEs, I just think if that's what your main sticking point when picking a language, go with C#. It has the best IDE of any language.

>3. Modify your team coding habits even if it makes it hard for one person to work on the other person's codebase.

Nope, not a problem. I can work on any code base in the company. It's spooky how fast we can jump into others teams projects and contribute, and a lot of that is due to the power of the language.

Also, re: 1...you don't have to use microservices. You just need non-monolithic compilation units. This just means breaking up your application into library code that doesn't need re-compilation.

GF mentioned microservices because they end up forcing this by design, but nowhere does it say "you must use microservices or else get horrible compile times"

But the thing is if you modify your habits, it's so much more efficient than most other languages. It's reasonable to have to learn knew coding style when paradigm-shifting languages. Why isn't it reasonable for there to be other new behaviors as well?
Because there are other languages, which also provide the benefits, but without these downsides.
Hah no there aren't. I work in Haskell (one of the few languages that is as or more efficient as Scala) and these things still arise with it. And they're not a problem because you do them and you end up programming better than in a language without these things :)
Which ones?