25 ms·
> overengineered code False, scala is really concise. > slow compile times A few seconds slower on average, you mean > worse compatibility with other JVM
by aliakhtar 7y ago
> overengineered code
False, scala is really concise.
> slow compile times
A few seconds slower on average, you mean
> worse compatibility with other JVM languages.
Its completely backwards compatible with Java.
- sa46 7y agoI've inherited a large scale codebase and it's been interesting to put it mildly. I agree with GP that Scala's power lends itself to building unnecessarily complex systems. - Scala has a lot of cool, but sometimes confusing features. Implicits, companion classes, apply/unapply. - our compile times are 5-10 minutes in CI. I'm sure we can make it go faster, but it requires digging into a 500 line SBT file. - Scala seems to encourage building tangled webs of actors with Akka. I understand the benefits of actors. I think the benefits are overstated vs threads when you need less than 10k threads or so.
- aliakhtar 7y agoAll of what you're describing here is bad programming practices. Bad programming practices * scala's power = Incredibly bad work. If you're a good programmer who writes well engineered code, you can do that incredibly well in Scala. Good practices * Scala's power = Great productivity + really good work.
- pkolaczk 7y agoCompanions are in Kotlin too. Apply and unapply - I never saw this being a problem even for some new programmers switching from Python. Implicits are kinda harder to use, but this is an advanced feature meant for library writers, not application programmers. Despite their power I find them much nicer to use than c++ templates. And there is nothing comparable in Kotlin, and insufficient abstraction can sometimes lead to actually more complex code than in Scala.