3 ms·
I mean, I currently work on the JVM, I just have enough experience with different languages (including Ruby, which I don't think is quite dead yet) and tech sta
by Tainnor 4y ago
I mean, I currently work on the JVM, I just have enough experience with different languages (including Ruby, which I don't think is quite dead yet) and tech stacks to know that they all suck in their own way. The JVM, and specifically Java, and even more specifically Spring, have a lot of annoying warts, it's just that other languages have different warts. I agree that you shouldn't try to rewrite everything in an obscure, untested technology, but beyond that, there's a number of options with enough tradeoffs. But it seems we're largely in agreement there.
I don't necessarily agree with the "keep everything in one language / stack" sentiment. There's certainly companies that overdo it, having 20 different languages at the same time. But there's also valid reasons for keeping certain tech stacks separate (e.g. having to do ML / data analysis stuff in Python). In the worst case, the "use only a single language" mindset leads to disasters like GWT, which is something that my current company unfortunately still uses because some Java developers (that don't work for the company any more) thought that JavaScript was beneath them.
I also wouldn't choose PHP, for the record. I would like to trash it here, but I've never actually been forced to use it, so I can't even comment on it.
I'm not so sure about k8s. I think you can get away with much simpler deployment models, too. At some point the overhead of having to manage everything manually (or a need for zero-downtime deployments) might make the added complexity of k8s more bearable, but it's certainly added complexity and not necessary everywhere and all the time.
I 100% agree about postgres, it's so good and feature-rich that you should probably really only ever use another database if you have very specific needs (except maybe also adding redis as a cache, because redis is also very good).
- DanHulton 4y agoQuarkus also has a lot of annoying warts, as does just plain ol' Java. Lord, if I never see another Builder pattern again in my life, I may die a happy man.
- cutler 4y agoAgreed. Builder.build() wtf!!?
- Tainnor 4y agoI haven't yet used Quarkus, but in my opinion the solution to Spring's problems with startup times isn't to run everything in GraalVM, it's to declare dependencies statically instead of creating a mess of annotations that have to be interpreted at runtime. Kotlin IMHO provides ways of doing that rather elegantly.