JVM and Android
dalvikART are still alive and well because if we could use clown circus Javascript to run WWW for 30 years, we sure as hell can use “My Big Fat Gabrage Collector: The Boilerplate Saga” to run all of our applications and backend infrastructure.I love Java and it remains my programming language of choice
You poor fool
Honestly, why? The ecosystem is rich and developed. Libraries for everything. Great documentation. Fantastic tooling. What am I missing out on?
What I find incredible is just how slow-moving and cruft-filled it has become.
For example, DotNet has had string interpolation since C# 6, back in 2015. That’s a decade, already.
Java recently yoinked their implementation because they just couldn’t make it work.
That’s damning.
Right now - ignoring the wider ecosystem and looking purely at the core language - I am seeing the very latest LTR version of Java as being on-par with C# pre-2010 in terms of continual material improvements and ease of use.
Yikes.
I still use Java, but… yikes.
What I like about java is it’s consistency. It’s not a great language but it’s a solid tool. It’s no trying to do anything brave, just steadily moves in the right direction.
Python is the exact opposite. There are at least 3 competing tools for everything, multiple ways to install packages, python 3 is not backwards compatible. Just setting up the environment is needlessly painful. It’s not a bad language but a terrible tool.
Saying that about python, has one package index and a unified way of specifying dependencies, compared to Java, which has both Maven and Gradle, is quite funny imo.
Also in my experience, setting up the average python project with numpy, requests and pytest is way easier then setting up a java project with JUnit, etc…
Yeah, not trying to dunk on other commenter, but these don’t sound like complaints I experience with Python at all. Setting up the environment is a breeze with
venv
, package installation couldn’t be easier with basicpip
, and I really like having a diverse ecosystem of multiple (often high quality) approaches to solving similar problems.Have you heard about
uv
? I’m loving it.Yeah I’ve been hearing about it and meaning to dive in. Been learning some infra stuff lately though.
Any particularly strong selling points you want to convey?
It uses the same philosophy of cargo.toml files in Rust projects, where you have all dependencies and versions listed. It’s quite fast, and you can use it to install python cli tools without change your base installation. It’s the best of venv and pipx and more, IMHO.
I wrote Java and jvm languages for a long time. Mostly a good experience. Maven and later gradle, groovy and spring boot really made it more fun to use. Spock is still my favorite testing framework. These days it’s all python and node for me though- but using those languages and their popular libs really shows how much better dependency management and testing was in the Java ecosystem even 10 years ago.
Maven and later gradle, groovy and spring boot really made it more fun to use.
There is no better example of “to each their own.”
I started programming Java professionally when it was still called “Oak.” I was working at a University doing distance learning stuff and applets were incredible. They were also the thin end of the wedge, although I didn’t know it at the time.
I watched over the years as a nice, concise, core library of a dozen packages swelled like a bloated corpse. The last core library book I contributed to was larger than War & Peace, a veritable tome just to describe the standard library.
And then tooling like Maven and Gradle came along, and frameworks like Spring Boot became unavoidable, and I found more of my time was spent not programming but trying to detangle some horrible maven build config. In XML. That’s about the time I jumped ship.
My philosophy is: tooling is fine, but if it takes over the project so that it’s impossible to build the project without it it’s not tooling anymore, it’s a framework - a platform - that you’re locked into. You get to spend your time debugging issues with the framework, over which you have no real control, where your best hope is work-arounds and crossing your fingers that upstream fixes their shit before your work-around becomes permanently engraved into the build.
It’s funny to me that what I saw as bloated distraction, a hateful corruption of simplicity onto layers of obfuscation that themselves became platforms needing maintenance and debugging, would have been a pleasant and even fun addition to the ecosystem.
Java is a powerhouse of the
cellglobal.