I worked with a guy who insisted on using Neovim to work on a large Java monolith project. He was surprisingly unproductive. Took days to deliver features (code) that folks using IDE (Intellij IDEA) could crank out in a matter of hours.
The danger of not using an IDE is that you will fall behind in productivity and get fired because you are not performing at a level expected from your seniority.
Recently I reminisced about Blender foundations first(?) effort, Tears of Steel, with the script like "Look, Celia, we have to follow our passions; you have your robotics and I just want to be awesome in space!" - "Why don’t you just admit that you’re freaked out by my robot hand?!"
I don't know what they've been up to after Tears of Steel but the primary mission of the older Blender Foundation movies was to further the tech, e.g. motion tracking.
If you write Java just like you would write Go - meaning, no reflection shenanigans, use Jigsaw to cut out unneeded JVM stuff, or use GraalVM and compile natively (which you will be able to, because you did not use any of JVM reflection magic), Java will absolutely be competitive.
In the end it all boils down to higher-level logic compiling down to machine code that has to run. A language's culture and philosophical choices are tied to the language itself as much as syntax or compiler, so maybe the largest difference between languages like Java and Go is really the whole developer attitude and aesthetic choices.
It will work - you can see it well with a Chain of Thought (CoT) model: it will keep asking itself: "am I hallucinating? let's double check" and then will self-reject thoughts if it can't find a proper grounding. In fact, this is the best part of CoT model, that you can see where it goes off rails and can add a message to fix it in the prompt.
For example, there is this common challenge, "count how many r letters in strawberry", and you can see the issue is not counting, but that model does not know if "rr" should be treated as single "r" because it is not sure if you are counting r "letters" or r "sounds" and when you sound out the word, there is a single "r" sound where it is spelled with double "r". so if you tell the model, double "r" stands for 2 letters, it will get it right.
Yeah that's ugly, but it doesn't really matter. What is worse is inconsistencies when declaring class vars and constants... But you learn to live with it.
you think Tesla customer support wouldn't be able to solve it, and instead let the driver state "For my own safety, and that of other drivers, I have stopped driving the vehicle." ?
The danger of not using an IDE is that you will fall behind in productivity and get fired because you are not performing at a level expected from your seniority.