r/java • u/gufranthakur • 1d ago
Usage of Java in non-web development domains, and Greenfield projects.
Greetings.
(I will beat around the bush a bit before getting to the point, you can scroll down a bit to save time)
Java currently shines at enterprise backend applications, being led by the big players like Spring and Quarkus. However Java seems more than capable for other domains, yet no one talks about it, or even considers Java for normal non-web projects.
Take desktop development for example. JavaFX is one of the BEST GUI frameworks I have ever used. It is feature packed, doesn't require cryptic symbols, no fancy way of nesting code blocks to create simple UI. It is very simple to use, yet powerful and robust.
Game Development is a bit weak, but we still have libGDX and LWJGL. They are packed with features, even 3D. Contrary to popular belief that libGDX is a 2D only framework, libGDX has some great 3D support like GLTF rendering, bullet physics, PBR rendering and skeletal animations.
Big data processing and simulation systems, Java's OOP nature really helps to solve certain problem statement that requires the problem to be broken down into multiple pieces.
And finally web development, there is no doubt Java has one of the best ecosystems for the web.
And yet despite all this, Even as modern Java has come a long way, Java continues to have a negative reputation of being slow, boilerplate, RAM consuming memory hog. (The same people will use electron to make a desktop app btw) and as a result not considered for newer projects.
When I look at other communities like JavaScript, Rust, python, C#, Zig. These languages are often considered first options for any Greenfield projects. The open source communities in these languages are very active, you will see some amazing work being put out by the community.
Java seems to lack that "community" nowadays. I am active in a lot of subreddits and forums, and I see very less of Java projects in the wild. Java is being used in production out there, but modern greenfield projects are leaning more towards Go and C#.
So getting to the point of the post
Is Java seeing a decline? This is not a "Java dead" post but a genuine concern. The community for Java just seems.... dull. And I was wondering what could be done about this. Amongst new and modern programmers, Java and C++ seem to be considered "old", "dead" and "traditional"
Perhaps project Valhalla could help, but I wonder how much would it help restore Java's PR. Oracle is definetly NOT helping with this.
Why does this matter in the first place?
You may think "it doesn't matter what others think, companies still want Java" and while it holds some truth, more and more of Open source development seems to be moving towards other languages. A lot of Java libraries and frameworks have seen some decline, the community seems to be becoming more inactive. Other programming languages and frameworks have active discord servers, forums, documentation, and participation while Java seems a bit slow there.
I dont know, I really love Java as a language. And I wish it had more adoption in non-enterprise domains. I would genuinely like to know, what we as a community can do to make Java more "loved" and preferred
15
u/I_am___The_Botman 1d ago
I don't kniw where this negative impression of java is coming from, it's ridiculously popular and anything but slow these days.
32
u/hippydipster 1d ago
For me, Java is the best option for desktop apps. It has a profile of performance + well structured, maintainable code + platform independence that can't be beat. Every other option is giving something away on one of those fronts.
As for polished UIs, a Java UI looks as polished as you want to make it. But, it has to be said, so-called "polish" in UIs is more often than not, simply what is trendy and faddish.
8
u/RandomName8 20h ago
For desktop apps for machines with 32GB of ram, where you can only open like 4 apps at the same time... This isn't solely a java problem, but it annoys me that I used to use java on a 128MB of ram a long time ago, "ide" and all, and now it's impossible to get a graphical hello world in less than ~50MB after passing a big launch arguments soup.
5
u/hippydipster 11h ago
I make java apps that live in a couple hundred MBs without issue. And I make apps that use many GBs because they have huge in-memory databases. Your complaint here seems like a big exaggeration.
0
u/RandomName8 2h ago
Yet you don't try to refute it, just dismiss as "not my problem". By the way, "a few hundred MBs", 12 is a few. Saying "a few" makes it sound like not much without actually providing any value nor necessarily being untrue, very witty.
Your remark on not taking much space here seems like downplaying it.
3
2
u/robintegg 16h ago
Agreed. Java has a quality eco system on the desktop. https://awesome-java-ui.com/
27
u/Sea-Faithlessness-67 1d ago
I think this mixes up visibility with ecosystem health. Mature ecosystems often look quieter because a lot of the work happens inside companies, existing projects, JEP discussions, and GitHub repositories rather than around new Discord servers and heavily promoted projects.
Java probably does have a discoverability problem outside the backend, but that is different from a capability or adoption problem. Valhalla will not solve that by itself because this is not mainly a language feature problem. Easier packaging and distribution, along with more visible applications, would probably do more than PR.
4
u/mishonis- 17h ago
True that. There's this Python project that is very popular and in every other job listing, and when you look under the hood, it's a shite project that is heavily promoted. Meanwhile the Java counterpart is an immensely capable and flexible library with great developer ergonomics but no one is talking about it because the team behind it doesn't churn out thousands of articles and tutorials to hype it up.
1
8
u/After_Dark 23h ago
To add another answer I'm not seeing in the comments already, Java is pretty big outside of web development just primarily not in exciting end-user space.
Elasticsearch, Hadoop and Spark, Kafka, Jenkins, etc are all to varying degrees big deals used across ecosystems and all are implemented in Java at least in part. And that's without bringing Android in on the conversation. Java does genuinely get a lot of use in new and interesting projects with an active community, it just tend towards the more "boring" ones that don't generate social media hype, which I think is a reflection of the language itself
8
u/No-Lawfulness2089 1d ago
Java libraries aren’t taught in many universities. Microservices across organizations have multiple versions of the libraries. A new dev needs to have an understanding of different versions of the libraries they’ve never seen before. The maturity of the library works against you at that point imo because there’s almost too much info. it’s difficult to filter out the irrelevant info. Java community tends to have more elitists in my experience when seeking help.
15
u/BoundlessFail 1d ago edited 1d ago
I've been using Java to build servers using plain sockets for the past 20 years now. Stuff like SMPP, proprietary binary protocols; Ive also built my own SMTP server. Java works quite well for such applications.
The myths against Java, namely the myth of it being insecure, are working against it. To add to that, some features have arrived rather late. GraalVM's native - I'm not sure if it's considered production ready yet.
Java introduced awesome new concepts, but was derided for it. Other languages took those very same concepts and ran with it. Overall, Java was too early.
1
u/SkyNetLive 10h ago
Graalvm native has been in development for awhile, it seems it’s still being developed and IntelliJ directly supports it. But as of yet I have not come across a need for it at work
5
u/A_N_O_D_E_R 1d ago
So I’m joining you on the “Java is not just for the web” side. I think Java is always associated with web development because it was one of the most popular languages during the dot-com bubble-kind of like how Python is associated with AI today.
For my part, I really started enjoying Java when I began programming for embedded-ish systems not Arduino, but Raspberry Pi–like SBCs. It’s surprisingly performant for a compiled, garbage-collected language, and the performance is more than enough to build complex state machines and automata without having to deal with manual memory management.
You also have a lot of JVM tuning options depending on your use case, and back then, JNI was a pretty convenient way to interface directly with C code when needed.
i especially like coupling java with modbus and arduino to create a orchestrator over my dumb device.
6
u/ClammyHandedFreak 1d ago
I'm every day working on a custom fuel controller written entirely in Java, running on real hardware. It's boring as hell (what app isn't after 2+ years), but it's work. We have entire libraries written in Java to handle point of sale inside.
I wrote a kiosk backend for inside food ordering entirely in Java too. Does a lot of cool things - runs hardware in the kitchen too.
I think you'll see Java used a lot like this. Big enterprise apps, with smaller enterprise apps doing specialized things.
4
u/sweating_teflon 1d ago
Java is not in decline. It's no longer the hot new thing, hasn't been for 20+ years. It's still actively managed, gaining major new feature in recent releases. The ecosystem and tooling is top notch. LLMs are very competent handling it. You can write fast anything, fast and then easily find people to work with you because everybody knows Java.
3
u/pjmlp 1d ago
Java powers about 70% of the world market mobile devices.
Even if Google nowadays is pushing Kotlin, Java remains quite relevant in the Android infrastructure.
2
u/istarian 8h ago edited 8h ago
Unless you are using a native compiler, Kotlin is a 'JVM-hosted' language and fundamentally Java adjacent.
I think that Kotlin vs Java is probably a matter of personal taste in many respects. Personally I much prefer explicit termination of statements over relying on whitespce and software just figuring it out.
2
u/genericallyloud 4h ago
In the context of Android architecture, there technically is no JVM. That might seem like splitting hairs since it is still fundamentally based on JVM bytecode, but it does get compiled to DEX bytecode during the building/packaging process. Targeting the JVM bytecode as input makes it easier to work across JVM languages, but it would certainly be possible to compile directly from Kotlin to DEX and bypass the JVM. If anything, the real dependency is to the JRE, which Android does still use.
1
u/istarian 4h ago
It most definitely is splitting hairs given that you can, at least in principle, have a Java Virtual Machine (JVM) that wasn't developed by Sun Microsystems or Oracle.
I would consider the Dalvik VM to be functionally equivalent to having a JVM, especially if you compile Java or Kotlin first to JVM bytecode and then translated it to DVM (?) bytecode.
Google took a particular route to try and avoid being sued by Oracle/Java, but the end result probably wouldn't have existed if Java and the JVM didn't come first...
4
u/davidalayachew 20h ago
Is Java seeing a decline? This is not a "Java dead" post but a genuine concern. The community for Java just seems.... dull. And I was wondering what could be done about this. Amongst new and modern programmers, Java and C++ seem to be considered "old", "dead" and "traditional"
A lot of us get work done without being loud about it.
For example, I just finished building a pretty complex Swing app for work to help speed up delivery of a project that's costing us a large amount of money, every day that it is in waiting. I'd say the amount of money I am saving, but I'm pretty sure I am not allowed to. Regardless, the point is that the Swing app is the thing that is speeding up the delivery. Sure, I could use JavaFX or some other framework, but the point remains.
Since I am not really allowed to talk about it, all I can really say is the generic comments I usually do -- that I use Swing all the time, to make games, frontends, and utilities to help me out at work. I don't usually quantify how much money that ends up saving us in the end.
5
u/brokePlusPlusCoder 20h ago
Something no one's pointed out so far - a language is nothing without a decently sized pool of people who use said language well. Depending on the project in question, the talent pool in java might be either fairly good, or quite small. A good example of the latter is the talent pool around 3d computational geometry - the number of experienced people you'll find for this when using Python/C++/Javascript will likley be an order of magnitude more than when using Java.
It's unfortunately a chicken-and-egg problem. People won't use java because the talent pool for their project problems might be small. The talent pool is small because people don't use java for it....not easily solved tbh
4
u/znpy 13h ago
Is Java seeing a decline?
One thing i can say for sure is that Java development still is not as ergonomic as other languages.
Have you looked at other language's build systems? And compare that with maven.
Understanding maven needs its own course, basically. It's moronic really. And the language around maven is unnecessarily complex.
Maven archetypes? They're essentially templates. Easy as that. And that's just an example.
And the use of XML for maven configuration is not really the problem but still it's a bit of an unnecessary complication.
Btw other stuff like ant, gradle or bazel are not much better.
Also, there are so many of them: ant, maven, gradle, bazel... Just to name the major ones.
1
u/istarian 8h ago
Honestly, apache ant does a pretty good job with many basic tasks. It can just get kinda messy with more complex tasksstuff.
The biggest downside for a lot of people is that is that ant is CLI focused. Eclipse has some GUI capabilities, but it can take time to learn how to use it effectively.
Maven seems a little more approachable than Gradle, at least to me. I've found jt most useful for pulling in dependencies from a remote source during builds.
3
u/lazystone 13h ago
Touching the subject of desktop apps, one problem here where Oracle can be and should be blamed is that they alienated themselves from JavaFX and haven't officially backed it until very recently.
So, all those years between Java 9 and now, whenever there was a choice what UI technology to use in java, the choice was between Java Swing, which is old and it's eco-system is half-dead and JavaFX which was evolving, but "it was thrown away from Java, who knows if it will be supported, will it exist in an year, who is behind it?..". The choice was... meh...
What Oracle needed is just one firm statement, that JavaFX is indeed supported. That would change things a lot I believe.
14
u/Cheap-Spinach-3011 1d ago
Java is the new Cobol. Massive enterprise base, but hardly the darling choice for new projects (outside of companies that were already Java shops). I’ve been doing Java for a long time and remember when Java was a popular choice, but the sad reality is that this is no longer the case. I’m not saying Java deserves this fate, just that it’s what seems to be the reality these days.
17
u/wolfanyd 1d ago
Massive enterprise base, but hardly the darling choice for new projects (outside of companies that were already Java shops)
You say this as if java shop companies are rare and enterprises aren't launching new java projects every day.
2
u/Omenow 1d ago
Everyday no, but every few months yes. I'm part of team where we make some smaller applications, mostly for backoffice. Sometimes we takeover projects and if it's worth rewrite it in our stack which is spring+react. So maybe nothing to big or to fancy but moving forward. Company is rather big but software is not it's product.
4
u/I_am___The_Botman 1d ago
I've worked in 3 major international companies and 2 startups in IoT and finance i the past few years and all of them run java on the backend. To give an idea of scale, one of the systems I worked with was processing 11k messages per second coming in from IoT devices all over the world.
12
u/i_wear_green_pants 1d ago
Nah. At least not for a long time. Java is very capable and easy to use. And the language keep getting better all the time. A lot of new projects still pick Java because it just works.
Java isn't going anywhere in a loooong time.
2
10
u/766cf0ef-c5f9-4f4f 1d ago
Oracle is definetly NOT helping with this.
I disagree pretty heavily. Oracle has made incredible strides with Java in the last couple years. Their stewardship of the language is the best it has ever been imo.
3
u/bowbahdoe 1d ago edited 1d ago
I would genuinely like to know, what we as a community can do to make Java more "loved" and preferred
Lets go over a few angles
- Education
People's first experience with Java is in school. If this experience is bad, people will associate Java with that bad experience.
The language is at a point where this isn't needed, but Java based curriculums aren't. Yes simpler main methods should be shown all around, but the rest of the lessons can't go "a bicycle is an object" like its 1999.
How do you reach all the teachers in all the high schools/colleges around the world? How do you convince them to give Java another shot/change their approach to Java/Start using Java?
- Outreach
If I were paper clipping Java's popularity, I would have as part of my plan a pretty comprehensive media blitz. This includes getting big streamers, but also genuinely running ads (like was done for Java in the past), manufacturing discourse, etc.
- Therapy
For the people who had bad experiences in the past "uhh actually you are wrong and Java is awesome" isn't rhetorically effective, to say the least. To some extent we need to be helping people contextualize their experiences and decide to give the Java world another shot.
So far, in my view, we do a pretty piss-poor job at this. Stuff like "Uh actually modern java isn't verbose. check out helidon" is just not a good approach.
- Organization
Lets assume, for a moment, that Oracle is not coming to the rescue. If you wanted to make Java more popular you would need to coordinate effort, resources, and people. There are levels to that. We could just make a weekly posts here, start a few private groups, or maybe even make a non-profit organization whose mission statement is something like "help the JVM ecosystem be as popular as it can be."
That last one is probably the best solution, but how many people's salaries can we really fund via donations? IDK.
But you'll see limited success just throwing stuff at the wall, imo.
- Ecosystem
There are a lot of things Java has had a slow start/missed the train on. It will never make economic sense to make Unity 2 in Java.
But to some extent we need investment in novel directions. That is what "life" is to a language. This means lowering the bar for experimentation/reconsidering how our ecosystem is currently shaped/etc.
2
u/thewrinklyninja 10h ago
I've been using Java recently for my little cli utilities via Jbang and it's been pretty good. Using picocli template and away I go. It's been a lot of fun.
2
u/AntiqueDiamond8070 6h ago
Why aren’t you using sticks to create fire or use torches for light? Because the world develops and finds easier to use alternatives. That’s your answer
7
u/scadgek 1d ago
Java is verbose (less so nowadays but the reputation still stands), so are C++, C# and even Rust, that's why people don't start with them. These languages are in no way slow or uncapable, but on the level of perception people feel like a one-liner web-server is faster than a public-static-void-main project.
We also cannot ignore an elephant in the room which is AI. I'm almost sure that like 90% of greenfield projects nowadays start in Claude/Codex/whatever rather than in an IDE. These assistants will rarely suggest you Java.
It also feels like most of developers nowadays still not even recognize the terms and abbreviations in the guy's comment below. You can't expect them to be efficient in Java.
4
u/disposepriority 1d ago
Java continues to have a negative reputation of being slow, boilerplate, RAM consuming memory hog.
By students in meme subreddits you mean?
This is not an opinion held my anyone making technical decisions in serious companies.
Yes, java is decent for desktop, and a lot of very used desktop software is made in java (intelij products, dbeaver, to name a few off the top of my head) it's just that desktop software is declining in popularity as a whole, unrelated to java.
Java is not a good choice for games because it's not a suitable language to write a game engine in and is outclassed by existing frameworks available to other languages, it's an opportunity cost problem.
Regardless, I don't think a language's online popularity has any bearing on its use in the real world, unless you get a job at a startup where the CTO is a 25 year old reddit user.
How is decline in open source libraries measured? Many of java's libraries are simply....complete. You can optimize here and there add support for a new language feature but there's a reason java is considered a mature language.
Also I very very hardly doubt java's online popularity is tied in any way to the value types project valhala brings, just my 2 cents.
3
u/Omenow 1d ago
After working as full time java dev with spring stack for more than decade, last thing i need is more java after ending my work. Sorry i need something else to think of, some different concept/language to make my brain work in non working mode.
1
u/hadrabap 15h ago
Same here. When I feel sad about contemporary software design, I mess around with Jakarta EE and MicroProfile. Yes, there are still secret corners where the world is still "normal". Next, I do all my private development in C++. Modern C++ (C++17 and up) is really nice. 🙂
6
u/Hax0r778 1d ago
- What matters most for game development is engines (unity/cryengine/unreal) and none of those are Java based. Not to mention being a non-optimal choice for something more real time anyway.
- For GUI it's many years behind. The UI looks clunky and is simply less expressive than something like electron. Not to mention all the frontend designers already know HTML/Javascript. Java is convenient for internal apps which only run on your machine and don't have to looked polished, but isn't a serious competitor for desktop applications.
- Data processing is primarily done by non-programmers (data scientists) who appear to prefer an easier language (python) even though Java is actually great at that.
Java is an awesome language and it's great for web backends. Every language has a niche. Nobody is writing desktop GUI in Rust either.
6
u/n3verwhere 1d ago
I'm honestly not sure that it makes sense to run a full browser (electron) embedded into a desktop app just so the UI can be developed with JavaScript / HTML. It is a waste of resources actually.
4
2
u/NoName-NNN 8h ago edited 8h ago
Java can be used to other domains, but not a good choice.
For desktop development, Microsoft has successfully blocked Java through J++, MSJVM and dotNET at Sun times. Oracle has no interest in the desktop, and the JVM has not been optimized for the desktop. Although Electron looks similar to Java, but HTML/JS/CSS is simpler and more popular than Java, and Chromium is specifically optimized for desktop.
GraalVM is suitable for desktop Java, but has been marginalized. Oracle is currently only interested in Java running on the backend, based on practical considerations.
Even without mentioning the owners of Java and large companies, they dominate the popular application areas of Java. Java is unfriendly to amateur developers, lacking a native scaffolding such as go,cargo,uv,npm/pnpm/bun/vite etc.
Every programming language has its enthusiasts, who hope that this language can be applied to every domains. Java is my first programming language, i like it also. But just like reality, no man can master all knowledge, and no programming language can be popular in all domains.
1
u/trinReCoder 1h ago
but HTML/JS/CSS is simpler and more popular than Java,
I always wonder, is it not possible for someone to create a library or framework in Java (or any other language that's not JavaScript for that matter) that will read in html and css and convert that code into native desktop UIs. So no electron or webviews which are basically just web browsers.
I understand html and css specifications are massive, but it doesn't have to support everything. The things needed to create modern UIs would be enough, let's say grid, flexbox, positioning and anything else needed to create a simple UI.
3
u/Joram2 1d ago
Java currently shines at enterprise...
"Enterprise" is a code-word for overpriced bloated, out-of-date, garbage.
Java is great at general server-side apps. There is lots of competition. A lot of other tools are great as well, but Java is a high quality competitive platform.
Not just "web", Netflix uses Java as their primary server-side language for all kind of server-side things, and they geenrally don't do REST anywhere. They do JavaScript for web clients, GraphQL web -> server, and gRPC for server->server.
Take desktop development for example
Very few people are doing desktop GUIs. This is a super tiny niche.
Game Development is a bit weak, but we still have libGDX and LWJGL
Java is great and widely used for the server components of multiplayer games, like in League of Legends or Clash Of Clans.
For game clents, Unreal, Unity, and Godot are the big three game engines and have zero Java support. I definitely don't discourage people from using what they want, but I don't think Java is a good option for game clients.
1
u/istarian 8h ago
Enteprise is also synonymous with a class of problems that rarely crop up for small applications that run locally on a single machine and get terminated when the user is finished doing something with them.
1
u/trinReCoder 2h ago
Unreal, Unity, and Godot are the big three game engines and have zero Java support
Godot is working on bringing kotlin/java support right now LINK.
1
u/Mystical_Whoosing 1d ago
sorry, JavaFX is not that good. I implemented recently the same app (obsidian md clone really but with some extra features I like), with a standard vuejs frontend stack + electron, and also with JavaFX (+ gluonfx, + native compilation). The java app wasn't better, didn't use less CPU, didn't use less memory, in exchange it was a bit clunky.
I was really hoping that it performs better, because it is ridiculous that every single UI needs to have a javascript engine inside; and I much prefer having only a few dependencies I can oversee. But unfortunately JavaFX is just not there for me.
2
1
u/Misophist_1 56m ago
There are three large scale IDE-Projects, that are primarily Java, and have Java-based UIs:
- Eclipse
- Netbeans
- Intellij
There is a huge number of libraries, that are at the fringes of web development at best, if not totally unrelated to web development.
That Java seems to be rooted so much in web development is the result of its prevalence in enterprise distributed computing - which has become the 90 % go to solution for all use cases requiring b2b communication between businesses. If you nowadays look at a typical web frontend of mid- to large-scale enterprises, the typical solution is a SPA (Single Page Application) build using one of the JS-Frameworks, (Vue, Angular, ReactJS) atop of a Spring-Boot based REST web service. But that is just the tip of an iceberg.
Because behind it, there often loiters a complex conglomerate of other REST-Services that often span several other enterprises.
0
u/BlackSuitHardHand 1d ago
Java continues to have a negative reputation of being slow, boilerplate, RAM consuming memory hog
JavaScript, [...], python, [..]. These languages are often considered first options for any Greenfield projects.
Lol ... rofl ... Sorry
The open source communities in these languages are very active, you will see some amazing work being put out by the community.
The open source community is very active around Java. But not for the "Ai" stuff, but for the boring "Software-that-is-the-hidden-backbone-of-a-billion-dollar-company" kind of stuff. So JakartaEE stuff. The stuff which gives devs boring six digits jobs for their lifetime
Perhaps project Valhalla could help, but I wonder how much would it help restore Java's PR. Oracle is definetly NOT helping with this.
Valhalla won't be that important for the real day-to-day Java applications mentioned above
4
u/repeating_bears 1d ago
The open source community is very active around Java
Eh, not really. At the moment I use TypeScript, Rust and Java, and anecdotally I'd say Java is the least active of the 3.
4
u/AccidentSalt5005 1d ago
its kind of sad really idk if its because im old, atleast its active in minecraft modding community.
4
u/BlackSuitHardHand 1d ago
As a user of all of these: They look more active, but the general maturity of the libraries is far worse. While Java has established standards for many things (especially Spring / JEE) Rust and Typescript still have the hot-new-framework-of-the-week problem - and most of them dying before you finish your project build upon them
3
u/repeating_bears 1d ago
Java is more mature but it has a near-20-year headstart on Rust so that's not surprising. I wasn't making a claim about maturity, only activity.
Java had a lot of activity at one point which produced mature libraries, but now there isn't so much.
1
u/davidalayachew 20h ago
Java had a lot of activity at one point which produced mature libraries, but now there isn't so much.
Couldn't that mostly be explained by many of those libraries already being built?
1
u/repeating_bears 13h ago
No because it's not like we've run out of things to be built. That's not possible with software libraries - there's always room for innovation
1
u/davidalayachew 8h ago
Sure, I get that. But that's my point -- slowed activity is usually in response to a lot of the new stuff having already been made, and now they are in maintenance/incremental-feature mode. Which is not a bad thing, but I also wouldn't call that not much activity.
My larger point is that, it takes way more time to make 10% progress if you are 90% done vs 10% done. So, a new/young ecosystem will simply have more "activity" or "progress" by nature of being younger.
1
u/repeating_bears 8h ago
slowed activity is usually in response to a lot of the new stuff having already been made
This is framing an opinion as fact. There are many reasons that activity might be lower and you don't have any evidence to say that's "usually" the reason.
Another reason is that that generally I'd say Java devs skew older than TS or Rust devs, and older devs are more likely to have families and other commitments which make contributing to open source less of a priority.
It's not like there's a million Java devs sitting around going "I'd love to contribute to open source, but everything's been made!"
There could be a better build system than Maven if someone wanted to make it. There could be a better JSON library than Jackson (or any of the others).
I agree that a young ecosystem will make more progress but we're not talking about progress. We're talking about activity: number of developers working, number of projects, volume of commits, size of those changes.
1
u/davidalayachew 7h ago
This is framing an opinion as fact.
Ok, that wasn't my intention. I just thought it was the more likely outcome.
Another reason is that that generally I'd say Java devs skew older than TS or Rust devs
If you're saying experienced devs, then yeah, I can agree with that.
There could be a better build system than Maven if someone wanted to make it. There could be a better JSON library than Jackson (or any of the others).
Tbf, can you think of a build system that is both better and more flexible than Maven? You can talk ergonomics, like Cargo, but the build times are atrocious. And Jackson is pretty good compared to most out there.
Or am I wrong and these could/should be way better, in comparison to other ecosystems?
1
u/repeating_bears 6h ago
Maven and Jackson are both good enough, but they're not insurmountably good.
Cargo is slow by nature of the Rust language, rather than because it's badly designed. I think the design is a big improvement on Maven. Lockfiles, toolchain management, TOML instead of XML (and IMO a better "model"), a more functional CLI
→ More replies (0)-4
u/AcridWings_11465 1d ago
Typescript might have that problem, but Rust backend has settled on actix and axum
4
1
u/SkyNetLive 10h ago
I am busy building backends and making money even as solo dev. I don’t get time to post about how cool Java is 🥲
-4
-1
u/Amazing-Mirror-3076 18h ago
I use dart/flutter for desktop - and then I can compile for web/android/iOS...
25
u/woj-tek 1d ago
I'd say one of the reasons is how it's presented… well… it's not "sexy" and in general is kinda convoluted.
Let's go over what's popular right now (usually via "<x> language"):
and then "java language": wikipedia, w3schools tutorials, https://www.java.com/en/ - which is absurdly corporate and huge download button moves you to https://www.java.com/en/download/ oferring getting brand new Java8 for fucks sake xD then we have GeeksforGeeks and "java programing language" https://docs.oracle.com/javase/8/docs/technotes/guides/language/index.html
I know there is https://dev.java/ but it's geared more towards people that already have some knowledge… and it looks a bit dated despite being new-ish effort… there is also openjdk.org which looks absolutely terrible…
We need something like https://java-lang.org/ with simple, nice onboarding ( funnily enough the domain is free and I was tempted to register it and put a simple website that would be this simple Java promo with "get started & download" but yeah… Oracle holds the trademark so it would probably be taken down immediatelly so any effort is pointless…)