Comment by mikert89
Comment by mikert89 3 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
Comment by mikert89 3 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
^ 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.
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.
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.
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.
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: <<=-=>>"