Hacker News new | ask | show | jobs
by skinowski 1033 days ago
This is one of the things that bother me about Java; IDE dependency.
5 comments

IDE productivity, and it started with Smalltalk and Lisp Machines, was adopted by C++, Visual Basic and Delphi, among several 4GLs, several years before Java was invented.

Everyone is free to use Java in vi with make, if they feel happy doing so.

In fact, there were hardly any Java IDEs when the language was released in 1996, which were quickly provided by Smalltalk, Delphi and C++ vendors.

Java is somewhat unique in how annoying the typical project is to work on without an IDE.
All languages are annoying to use without IDEs, unless we are talking about toy implementations.

I became an XEmacs user in 1995, because everything else in UNIX just sucked in comparison with PC, Mac OS and Amiga IDEs of the time.

I've worked on plenty of projects where I can navigate around in a pretty dumb text editor and run "make" and things mostly work. In Java land most things are several folders deep and things are injected in from places I don't understand without tooling to show me what is going on. I mean, have you tried using jdb? It basically exists as an advertisement for an integrated debugger.
That is what many call gdb as well, so it isn't far off.

As for messy code navigation, I have similar experiences in large C codebases, so maybe C is also unusable without IDEs.

Yeah, no.
It's not so much that you can't do Java without an IDE—Java is verbose in part because it doesn't assume that you have an IDE to give you context—it's that IntelliJ is such a good IDE that it's hard to go back to weaker tooling once you've become comfortable with it.

All my co-workers use VS Code for TypeScript, but I feel crippled when I can't use WebStorm. Not because I can't program without it, but because I'm missing a powerful force multiplier.

I used to think that WebStorm was terrible for refactoring; but somehow it's still very far ahead of other editors like vscode, and vscode itself is very far ahead of almost everything else too.
WebStorm is worse than IntelliJ Java, but that's because TypeScript is much harder to statically analyze. There are fewer safe refactorings in a language that has so much flexibility.
Thats because Java IDE's are ridiculously powerful. When I work in vscode and Python, I am always like: This is so much easier when I am using Java and Intellij.

It is not mere IDE Dependency. It is IDE Supremacy. Java is the leader of the IDE master race - the other PL IDE's need to squint to see how far ahead Java IDE's are.

This is a fair point.

I've seen many frameworks shared in hackernews. But rarely do I see anyone commenting on their IDE's capability to be able to use that framework for go-lang, rust, c, c++, etc.

For example, Rust tokio 1.0:

https://news.ycombinator.com/item?id=25520353

I don't see anyone mentioning an IDE there.

Because they tend to be on the stone age of tooling.

In what concerns C++, have a look at VCL, Firemonkey, Qt, Unreal, Godot, DirectX, Metal,...

All Apple frameworks for Objective-C and Swift.

> It is not mere IDE Dependency. It is IDE Supremacy.

Just like how our current civilization is dependent on industrialized agriculture and distribution systems.

We cannot imagine how it would be possible to live without those functions. In a way, yes, it is "supremacy", but only if you have access.

While true, Smalltalk, Common Lisp and .NET are also part of the party.
No it is straightforward to setup a Maven project manually and use Vim if that's your preference.
But then they complain they had to manually type an import statement ... before going back to their opinionating on how bad IDEs are.

I find the whole notion of software engineers rejecting software applications being useful as a concept while it being the primary focus of their own profession quite fascinating.

If a developer does not want to try this framework because an IDE does not yet support a particular version of java, then the situation has gone beyond an IDE being just useful.

Personally I use various IDEs, light weight IDE/Editors and even vi/vim depending on the language & situation.

Think of it this way:

If I asked my team to develop a project/POC with this framework and they came back to me saying that they have to wait for (or prefer to wait for, or whatever) jet brains to add java 21 support to do this, I would not be very happy.

JDK21 hasn't even hit general availability yet according to its own schedule [0]. It seems a little impatient to get upset that tooling isn't 100% there before it's even released. Naturally tool vendors aren't going to release their official support until they can test against the final version. This indeed is part of the maturity people do like about the Java ecosystem.

[0] https://openjdk.org/projects/jdk/21/

So you're saying that you are unhappy that Jetbrains doesn't officially support JDK21 yet? Cool story bro. It's a tool preference. Same deal with any other language. Nothing is preventing your developers writing code for JDK21 today, even with the Jetbrains IDE. You can write and compile JDK21 projects and ignore any related highlighted syntax/semantic errors.
Good job on distorting my comments. Hopefully the developer who made the original comment will read your recommendations and will decide to give this framework a try.
I'm saying your comments basically boiled down to that. You are unhappy that developers might prefer a tool that doesn't officially support newer features of a language, even though it doesn't really prevent them developing with the new features using the same or different IDE or a text editor or whatever. Same deal with C# or C++ and every other language supported by IDE's, hence C.S.B. This is an issue with programming in general, not Java specific.
There are some weirdly hair-shirt beliefs about development practices in this industry.
If a developer says "The blocker for me is IntelliJ supporting Java 21", clearly there's an IDE dependency. Powerful enough for a developer not to adopt a new framework.
It's entirely possible to write Java without an IDE. I've done it, and one of my colleagues has been using VSCode quite happily (we've bullied him into stopping because it doesn't have a formatter and he keeps checking in wonky code - but that's another story).

But writing any language is much more productive with a good IDE. For me, the added value in using Java 21 now rather than in a few months is not enough to outweigh giving up the use of an IDE.

> keeps checking in wonky code

Time to add a format check to pre-merge CI.

Java 21 is expected to be released in two months....

Being a bit entitled regarding support of preview features.

If said developer is savy enough to use a preview SDK, they should be able to cope with the downsides of lacking all the nice support.