loading...

What do you think of the future of Java?

imben1109 profile image Ben ・2 min read

I am Java developer. Most of application are built on top of application. I find this programming extremely awesome.

  • One class for one file generally
  • Awesome IDE. Eclipse, Intellij
  • Awesome library and support. Apache, Red hat, google, Netflix and Dell/EMC are providing awesome libraries for java developer. Awesome Library would include Apache Commons, Spring, Hibernate, MyBatis, Apache Camel, Spring Boot ...
  • Awesome Tools. Maven, Gradle, Ant, JConsole, Visualvm...
  • Awesome Specification. JMS, JMX, JPA

Nowadays, there are a lot of programming language such as C#, C++, C, PHP, JavaScript(node), python, go, ruby... Many and many programming language are trying to replace java.

As a Java developer, what do you think of the future of java?

For me, I am very biased. I like Java just because I get used to be. As a developer, I need to study other programming language and also framework, tools and other knowledge and all which can be helpful for development. It would be very helpful even for your development in Java.

As a developer, Other Programming Language is required

As a developer, there is no doubt that you need to study other programming language. But Java would help you a lot when you are studying other Programming Language.

JavaScript Java C#
Dependency Manager & Build NPM/Yarn & Wepack Maven Nuget
MVC Framework ExpressJs Spring ASP MVC
Entity Framework SequelizeJs Hibernate/MyBatis Entity Framework
IDE Atom/Visaul Studio Code Eclipse/IntelliJ Visual Studio
Server NodeJs Tomcat/JBoss/Websphere/Weblogic IIS
Serverless NodeJs Spring Boot (I do not know)

Different Programming Language would have different purpose. For Front End Programming, There are no doubt that you must study JavaScript. For Game Development, I think C# is necessary if you want to use Unity3D.

Purpose Programming Language
Front End JavaScript
Game C# (Unity3D)
Android Java
iOS Objective C

Therefore, you are required to study other programming language if you would like to do programming on these areas.

Moat of Java

  • Enormous Amount of Existing Java-based Systems
  • Mature Ecosystem
  • Enormous Amount of Developers
  • Enormous Amount of Supporters

Discussion

pic
Editor guide
Collapse
xowap profile image
Rémy 🤖

I don't think that anybody is trying to replace Java, it's just that Java is solving problems that don't exist anymore. Also, Oracle is starting to screw it up.

So I'd say, Java is the new COBOL.

Collapse
jervine791 profile image
john ervine

Thats pretty damning to compare it to COBOL and grossly unfair.

Ive been a java developer for most of my career and when faced with most problem, Java would be one of the first tools I would reach for when building APIs and systems that move alot of data around. There are better languages to work with but consider for a second how much the JVM helps when it comes to optimising your code out of the box. Since the arrival of Java 8 and with libraries like RXJava, its pretty easy to write highly concurrent applications without delving into the shit storm that is multi-threading in Java.

People said the samething about C and C++ but people are still writing lots of critical applications using it and the same applies to Java. There are many more days in the old dog yet.

Collapse
xowap profile image
Rémy 🤖

I'm not judging COBOL nor Java (in this thread at least).

Though Java brings a good compromise between C and purely interpreted languages, computers are so fast and JIT compilers became so advanced that the compromise line is leaning much more towards JavaScript or Python nowadays.

Also don't forget what they say about hammers and nails :)

Collapse
_mosiatj profile image
Mosia TJ

Would you be kind and articulate on those problems that aren't there no more?

Open JDK still exists, and Oracle JDK also exists... Companies will keep buying Oracle JDK or turn to OpenJDK, it doesn't mean everything should always be free. Java ain't going anywhere, it will keep being dominant at the entreprise level. One thing that is interesting in the world is that Licensed and priced products are almost always more solid and good quality than open-source. It's just a fact... So Open JDK is good and will keep working(feel opensource), it's just that people aren't paying attention to it, they just wanna mummer about oracle this, oracle that... Oracle is not java.

Collapse
imben1109 profile image
Ben Author

What is advantage of java? I love java because there are a lot of awesome libraries and users. They can change my way of developing. Most importance is they use java.

Collapse
_mosiatj profile image
Mosia TJ

Good point. No one has time to redefine those libraries in another language, which isn't any better in solving problems compared to java. They are only interesting in adding more features. OpenJDK is the future of Java, so be it. PEACE TO THE EXPERTS...

"What's an expert anyway? Just some guy out of town." Larry Ellison.

Collapse
kurisutofu profile image
kurisutofu

I learnt Java and C# at school and I loved both of them.
Then, I worked with both and I came to hate Java and love C#/.net.

As other pointed out, what you like in Java can be found in other languages too so I don't see any real reason to use Java anymore.

It used to be enticing because you could use it on all platforms but now you have node.js, C# (mono), python, Ruby etc ... that can do that so Java is losing its appeal to me.

And what killed it for me is the problems we always had when deploying!
If you don't have the exact same JVM/JRE on the production server, your deployment fails and in big companies where you're not the one in charge of the server, you have a high chance to have a different version and added to that, someone else doing the deployment.
So you need to be on call for any issue that happens following the release during the week-end for example ...

I worked 2-3 years in Java and 5-6 years in C# (sometimes in the same time) and I C# was my favorite experience.
Mind that it was C# 2.0 and we didn't have all the fancy things like WPF, .net core etc ...

Working on private project, I recently migrated to .net core to node.js ecosystem and I think I'm ready to let C# go too ;)
All that to say I'm not here to promote C#, just my opinion... which is I think Java is going to fade away, especially since Sun was bought by Oracle, a lot of people gave up.

Collapse
imben1109 profile image
Ben Author

Why do you think c# is somehow better than java.

Yes. I am fan just because I have been working with Java for many year.

  • maven vs nugget
  • hibernate / mybatis vs entity framework
  • spring mvc vs asp mvc
  • eclipse vs visual studio
  • tomcat vs iis

I have tried node. I do not why I think java is better. It may be due to I just get used to.

Something I think java is better than node

  • maven is better than npm
  • one class one file of java is better than node
  • I think java do somehow better on entity and mvc design (because the awesome library such as hibernate, spring)
  • I think transactional is extreme great ( because of spring)
Collapse
kurisutofu profile image
kurisutofu

What I like with C# was that you had a framework to base yourself on (.net) and all "works".
Java, you had things that were not really integrating well, maybe because they were no made by sun or something like that.

(bear in mind that it's what I used to thing. I now love NodeJS and open-source because you have many choices of source)

  • maven vs nugget
    Never used those so can't say.

  • hibernate / mybatis vs entity framework
    I remember coming to hibernate after entity framework.
    To be honest, it was better than I thought but the solution from Microsoft was more complete and finished to me.
    Maybe now they are comparable.
    That being said, Microsoft's solution can also be frustrating if you don't want to follow their exact way of doing things.

  • spring mvc vs asp mvc
    I mostly used asp.net MVC so I may be biased but same point as above, I found spring MVC not as finished. It was less easy to use to me.

  • eclipse vs visual studio
    I will sound like a fanboy but nothing beats visual studio to me.
    I use vscode for nodejs now and I miss visual studio (I guess I could use it for nodejs, I'll have to research).
    I don't even remember eclipse but I remember it was frustrating ... can't tell you why now though ...

  • tomcat vs iis
    They were equivalent when I tried them but IIS was easier to set up due to a better interface. It does not mean it was a good interface anyway ...

Keep in mind that I don't hate Java. Programming with it is nice enough.
The deployment, I hate but I guess if your company makes sure you always have the correct versions and all ... why not.

One point I did not mention is the GUI ... java's GUI are usually ugly.
We had 3rd party tools at my previous work and even non-programmer were joking about it. Like "wow! that tool looks so bad, it has to be Java!" (it was)...

You should really try other languages.
Not because Java is not good but because you'll see that a lot of them are fun and you will learn new things (method, paradigms etc ...)

And you can still use Java in the same time ;)

Thread Thread
avalander profile image
Avalander

You should really try other languages.
Not because Java is not good but because you'll see that a lot of them are fun and you will learn new things (method, paradigms etc ...)

^ Honestly, this.

It sounds like you've only used Java. It would be good for you to learn other platforms. Pick another language, whichever, and give it proper time. It doesn't mean that you need to abandon Java, but it will give you some more perspective.

When you're only used to one particular platform, whenever you try anything different, it feels awkward and harder, but that's because you're too used to the way things are done in your first platform, not because the new one is objectively worse.

Across the years, I've done professionally a lot of Java, Python and, more recently, nodejs; plus some Lisp and Elm in my side projects. And I hate all of them equally. That's not entirely true, I hate Java a bit more than the others, but that's only because it's the language I've used the longest.

When Java was all I knew, I thought that it was wonderful and amazing and I wondered how anybody could possibly prefer anything else. Then I learned another platform and I found out that it had awesome features that I never knew I was missing in the Java ecosystem. But after learning them, I could never stop missing them in Java. At the same time, I was annoyed that some things that where straightforward with Java, all of a sudden were harder. Learning yet another platform only expanded my realisation that the platforms I knew where missing some great ideas, while the new platform was also lacking great things I was used to.

The good thing is that when you learn a new language, you always learn new approaches to solving problems, and you might get one or two great ideas that you can use in the languages that you already know. You also learn that discussions about language A is better than language B are pointless because all languages suck. They suck at different things, though, so it's a matter of finding which language sucks less for your particular style and problem.

Thread Thread
kurisutofu profile image
kurisutofu

That's really true.
And to add to that, learning a new language may enlighten you on things you thought you understood in Java, or things you were not so sure.

When I moved from Asp.net MVC to .net core, I was frustrated with the new way of doing things ... and the language was the same!
I learned how to use it but recently, coming to NodeJS environment, I saw that it had a similar way (I think Microsoft realized the way the evolution in the javascript world was worth emulating?) but in the NodeJS "world", everything was so far better explained that I started to understand what I was doing.
Then, reflecting on my .net core application, I finally understood why it was working the way it does!

All that to say that you may learn to understand Java even more by doing other things ;)

Collapse
_mosiatj profile image
Mosia TJ

You don't sound like an experienced(despite your records provided) and dedicated developer. There's literally no main technical reason you'd leave .NET CORE for NodeJs. LOL! you're confused with the JS experts. You just wanna be like "Oh Yeah, I use node too." lol and then come Deno in 5 years, and you'd be like "flip node is gibberish, deno is my new ecosystem". It's your opinion afterall. Why initially ruby based companies switched to java? not to mention the likes of Twitter, Air BnB... I find your comment very unworthy.

Collapse
kurisutofu profile image
kurisutofu

I didn't state there was a technical reason for me to move on to NodeJS.
I just prefer it, that's all.
In my professional life, I still use C# and I'm happy about it but if I have the opportunity to use Node, I will.

You don't sound like an experienced(despite your records provided) and dedicated developer

If you say so.
And what is a dedicated developer?

You just wanna be like "Oh Yeah, I use node too."

Oh you mean that the company I've started and the platform I'm building using Node is just a way to sound cool or something?
Wow, I think you should be a therapist, you'd be good!

It's your opinion afterall

True.
But let's look at the title of this article.
"What do you think of the future of Java?"
My native language is not English so excuse me if I'm wrong but I think OP is asking for opinions. But feel free to ask OP for clarifications.

Why initially ruby based companies switched to java?

I don't know, ask them.

I find your comment very unworthy.

And I find yours even worse so imagine how low you are!

You know, you can say that you like Java, it's ok, we accept everyone.
You don't need to be on the defensive about it or you'll get an ulcer.

Thread Thread
leob profile image
leob

Fantastic response, love it ...

Collapse
bgadrian profile image
Adrian B.G.

For your own sake you should get out of the Java bubble more often, learn new languages and paradigms, just saying. You will be a better developer.

Your reasons to like Java are superficial because they apply to other languages as well, and they are subjective.

Other than C# I don't know of any language that is trying to replace Java, the other solve specific problems, some better than Java can (which is good for everything).

Collapse
imben1109 profile image
Ben Author

Why do you think C# is trying to replace Java?

Collapse
bgadrian profile image
Adrian B.G.

It doesn't really, but is the only one that it could, as in the broad raw of language features it can offer to tackle about the same amount of problems in the same way (lots of features, big accent on OOP with a small amount of FP).

They are both corporate-level-monolith based languages, they feel good in that area where you have thousands and thousands of classes everywhere, with long build duration.

Thread Thread
imben1109 profile image
Ben Author

Is java or c# is good for enterprise just because of thousand and thousand of class?

Collapse
sudiukil profile image
Quentin Sonrel

While Java still have a bright future with Android development let's not forget two huge things:

  1. Kotlin
  2. Flutter

I don't know Kotlin much but from what I've heard it clearly has a lot of potential and could easily replace Java for native Android development (it's officially supported).

As for Flutter, well, it's still young but very promising. It's not a language, it's a full framework to create Android and iOS apps... as well as Fuschia apps. So I guess Google has great plans for it in the future and I wouldn't be surprised to see it become a standard way of developing mobile apps.

Collapse
cjbrooks12 profile image
Casey Brooks

I've been working a lot recently with Kotlin, and if anything, I think it will actually help prolong the lifespan of Java. While Flutter requires you to completely restart your app in Dart, Kotlin compiled directly to Java classfiles, which allows the transition to be as quick or as gradual as needed.

Kotlin is an amazing language, but a large part of why it is so great is because it is basically just (a lot of) syntactic sugar over Java itself. This keeps people in the Java ecosystem, and it has no intention of replacing the ecosystem.

When people talk about "java going away", I don't think they really realize how huge the Java ecosystem is. The Java ecosystem isn't going anywhere, and neither Kotlin, Scala, Groovy, or anything else is seeking to usurp the Java ecosystem. Rather, these languages are all great because of that ecosystem, and they are all helping to keep the Java language alive and push it more into being a better language itself. I don't think we would have seen functional programming brought to Java 8 if not for Scala, and similar small things, like better type inference the var keyword in Java 10, stem from Kotlin. Java is growing an evolving just like any major language, and its platform is just getting bigger and better along with it. It is not going anywhere, either as a language or as a platform.

On another note, I've never understood why so many people see C# as modern, while calling Java old. C# was created in 2000, just 4 years after Java, which means it is nearly as ancient a language (by computing standards) as Java (1996) and PHP (1995).

Thread Thread
papaponmx profile image
Jaime Rios

What you are saying is right. The most relevant difference for me would be that it is Open Source. So imagine having to choose between paying for Java updates or using something that looks like Java but it's free, what would you do?

Thread Thread
_mosiatj profile image
Mosia TJ

Are you aware of OpenJDK? It's opensource, so why the heck pay for updates?

Collapse
shaijut profile image
ShaijuT

😄, I used have questions like which language is better ? After discussing with my friends and listening to people online, I realized that Its better to stop asking these questions. Instead start asking which tool is better for current Job and Trend.

Choose the right tool for the Job.

  • Based on your experience, you can use C# or Java for building enterprise and large applications.
  • Instead of JSF or ASP.NET you can think of using Angular or React or Vue etc. for Front End.
  • Python for Machine Learning.
  • Go for Micro Services based perform-ant applications.

In future maybe today's Languages and Framework may be outdated, so to survive you will be forced to learn new language of that time.

Its always good to be Open learn any language as required and Choose the right tool for the Job.

Hope this helps.

Collapse
erikthered profile image
Erik Nelson

Java has a lot more staying power than people give it credit for. While it might not be trendy or flashy, it's going to be around in the enterprise for a long time. The ecosystem is huge and there are lots of good libraries/frameworks for getting things done. Deployment can be a hassle in certain environments but starting with Java 10 there's much better support for running in a container.

It'll be interesting to see what happens now that Java 8 support is starting to taper off. Ignore the FUD about Oracle charging for Java, this is purely to continue getting updates for Java 8 using the Oracle JRE/JDK. If you move to an OpenJDK build you're all good, see here for details on the options available. Going forward it's going to be a best practice to stay in step with the latest Java releases.

To echo several other people here, I'm really a lot more excited about Kotlin's future. It can take advantage of the existing ecosystem seamlessly making the transition nearly painless (especially because of IntelliJ's terrific support). On top of being a "better" Java, it also has a ton of potential because it can compile to targets other than JVM bytecode. Being able to compile to JavaScript and native binaries is huge. I'm really excited to see where they go from here.

Collapse
alainvanhout profile image
Alain Van Hout

I personally approach programming languages as just tools to get things done. The things that matter most are on a level above language syntax or libraries.

Having said that, Java is still my favourite tool, first and foremost because both the language and the ecosystem are dependable. That includes libraries such as the Apache Commons family and frameworks such as Hibernate and Spring, as well as infrastructure technologies such as Maven (it mostly 'just works' - no contest when comparing that to npm and nugget). As for difficulties in getting things up and running, Spring Boot is a shining example of how things can be made easy.

As I see it, the main reason for the dependability is the (prevalent in not prevailing) mindset that applications can live for a long time, so languages, libraries and frameworks need to accommodate that fact. That's something that's mostly missing in e.g. the JavaScript ecosystem (which is why I love JavaScript but shudder at the npm ecosystem).

Collapse
leoat12 profile image
Leonardo Teteo

Java is not going anywhere in the near future. It seems like Java is always reinventing itself, in more recent years is used on Android, the most prominent usage, it is also used in embedded devices, IoT in general, the language has also been evolved to address the concerns of the developers and now with this new release model, although I don't know if it is going to have the expected effects, the expectation is to evolve even faster. Java is the leader in enterprise applications. I don't think there is any web framework as complete as Spring Framework and if there is, I would like to know, honest question. So, I don't think it will end any time soon, many languages came and went in the past 22 years and Java is still here.

Collapse
bassimsmile profile image
Bassim RAJI

I think Java will stay alive as C, java stayed the first used language in a lot of analytics this last year, and even if he falls he will all the time stay in top 5 for a very long year.

Collapse
imben1109 profile image
Ben Author

What would be next one? Or Microsoft can expand C# market share?

Collapse
bassimsmile profile image
Bassim RAJI

Microsoft is trying to make easy what Oracle made it hard and Microsft are doing far better in updates than Oracle, well Java EE/JVM platform is really robust, and pretty widely respected. .NET is not so widely discussed and right now what can make dev switch from java to c# is the visual studio IDE since he may be the best one in the world, so if they make.NET better I guess C# may take first place to JAVA.

Thread Thread
imben1109 profile image
Ben Author

Haha. Recently, I think Microsoft made a lot of awesome stuff such as TypeScript, Visual Studio Code, .Net Core.

Collapse
fnh profile image
Fabian

With regard to the enormous amount of existing Java-based systems it is safe to say that any rumours of Javas demise have been greatly exaggerated.

The change of the release cycles and of the licensing model have caused some turmoil, that's true. At out company, we are evaluating to switch completely to OpenJDK as a consequence. Also the transfer of the Java EE APIs to the Jakarta EE project under the umbrella of the Eclipse Foundation is a thing where it is not yet clear how it will work out; but I from my perspective it looks quite promising.

I'm quite certain that the ecosystem will stabilize itself relatively soon.

Of course, there is a lot of competion. The JVM is a lot more than just the Java language. In the Android world Kotlin has become a first class citizen for example.

Java is far from becoming a niche. Its ecosystem is mature. It is still expanding, albeit not with the same pace as, say Node. The recent developments will surely be consolidated and sorted out in a reasonable time frame.

But I'd consider being polyglot and having an open mind to be beneficial for any dev.

Collapse
soucianceeqdamrashti profile image
SoucianceEqdamRashti

A bit late to the discussion but just read the post. A bit on the silly side really. I used Java for 7 years and then switched to dotnet core, and now using dotnet core 3.1 . There is nothing about the Java world that I miss. Nuget, Visual Studio, async/await, String/Stream/File library, they are all much better and less hacky. Above all I don't have to freaking worry about using a web framework like spring boot or some other latest java microservice framework. Dotnet core has it for me and it has a built in server out of the box. The developers of the language provide that for me making my life as a developer that much easier. I run dotnet core azure functions on linux boxes..

Biggest problem with Java is that Oracle bought it. Google should have bought it since it is a true and true engineering company and couldn't have made it better. Instead Oracle is simply slowly killing Java and instead other jvm languages will take over and dotnet core will be a serious threat.

Collapse
_mosiatj profile image
Mosia TJ

Well, It's great that I only got to read this article now. Like before, you hear experts saying JS is the future with the introduciton of NodeJs... it just isn't happening and I must say that the opensource community with libraries and features that aren't entreprise proof it's very unlikely for JS to win the game. Experts don't look at the root of why something was started, they just say it's fun and everyone loves it so it will win... hah aha by just loving it. But well, am I not supposed to be commenting about java? Yes.. Here we go, Java is everywhere Iot, Servers, Desktop Apps so because languages like Kotlin, c#, python exists doesn't mean java dies. As C++ recently passed python by popularity, was anyone expecting that? nooo, I don't think so. So as a developer it isn't about knowing 10 languages but it's about learning one or few languages well and be good at them. It doesn't you're stupid for being good at one language.

So guys, java isn't going anywhere. As powerful as open source is today, OpenJDK is gaining the momentum and oracle doesn't have guts to kill java, big java users red hat, ibm will etc keep developing java at the entreprise level atleast that's what I've been reading in recent years feel free to ask google to direct you to the right infomation. Andoid has no power to guide the future of java and Android will never atleast for the next 30+ years drop java. It doesn't mean everyone just turned to Kotlin, I am certain, personally, that over 75% of Android developers still uses java. So new Kotlin User... Just chill a bit please. Java will only die if C/C++ dies. lol!

But I love ASP.NET CORE... What a product!

Collapse
sethusenthil profile image
Sethu Senthil

Java is the new pascal. It's only purpose is to expose students to a programming language in an outdated curriculum.

Collapse
thomasjunkos profile image
Thomas Junkツ

I am no fan of Java, but I have to admit: Java was, is and will be a good workhorse. It is not the sexiest mare in your stable but a real reliable one.
Java will not go away.

Collapse
lukaszkuczynski profile image
lukaszkuczynski

That is true in my opinion, there is a lot of stuff already written in Java and someone has to maintain it. Java will not die for many years.