4 ms·
Java is well suited to very large projects only because developers are "commodity." With the modern language updates, the core java collections library is reall
by ninjakeyboard 9y ago
Java is well suited to very large projects only because developers are "commodity." With the modern language updates, the core java collections library is really broken for modern multi-paradigm programming. There are no true immutable collections in the core lib which makes Java really show its age with the newer language features compared to other more modern languages such as scala. Functions are bolted on as "Single Abstract Method" classes, which make functions essentially syntactic sugar instead of a first class language feature. Java9 makes some improvements but I wouldn't consider using Java for any new projects unless I was at a big enterprise that can only hire really cheap developer and needs to hire a whole lot of em really fast.
- knightofmars 9y agoIn a "not big enterprise" environment, what would you choose instead?
- ninjakeyboard 9y agoI'm a scala engineer. I also work with elixir a bit but Scala is preferred.
- koevet 9y agoI fail to see the connection between cheap developers and Java not being a truly functional language (which it never claimed or tried to be).
- andonisus 9y agoWhat kind of applications are you building that really require immutable collections and functional programming? In my opinion, Java is best suited for running web servers (and thus microservices), where the work doesn't really require any functional programming at all.
- erokar 9y agoWeb servers' performance benefit from concurrent programming models. Concurrent programming is certainly possible in Java, but Java/JVM is not particularly well suited for it compared to other languages/VMs, e.g. Erlang.
- andonisus 9y agoThe concurrency model you use is heavily dependent on the scale of your application. Java is just fine for the typical web server stack.
- deleted 9y ago[deleted]
- ram_sankar83 9y agoInferences: Java developers are dumb, commodity. Scala/Haskell devs are smart and get things done in 100x speed. Conclusion: Ignore this comment
- ninjakeyboard 9y agoCommodity doesn't mean dumb. There is a general set of skills that most java developers have, and there are a lot of people that have them. So you can replace a developer with another one fairly easily. It's much harder to do with scala. And much harder with elixir or haskell.