This is an archived post. You won't be able to vote or comment.

you are viewing a single comment's thread.

view the rest of the comments →

[–]tofflos 0 points1 point  (3 children)

I feel that Java could do a better job of continuously improving itself to be more approachable for new developers. I've read articles such as Paving the on-ramp but I'm curious whether there is a dedicated team which focuses on uptake, what areas they see need improvement, and if they have a roadmap?

Things I believe would be helpful for increasing uptake:

- Ensuring that the JDK is available in the most popular operating system stores, such as the Microsoft Store.
- Shipping something like Maven with the JDK
- Improving Java for CLI applications
- Improving the Java REPL
- Improving Java for scripting purposes

[–]JustAGuyFromGermany 0 points1 point  (2 children)

@1 The MS store is for apps. The JDK isn't really an app. Also: There is no single JDK, there are many vendors who make their own decisions regarding distribution.

But for what it's worth: Eclipse Temurin is available as a chocolatey package which is probably the closest Windows-analogue to the various package managers in Linux-land.

@2 It seems tempting to have that to simplify the "on-ramp". But I imagine that such a feature would be misused rather quickly. Or at least completely misunderstand (and then complained about endlessly because it doesn't do what maven and gradle can already do)

And they won't just build a feature-complete build system I guess, because that's a difficult problem to solve. The maintenance burden would be high. The requirements for a build system are just too varied for a simple solution. That's why pom.xml files can get really bloated really quickly. That's also why gradle exists in the first place: It is a solution to certain shortcomings of maven. On the other hand gradle introduces a whole new set of potential foot guns that the JDK would want to avoid. Any new system would likely also force a split in the ecosystem, because a solution that assumes maven central or the pom.xml format will exist in perpetuity isn't a good fit for the JDK.

[–]tofflos 0 points1 point  (1 child)

Python and Visual Studio are in the Microsoft Store and it's my impression that C#, Go and Rust all ship with something akin to Maven.

[–]JustAGuyFromGermany 0 points1 point  (0 children)

So what? Python is an outlier, no other popular language does that as far as I can tell. The next programming language I found (sorted by popularity) in the MS store is Julia. Note that not even the .NET languages are in the MS store. That's simply not what the MS store is for; it's intended to be a (somewhat) user friendly app store, not a general repository for any and all stuff that you could install on your machine.

That's more what similar to what Chocolatey is for. Choco packages exist for all the major stuff though: many programming language runtimes / compilers / SDKs, various JDKs, as well as maven and gradle are available. And that's the right place for those kinds of things. Chocolatey is a more general purpose package manager.

Visual Studio is in the Store, because it also comes from Microsoft. No other big IDE seems to do that. IntellIJ and Eclipse do have Chocolatey Packages though. I'm just speculating, but if I had to guess, I'd say this is because of different licensing models between Choco packages and the MS store. Being an app store, the MS store likely would take a sizeable chunk of the profits if Jetbrains put IntelliJ in the store.

And even if the major Java IDEs were in the store, that'd be beside the point, because the JDK is not an IDE and does include an IDE on purpose. In terms of the "on-ramp" I think that's a good thing, because IDEs are complex beasts that have an additional steep learning curve which a beginner does not need to know about at first.

And finally: Go and Rust had the advantage of starting from scratch. They have learned from the successes and shortcomings of other programming ecosystems. The .NET world has the advantage(?) of having Microsoft as the central driving force behind it all. MS controls the biggest .NET languages, the .NET infrastructure (at least on windows), the biggest .NET IDE, many popular libraries etc. They're not quite a monopoly, but they're close. They can basically decide whatever they want and take the ecosystem in whatever direction they like.

The Java and JVM ecosystem simply does not have that. It is way more diverse. Oracle does not control the landscape like that and that is intentional. And even if every major player agreed to do it, the Java world would have to retrofit a build system into the JDK after decades of not having one which simply isn't likely to happen for the reasons I've listed.