Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Does Scala still have "the Scala problem" where learning a new Scala codebase is roughly equivalent to learning an entirely new programming language?


As in, do people have entirely different ideas of how to write code so that what code looks like from one project to the next is not guaranteed any sort of regularity?

Yeah, pretty much. Though it falls mostly into two categories:

1) "Haskell on the JVM". Pure functional, algebraic effects, monads, custom operators/DSL's the whole nine yards. This would be the Typelevel ecosystem stuff, and ZIO/Scalaz/FS2/Cats/etc.

  (Actually, some of the ZIO stuff is not so wild. I think it's fairly digestible/easy compared to some of the more "hardcore" scala FP libraries)
2) "Better Java"/Pythonic etc. Doesn't tend to be heavily OO or FP but just sort of a mishmash of features of both to get stuff done. Li Haoyi's libraries are a great example of this.

I can imagine this being an issue if you were working with it in a professional context, or on a team that had differing ideas about what Scala ought to look like.

Being a personal project, I've done a bunch of stuff that you probably wouldn't find recommended online. I am using Quarkus/Vertx Java libs, and a lot of Enterprise Java (javax/jakarta) stuff.

(Note: I actually wrote a Quarkus extension to add support for compiling Scala 3 so that it could be used with Quarkus' ecosystem)

  https://github.com/quarkusio/quarkus/pull/18431
---------

That being said, the online Scala community is helpful, even if FP-oriented. On the Discord you'll find deep expertise and answers to most anything you ask.

And believe it or not they won't burn you alive if you say "Hey I'm not really interested in hardcore FP".

I owe a lot of what (little) I know to a handful of members on there (tpolecat, Balmung, Aly, Ethan) who always seem to have time to answer my dumb questions.




Consider applying for YC's Summer 2026 batch! Applications are open till May 4

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: