Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
[flagged] Is Java Dying?
17 points by bornrmi on July 30, 2022 | hide | past | favorite | 15 comments
In the recent times we have seen explosion of languages and frameworks around JS. Go and Rust are the talk of the town. I am Software Engineer in java and just want to understand what is the current state of the Java language? Is it still one of the best languages overall, like high performance, concurrency support and great frameworks for building backend web apps?


Java as a Programming Language? I don't think it's dying anytime soon.

Java as a Runtime Platform? I don't think it's dying anytime soon either.

JAVA might be a little bit old (in terms of technology) but more modern languages has a lot to do to catch up in:

* Multiple Relational DB support (I am still need to see good support for Python or NodeJS for databases like SYBASE, INGRES, others)

* Library ecosystem (there is a library for almost anything in JAVA) * Installed based (there is A LOT of Java Software out there)

I can see modern languages for the JVM like KOTLIN or SCALA fulfilling the places where JAVA is cumbersome.

Having said all this, unlike what was real 10 years ago, I definitely see that right now there are more JOB offerings for engineers in other languages (JavaScript/Node, Typescript, Python, and maybe even GO).

[EDIT]: grammar.


I don't think it's dead at all, as I see it used in enterprise webapp environments. The Springboot framework is a popular way to build backend APIs.

Right now, the TIOBE Index[1] lists Java as the third most popular language. Its popularity might also be attributed to usecases like Android development.

Meanwhile, I personally observe that Rust is rising in popularity, given its growing community. However, there are not that many jobs out there using Rust, so its usage may still be limited. (Although I hope it expands!)

[1] https://www.tiobe.com/tiobe-index/


As others have noted, java is still quite present in many places...so if your question is leading to whether there are/will be jobs...then likely, yes, there will likely continue to be many jobs in jave for some time to come (mostly because enterprises - the biggest users if java - tend not to replace their java infrastructure unless they really, really have to). However, if your question is more towards whether java is "trendy", then no its not, mostly because as new projects are considered, newer languages are considered too. (Maybe not too new, but still at least newer than java, like Go, etc.) On the other hand, if you want to know if java is as performant as it used to be (as compared to other langs), then i think that merits diving into published performance benchmarks (java vs go vs erlang vs rust, etc.). In my experience, smart teams consider the following thought when undertaking new projects: "Ok, sure language/framework X is faster, but language/framework Y is close enough to performance needs but is way easier to adopt by development staff, easier to be productive in, is easier to hire folks for, and easier to support infrastructure for...so we'll just go with language/framework Y...".


My personal opinion and not a fact - "I see still see Java as the one which great mature ecosystem. For most pieces of work java still works. Enterprises do invest in them for next 10 years. It is not going away. Golang is increasing in adoption but that doesn't undermine Java in anyway today, may be in next 5-6 years"

More than language it is the basics that counts


Java isn’t dying overall, but it may not be the best choice for backend web apps. First, it’s the incumbent in most enterprise settings and will be around for many years to come, requiring maintenance and updates. Also Android has brought millions of developers into its ecosystem.

The thing is that the underlying infrastructure of web backends has fundamentally shifted towards horizontal scaling away from the days of big metal. As opposed to a small number of fixed servers that serve a predictable amount of requests, modern backends are autoscaling or serverless and handling massive amounts of requests at a moment’s notice. Concurrency doesn’t matter as much when compute resources scale to meet demand. What does matter is startup time, and that is where Java is weakest.

Go is orders of magnitude faster than Java for responding to the first request. It also comes along with strong concurrency primitives and solid web frameworks. So you can run it with very few instances by default and quickly scale to meet demand. It also requires less effort to manage memory and GC.

Java has a vast ecosystem which is both an asset and liability. You can be sure that whatever you’re attempting to do with Java has already been done at least 5 different ways. That can make it difficult to decide on what the best approach to use, which library to select, etc.


Loosing in attractivity relative to some other languages, for some popular use cases? Yes.

Like, Python is king for data science /ML, and js is king for front end.*

It translates into a community of java devs which is less hegemonic by its relative size than it used to be.

That said, it doesn't imply that Java is loosing ground in other capacities. It makes great and frequent progress in terms of the JVM, language features, inter-operability with other languages. That makes it perfectly adapted to cloud environments. Old and tired statements about start-up times and memory footprint ignore the developments of Java in the last 15 years. Now Java instances can start in milliseconds with total memory footprints of a few mb [0]

Comparisons between Java and Cobol, that are sometimes made (even on this thread), are not enlightning: as far as I know, Cobol didn't evolve very much in the past decades. Not the case for Java - it has a 6-month release cycle [1], and these releases bring ambitious and significant changes[2], like virtual threads for one.

I would advise to stay updated on Java development by following key accounts of advocates on Twitter (eg, @nipafx), subscribing to the Java Magazine[3] or watch the many videos being posted by advocate devs on Youtube[4]

* even this needs a caveat. Many market leading solutions in data science are actually built in Java / Scala, like the Data Science Studio by Dataiku or H2O.

0: https://www.javaadvent.com/2019/12/getting-started-with-graa...

1: https://endoflife.date/java#:~:text=Java%20as%20developed%20....

2: https://chriswhocodes.com/jepsearch.html

3: https://blogs.oracle.com/javamagazine/

4: https://m.youtube.com/user/java/videos


Java is the new(?) COBOL.

In my niche, a COTS application that was written in COBOL has been migrating to Java for the last few years (happens to be an Oracle product through acquisition, but that's probably not relevant). As of now, the product is wholly written in Java, though large parts were passed through a COBOL-to-Java converter.

Java isn't going away any time soon - there are massive amounts of enterprise software now written in the language that will need to be maintained for years to come - but it's probably not the language of choice for a startup writing something custom.

Keep in mind that the HN community may not be indicative of the broader industry.


Java has become a legacy business platform. It will endure due to inertia and fairly high productivity, but it's not the place for pioneering work.

Cutting edge systems are not targeting Java. A small example off the top of my head: EdgeDB has no vendor supported Java client. TypeScript, Python and Golang are supported, but no Java. Ten years ago Java would have been a tier one target for such work. There are many other examples of this.

Java has next to no play in ML.

In its traditional form of compiled bytecode+runtime Java is a bad choice in cloud environments. Excessive RAM usage and slow startup create limitations and increase costs. There are techniques to deal with this, but adopting these comes with their own compromises.

Java still doesn't have a lightweight concurrency story. Project Loom and its Fibers are still at "early access" stage and it will be many years before it is mainstream and well integrated into common dependencies.

Java is far behind some newer languages with regard to safety. Yes Java is essentially memory safe and this has provided great value, but NPEs and some other common faults are are serious problem for Java due to the design of the language. Better designed languages have superior solutions for handling failures and have left Java behind, and there is little evidence that this is going to change via language improvements.


> Excessive RAM usage and slow startup create limitations and increase costs.

I'm not big on Java, but that's really a runtime issue, not so much a language issue. If Oracle really wanted to optimize Java, I feel like they could do that.

Also, I'm skeptical on the "increase costs" claim. The reason Java "worked" at the turn of the century was because corporations would gladly reduce developer time for the tradeoff of spending more on hardware if they needed performance.

The most performant solution would be writing assembly. Everything above assembly is a trade-off, C/C++/Java/Go/Python, etc.


> Also, I'm skeptical on the "increase costs" claim. The reason Java "worked" at the turn of the century was because corporations would gladly reduce developer time for the tradeoff of spending more on hardware if they needed performance.

That's sounds great until you have to pay the cloud bills roll in. At the turn of the century options were limited. Now they're not, and that's the world Java has to compete in today. Java is slowing giving up ground as a result. An idiomatic Golang program, for instance, uses far less memory to perform the same tasks as the equivalent Java.


There is a lot of pioneering work done in Java and the JVM. GraalVM, ZGC, Shenandoah are but a few.


One must remember that most companies are not tech companies. Java is still very comfortable in boring LAMP-stack E2E firms.


Sure, it's dead. But very wide spreaded and high paid.


I can't say anything about side projects, but I don't think there is a change in the weight of java in the enterprise world.


I think there is: Java code bases are so often OO MudBallFactoryTemplates, that management is starting to realize Java is the best obfuscation language for developers seeking to build a nice gilded-ivory tower...




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: