4 ms·
Every time I look at the Java ecosystem I feel lost. Versioning, package management, naming and ‘EE’ all seem to be ‘in the know’ things that keep outsiders out
by hsbauauvhabzb 4y ago
Every time I look at the Java ecosystem I feel lost. Versioning, package management, naming and ‘EE’ all seem to be ‘in the know’ things that keep outsiders outside.
- doctor_eval 4y agoWell, I know what all that stuff means, and I’m so very, very happy not to be part of that ecosystem any more.
- nerdponx 4y agoI feel this way too. Clojure looks awesome. Kotlin looks nice. People tell me that even Java is pretty good now. There are a lot of JVM libraries and people say that the JVM itself is an engineering marvel. But... the ecosystem is incredibly intimidating and there is no obvious starting point for a beginner. I know that with Clojure you can probably just stick to "Clojure stuff" like deps.edn, but that's also not really why people choose Clojure in the first place, nor does it seem like a sensible path to competency. And I say this as a Python professional and a Common Lisp and Scheme hobbyist. My personal tolerance for chaotic and/or offbeat tooling ecosystems is high.
- kjeetgill 4y agoHmmm, I guess I find it straight forward enough. How can I help? They've simplified it a ton lately. There's no real JRE vs JDK seperation any more. The Java Language / JVM versions are the same. Version 19 is just out and they release a version every 6 months now. Any other languages like Clojure or Kotlin will have their own language versions and might specify a range of Java versions they work with. You can think of Jakarta EE as just a version of some library that won't be relevant to you unless you use it. Like versions of react or angular or something.
- mypalmike 4y ago> there is no obvious starting point for a beginner I think maybe some of this perception comes from the days when Java EE (Enterprise Edition) was very common. I worked on Java apps for many years and was fortunate to mostly avoid projects centered on Java EE. For getting started with current Java development, you can download OpenJDK AND IntelliJ IDE. Then Google search for a tutorial on what you want to build (a command line tool is a good place to start, then maybe a web app if you're familiar with that domain). Start with just the Java language and then add Kotlin, Clojure, etc later when you are more familiar with the ecosystem - these languages add incidental complexity that you'll want to avoid as a beginner. I'd recommend Gradle for building. You'll see Maven mentioned. Avoid the tool but understand that "Maven repo" and similar terms refer to artifact repositories for downloading 3rd party libraries.
- kaba0 4y agoHell, probably intellij idea is enough - it will give you a drop down list of JDKs to choose from, and it will download it automatically/change it for a given project.
- ktosobcy 4y agoSo.. which ecosystem do you like to look at and feel pleased? virtually all of them have some sort of notion of packages and versioning
- kaba0 4y agoI don’t think it is harder than any other ecosystem of similar size, it’s just unknown to you and feel different. Jakarta EE is the old Java EE’s continuation, which is a huge standard for solving many kinds of complex business requirements (dependency injection mostly, with aspect-oriented programming). In a way it is a Spring alternative, but the truth is that Spring also uses several annotation of the standard so it more like building on top a subset of it. While it is a difficult topic, it is an ecosystem in its own right, so I don’t think it is meaningful to discuss it with Java itself — one can make a whole career as a java dev without touching it. Package management is basically either maven or gradle, but both use the same registry for the most part, so on the surface level they both are quite easy to use. I would guess you mean java’s versioning (eg. 8, 17, etc) - this couldn’t be easier, it’s just an integer that increases every 6 months. That is, for OpenJDK. This is the JVM-implementation, being both the reference and the most often used one. It has several forks that you might have heard of, but they share more than they differ. Some of these forks/vendors provide LTS-releases and this usually targets 8, 11, 17, 11+6k versions. That’s pretty much it. In the meanwhile you literally have to use a tool to generate a base repo to write anything more complex than hello world in the JS ecosystem :D
- mypalmike 4y agoWhat ecosystem is simpler?