Java is widely used for building large-scale enterprise applications. What do you see as the main advantages and disadvantages of using Java in this context? Join the discussion and share your thoughts on Java's suitability, performance, scalability, and maintenance for enterprise-level projects.
Follow the DEVteam for more discussions and online camaraderie!
Top comments (4)
I work with Java on a daily basis on a big project for a customer. We serve daily over 50 million requests worldwide, we run in 4 AWS regions.
Java has a bad reputation, which I think is mostly coming from being taught extremely poorly. Besides, it might not be the prettiest language, in my opinion. Moreover, being an old language, it has the burden to carry of some questionable decisions in the language design done in the past.
Having to write modern Java is not bad, in fact it can be way more pleasant than dealing with other "fancier" technologies.
First of all, Java is fast. The JVM implementations are as optimal as they can be, plus the JIT magic does a great job.
In terms of frameworks, Spring is pretty good and it can simplify a lot the development. It comes with everything you need out of the box.
For the downsides, unfortunately the industry is still kind of stuck at Java 1.8. which is really old at this point. In addition, there is a lot of legacy stuff to deal with, like application servers, badly written Java EE projects, etc.
The simplest explanation I usually give is Java is the biggest and most powerful hammer there is.
It can scale really well and comes with a lot of tooling/supporting/features to help build large scale apps.
However, its still a giant hammer. A hammer that is taught in schools, tons of large businesses use, where code built over decades ends up becoming the "norm". Legacy codebases written in Java become the standard, and developers build their skillset building upon all this experience with "legacy" Java code.
The result is Java itself is powerful, everywhere, scales well, but the code itself is a byproduct of all this.
Most people don't like Java because most Java code they run into isn't of the best quality. This is in comparison with newer technologies where all these lessons can be applied, and new ones evolved and the entire codebase feels more "Fresh".
Ultimately, this wont change anytime soon. Java is still too good at what it does, and lots of people know it.
The pro of Java for big server side projects is that it just works.
And if you don't find Java hype enough, you can migrate easily to Kotlin while keeping your same codebase.
Is There an Equivalent of Spring Boot for Kotlin?
Jean-Michel Fayard π«π·π©πͺπ¬π§πͺπΈπ¨π΄ γ» Apr 10
Doing java for about 17 years now... always reading the same things about Java... slow, to much memory etc.
Yes that's true for badly designed apps (more accurately code!), not tested well or not tested at all apps etc. If you do that right you can very fast application and and less memory footprints than you think .. and also using more recent versions JDK 11, 17...20 (and within 6 weeks JDK 21) etc.. much improvement in the language over the time ...and becoming faster and faster and great library/framework support..and very important tool support IDE's, Build Tools, Deployment etc.
Never seen an issue related to performance where the language itself was the problem only algorithms etc. or misusing the JDK things etc. or wrong data structures etc. many people didn't accept things like streams, lambdas, functions etc. as part of their toolset ...(since JDK 8... 2014!)...