5 ms·
Java is still undisputed in the enterprise. Node.js was a contender but lost steam. May be .net once it becomes truly platform neutral have a chance to take on
by murukesh_s 7y ago
Java is still undisputed in the enterprise. Node.js was a contender but lost steam. May be .net once it becomes truly platform neutral have a chance to take on Java. Until then most probably it will remain widely popular.
- _bxg1 7y agoI figured that was mostly due to legacy code at this point; is it undisputed for new code too?
- dharmab 7y agoThere are few competitors that have strong, static typing, great test tooling and broad library support.
- _bxg1 7y agoI guess "great test tooling" and "broad library support" are subjective, but there are several contenders these days that I would say might fit those criteria
- apta 7y ago> "great test tooling" and "broad library support" are subjective Not really the case when it comes to Java (and the JVM in general). It objectively has great test tooling, and a very diverse library ecosystem, not to mention monitoring, introspection, management, tunability, etc. are second to none. The only other ecosystem that arguably comes close is .NET.
- _bxg1 7y agoThe point is the words "great" and "broad" are relative.
- kamaal 7y ago>>there are several contenders these days that I would say might fit those criteria Even if you get the basic 'Batteries Included' part right, you still won't match up ubiquity in terms of being able to hire developers(in big numbers), common knowledge base, maintainability of code bases. Java code bases tend to be around for long. And people of all skill levels can get started with minimal handholding. Also note not all companies have the revenue streams of top internet companies. And they can't afford to flush hundreds of millions of dollars, and man years of personnel time down the sewers to arrive at hiring the perfect candidate for the job. Almost always most companies need candidates who can get job done, for whatever salary they can offer. And they can't afford to rewrite their code every two years, so they care deeply about things like easy hiring, and code maintainability on the longer run. Apart from these things Java itself is a great piece of tech, and has passed the test of time over so many technology trends. If you are starting a backend project, Java is more or less the best and the top tech choice at this point, and has been for long now.
- SlowRobotAhead 7y agoI can only speak from experience, but I know two large corporate entities that used Java and have over the years dropped it in favor of Go and websites. Edit: i like how my first hand experience is disagreeable and should be hidden. This site gets STRANGE with facts that users just don’t want to see.
- hu3 7y agoYou'd have more success with the vocal minority around here if you replaced Go with Rust. Highly recommend doing an experimentation a week from now. You'll see exactly what I'm talking about. Same for this comment: https://news.ycombinator.com/item?id=21621738 https://news.ycombinator.com/item?id=21621738
- SlowRobotAhead 7y agoI’m sure you’re right. The issue is I can’t change my first hand anecdote of the two companies specifically I’ve been to having switched to Go and web apps from their older Java applications.
- apta 7y agoBasically fad driven development.
- deleted 7y ago[deleted]
- deleted 7y ago[deleted]
- hu3 7y ago"Comments should get more thoughtful and substantive, not less, as a topic gets more divisive." https://news.ycombinator.com/newsguidelines.html https://news.ycombinator.com/newsguidelines.html Same for another comment of your: "Yep. golang is one big appeal to authority fallacy at work." - https://news.ycombinator.com/item?id=21618006 https://news.ycombinator.com/item?id=21618006
- jillesvangurp 7y agoYes, there is a lot of new code being written for the JVM. E.g. Kotlin is a fine choice as a language for a new backend project these days with excellent support in frameworks like Spring Boot. Also it is a drop in solution in pretty much any Java project (as in you can mix the two and they interoperate without much fuss). Modern Spring Boot is pretty nice and getting nicer with each release. In terms of feature set it pretty much runs circles around anything in the javascript ecosystem. And with a language like Kotlin it's not a bad programming experience either. As a language Kotlin is sort of similar to typescript with a few nice features added, a bit more elegant syntax in some places, a bit richer in some places, and of course none of the madness that comes from javascript compatibility. I've seen typescript developers pick up Kotlin and liking it. Other languages it is similar to are C# and Swift. Swift is so far not used a lot for backend stuff but I could see that change. All of these can already compile to web assembly and the tooling for that is likely going to mature in the next few years to the point where you can target browsers, node.js, and native with a wide variety of languages.
- _bxg1 7y agoI was specifically talking about Java, not the JVM in general. The latter is obviously still a great technology and it hosts some of the best up and coming languages.
- foepys 7y agoYou cannot meaningfully differentiate between Java and the JVM because all popular JVM languages (Skala, Clojure, Kotlin, Jython) can interact with Java libraries. In fact, they are even using this to market themselves. Java libraries are the way to program for the JVM and all its (popular) languages.
- throwawaytoday5 7y agoI've work for large national ISP where they are heavily trying to create a new series of network engineering tools (device discovery, adding new ARs with ease, upgrading existing devices, pragmatically change thru-puts between regions based on load, etc). Most of the backends for these types of tools would explicitly be done in Java. Why did they chose Java? Mostly because they would staff entire teams with H1Bs and dump them after 5 years. The directors of these projects would only hear about "buzzwords" surrounding the latest tech if they themselves went to conferences or happened to luck out if the project managers they hired had varied experience. Oddly enough, there's a lot of greenfield work being done using Scala at Verizon and Comcast. But from my direct experience, it's entirely dependent on the team. The more the team doesn't rely on contractors the more likely they are to use niche tech.
- murukesh_s 7y agoSecond that. Even the much advertised linked in uses Java engineers much more than NodeJs
- delecti 7y agoIf your systems are Java, you'll hire people who can work in Java, and if the only thing your devs have in common is experience with Java, your new code will be in Java too.
- Roboprog 7y agoSad but true, for the obvious business reasons. I was pleased (somewhat) 20 years ago when Java displaced C++, but now I just wish it would fade away. Thanks for the garbage collector, Java, now retire. This said as someone who is convinced that most of what I want to do could be done with FP vs OOP techniques, and FAR less of it.
- pjmlp 7y agoExcept that .NET is the only actual alternative, regarding eco-system libraries, IDE capabilities and tooling for monitoring production systems.
- vbezhenar 7y agoJava is hot again.
- brendanw 7y agoAs someone who loves kotlin on android, I have been searching for companies experimenting with kotlin jvm or kotlin node backends and have been surprised to see that companies are not making the jump. Swift is remarkably similar to kotlin. With a kotlin backend you have the benefits of the JVM or node ecosystem and a beloved language that a bunch of your frontend devs will understand.
- cutler 7y agoYes I also note this lack of uptake of Kotlin in Java environments but on reflection it's not surprising because organisations which have chosen Java tend to be conservative. Enterprise software is predominantly Java and .Net and probably will be for a long time to come.
- pjmlp 7y agoDepends on the enterprise. I pretty much keep using Java and .NET alongside each other, because all the customers have mixed systems.
- nogabebop23 7y agoIs it really your experience that node was ever a contender? In what context or application? Also enterprise is almost all windows on the client and on the server still has lots of traction; I don't see why .net needs platform neutrality to take a big piece of this. I find the numbers reported here pretty flawed; ".net" is down while "C#" is up about the same amount. I realize this data is based on keywords, so maybe this just means clueless HR posts are finally stoping the practice of saying "must have .net, C# and ASP.NET" Stating "SQL" is the top skill is also pretty pointless; I've rarely met a developer who will say "I don't know SQL" because most think this means "can write simple SELECT statment", which a lot of the time is enough.
- murukesh_s 7y agoYes it was. That's why IBM, Microsoft etc rushed to adopt or sponsor Node.js. IBM acquired strongloop a NodeJs based enterprise framework. Microsoft extended their Chakra engine to support NodeJs but its still work in progress shows it lost steam.. Enterprises do not work with a brilliant language runtime, they need large ecosystem support from large vendors (read enteripse tools) and large availability of workforce, both of which are lacking in NodeJs esp. compared to Java. It's unfortunate as Typescript have now elevated NodeJs to a mature package and should have made stronger in roads into enterprises.
- dehrmann 7y ago> Node.js was a contender but lost steam My guess is that Node.js either saturated the market of web developers looking to do backend, or people realized that type safety is a good thing, and JS doesn't have a good story for it.
- akerro 7y ago>Node.js was a contender but lost steam. May be .net once it becomes truly platform neutral have a chance to take on Java. C# and CLR lost it a few years ago, GraalVM is taking this space really rapidly now. I'm in opposition to most comments here hating Java for whatever reason, hoping JS or C# to destabilize this system. I absolutely love Java and its ecosystem. Super mature libraries, library for everything, great tools, literally for everything. A lot of tutorials, massive investment from several corporations contributing to OpenJDK. Java is super hot right now.
- cutler 7y agoI was hoping Kotlin might challenge Java outside Android but it seems unlikely to make a dent in Java's dominance of enterprise computing.
- thejigisup 7y agotoo many dinosaurs in enterprise IT who don't want to learn new things.
- vips7L 7y agoPersonally as a JVM dev, I see no reason to choose kotlin over Java unless I'm stuck in an environment thats running a JVM < 8.
- erik_seaberg 7y agoFor years people have been using stuff like Lombok as a half-baked Java dialect with more usable defaults: non-nullable types, immutable objects with getters and builders with named setters, sneaky throws, meaningful #equals and #toString. Kotlin just concisely supports what we’re already doing. And for everyone who’s been waiting for Java fibers, well, Kotlin coroutines are out of beta. I do like Scala, I wish we worked in an industry that could expect everyone to master it, but it’s probably too much to ask.
- tonetheman 7y agoTo me node never was a contender. The lack of types is painful in JS. Then out of the box nodejs just dies by default on error. Without tons of package and tooling around it. It is a horrible application server.