Hacker News new | ask | show | jobs
by mikert89 147 days ago
Scala is too complicated. Most scala code bases I have worked on have no enforced structure, the language allows for all sorts of unconventional programming paradigms
4 comments

Yeah I love it when people start defining their own operators all over the place and give them all inscrutable names. "Dude just use the eggplant parm operator: <<=-=>>"
^ This meme is from 10+ years ago when Scala was at the peak of its hype driven by the FP craze. Nobody seriously writes cryptic-symbolic-operator code like that nowadays. Scalaz, the FP library most notorious for cryptic operator/method names, hasn't been relevant for many years. Today everyone uses Cats, ZIO, or plain Tapir or Play, all of which are quite ergonomic.
This is the type of thing that a good PR review culture will handle. I love that this is an option in some languages. But in a company, you need to decide what cool features should be used and when and how much.
Good PR review isn't really enough unless the organization is only large enough to handle around one PR at a time.

With languages like Scala I think its a clearer necessity that someone or some small group in an organization maintains a dominance of expertise or you have different groups that are only using the same language in name or facing overhead to keep in agreement where a lot of the best developers might be basically doing ambassador work.

yeah a small group of experts can leverage scala, its not a language for a corporate environment
One reason why I keep bouncing off of Haskell.
That's sorta the curse of Lisps too.
Yeah sorta

I would say Clojure is a big exception to that - Clojure applications tend to be more uniform than even non lisps

Clojure is an exception to pretty much everything in the category. I really wish I had the opportunity to use it in my professional career.
This is exactly what turned me off. It supports so many paradigms that every line of code I wrote I had to sit and think if I was doing it the "right" way and it was miserable.
Part of that I think is the culture and not the language. Personally I try to use the least powerful method that gets the job done and that usually keeps me unblocked. In practice that usually means using it as a better Java and not going down the functional monad path. I know scala has gone through a rough patch and maybe migrating from 2 to 3 is painful. But if you try starting a new project now with the latest Scala 3, I think you'll find that its pretty nice. Even IDE support is pretty good.
I think its because we dont have too many established paradigms for functional programming. Having said that I think Scala is just marvellous. I had to work with a Scala codebase written by a set of very mature devs and it was an absolute joy. It influenced how I write Java.