While the prize for Worst Tech Used in a Professional Setting might go to InterSystems Caché ® (syntax errors will bork your entire runtime, with no undo). And it's all downhill from there.
Nodejs (javascript + libuv, aka control flow obfuscation framework) is a strong contender. I've never worked so hard to make so little code reliable, robust, deployable. And there is no Right Way to use nodejs. Everything changing all the time, every day is a do-over.
As for Swing. Remove (or ignore) it's goofy MVC and it's just like Qt. State of the art UIMS for desktop when they both came out.
I wish JavaScript were statically typed, but I'm not convinced about switching to TypeScript yet. I can see other ways Node.js could be frustrating.
NodeJS leverages the advanced V8 JIT and async operation in its crudest form. It's good for certain classes of tasks (a lot of I/O with simple logic around it), but not as great for the more general case.
OTOH Typescript can alleviate many of the problems of JS proper, the execution model is still a bit uncomfortable. I'd rather take Erlang /Elixir for the typical Node case.
> the weakly-typed/dynamic nature of JavaScript itself which doesn't scale well to larger server-side codebases
has less to do with it.
Do you really feel that your strongly-typed Java job would be so great if all of the other poor practices of your previous job were in place?
I have to say that, just looking at the language itself, C# is probably my favorite, but the surrounding stack including Windows makes me prefer Java on Linux to it, especially Java 8 because of its support for lambdas.
Although, it's also been my experience that the other factors mentioned have more of a role than the attributes of the languages involved themselves.
Have your ever tried to maintain a large js project? It gets harder the bigger the codebase gets.
Read about AXD 301 development.
There's absolutely great test and CI tooling for JavaScript. The fact that you and your team didn't spend enough time to develop an expertise with them isn't the languages fault.
I'm more inclined to think that Palantir's problems are inherent to the enterprise revenue equation.
"Features and code quality that aren't contractually mandated" = profit
The more things you can put in that category, the more profit...
The code at my current job is much better written, is more thoroughly tested, and is more pleasant to continue development on. The codebase at my previous job was a rat's nest, caused primarily by lower-skilled developers, no time allocated to technical debt or refactoring, a breakneck pace of product release, lack of a good automated testing suite, lack of good continuous integration and presubmits, and the weakly-typed/dynamic nature of JavaScript itself which doesn't scale well to larger server-side codebases.
So long as a given language/platform isn't deprecated (and Java definitely isn't), I'd rather work on a solid codebase in it than a weak codebase in a more alluring, recent language.