I'm looking to create a unique operating system with a custom desktop environment based on a modified Linux kernel. One key feature is that it won't follow the standard file system hierarchy (not FHS-compliant), which adds some challenges. I'm really struggling to pick the right programming language for this project.
I've considered a few options:
- **C** is appealing, but I'm tired of dealing with Makefiles and Autotools, and I'm not a fan of C's GUI libraries.
- **C++** used to be enjoyable, but now I'm over it, and the build system seems lacking. Also, I've lost trust in Qt.
- **Rust** could be interesting, but I'm not fond of the community or the syntax.
- **C#** feels too tied to Microsoft for my comfort.
- **Java** seems viable with its tooling and infrastructure, but are there any drawbacks for my project?
- **Kotlin** looks promising, yet I'm unsure if its language ecosystem is mature enough to replace Java, given its reliance on Java.
I have experience with C, C++, and Python, and I'm open to suggestions!
4 Answers
If it were me, I'd reach out to dev forums for established desktop environments like KDE or Gnome to gather insights. If performance isn't a huge concern, you could go with something easier like Python since you're familiar, or **Go** if you want something new but still care about some performance. If solid performance is your goal, I’d lean towards Rust, while keeping an eye out for the best parts of their community.
Sounds like a cool project! If you want to explore newer languages, consider **Zig** for its great C compatibility or **Go**, which is excellent for CLI tools and backend services. **Dart/Flutter** could also be worth a look if you're leaning towards desktop UIs.
Just a heads-up about Kotlin: it’s been around for about a decade and is a solid choice, especially with backing from Google for Android. JetBrains is a well-established company, so I think it’s here to stay. Having switched from Java to Kotlin, I found it refreshing and many Java developers feel the same.
I'd recommend checking out options like **Odin** or **Zig**! They are both low-level and performant, which would suit your DE well. While Java has all the tools you might need, I worry about performance long-term. Kotlin might help in that area, but I don’t have experience with it. It could be better at this point.
Related Questions
How To: Running Codex CLI on Windows with Azure OpenAI
Set Wordpress Featured Image Using Javascript
How To Fix PHP Random Being The Same
Why no WebP Support with Wordpress
Replace Wordpress Cron With Linux Cron
Customize Yoast Canonical URL Programmatically