Hacker News new | ask | show | jobs
by serial_dev 537 days ago
It heavily depends on the language, the frameworks and the actual project.

Languages that have great and standard tooling will work great. Frameworks that rely on basic language features work great. Projects that rely on standard tooling and features work great. Things just work.

Languages that have 3 decades of legacy warts, languages with no or poorly implemented LSPs, languages where the ecosystem relies heavily on runtime language features, frameworks that rely on behind the scenes magic and conventions, projects where for ten years the whole team only ever used one IDE… yeah, it’s not where vim/helix/vsc shines, and you will fight an uphill battle.

3 comments

> Languages that have 3 decades of legacy warts

Only languages with negligible market share don't have 3 decades of legacy warts.

Go, Rust, and Swift are currently at positions 7, 14, and 20 respectively on the TIOBE index.
Can we forget about Tiobe? It once listed Visual Basic ahead of JS, it's a dumb metric.

Nonetheless, I wouldn't write either of them without a proper IDE.

The Tiobe index might not be the best, but these are certainly popular languages and they don’t have decades, plural, of language warts.

Languages like Rust, Dart, Go, Kotlin, and Swift emerged when standard tooling was already expected, such as LSP, standard formatting and linting.

I don’t have experience with all of these languages, but I know that Rust and Darr have great tooling maintained by the same people who maintain the language and I can just pick any code editor with LSP support and I can expect the experience to be great.

Yeah, cumulatively less than 5%.
> the frameworks and the actual project.

This.

e.g. Android studio has a great preview feature for composable which makes it a joy to build them. It gives you an option to run just see the live effects of updating code for that composable in (a) IDE (b) Emulator (c) Device.

> joy to build them

Requiring building app before having a preview and then waiting between 10 seconds to a minute on every change is what you call joy?

> Languages that have great and standard tooling will work great. Frameworks that rely on basic language features work great. Projects that rely on standard tooling and features work great. Things just work.

The only language that comes to mind fitting this description is Go ?

Rust also has great tooling. Clippy, Rust analyzer (the LSP). Developing Rust in NeoVim is just as fun as Go.

Other languages that do ok are OCaml, Elixir/Gleam, Typescript. Go and Rust just have what I consider a "cut above" the others when it comes to both tooling and standar language features.

Dart’s tooling is also good and basically the whole ecosystem use these tools provided by default.