Swift is the language that I had least issues so far:
Javascript: cjs/ejs, node/browser, npm/pnpm/yarn/bun, nvm/fnm, webpack/vite, pure JS/JSDoc/TS, and much more. Sometimes dev tools become bottlenecks, not the actual code.
Python: Lack of good type checking. Mypy doesn’t always work when combined with other libraries. Performance issue due to GIL. pip3/poetry/uv, setup.py/hatchling/uv-build, black/flake8/ruff, etc. Again, too many dev tools out there.
The issue with JS/Python dev tools is that I need to install multiple programs to do the same job depending on the project I’m working on. If a new project uses different devtools, I need to spend extra time to install and learn them.
Golang: It’s bit off from traditional C-style syntax so I was never motivated to use it. But it’s loved a lot by network and container developers.
Rust: I like the idea, but the learning curve is steep and that’s kinda intimidating. Also I think it gets too much hype than it deserves.
Zig: Still in development. It might be good for embedded programming, but I find that code gets too long in some cases like I/O. Like Rust, I think it’s getting too much hype right now. I would give it a few more years to see how it ends up in 1.0.
C/C++: Header files, macros, and lack of dependency management. For build systems though, I think CMake/Ninja are doing well.
I’m not saying Swift is perfect. It has problems like lack of support for latest release from VSCode extension, broken compiler type check, not enough support for non-Darwin systems, and lack of good toolchain bootstrapping on Linux. When we go further up to macOS/iOS programming, there is Xcode SwiftUI preview crashing all the time.
But when it comes to enjoying the programming itself, Swift is the best language to me. Not only the language design is clean, I never had issues with dev tools as well because there is no dev tools hell like JS and Python.
This is why I would like to see something like FreeBSDKit by Project5BSD more in future.
https://github.com/5BSD/FreeBSDKit