Hey everyone, I'm at a bit of a crossroads in my programming journey and could use some advice. Right now, I'm working as a software engineer focused on PLC software. It's not exactly the high-level programming I'm aiming for, and while I enjoy my job, I'm really eager to dive deeper into Object-Oriented Programming (OOP). I've been picking up different languages like C, C++, and more recently, C#. I've found C# to be a blast, and I even have some project ideas I'd like to explore in my spare time. However, I'd also love to build a work-related app in C# on the side. The only hitch is the licensing costs for Microsoft software if I want to commercialize it, which I can't justify at my job at the moment.
I'm also considering switching from Windows to Linux due to frustrations with Windows 11, and I'm curious about how C# development really holds up under Linux. If I switch, I want to make sure I'm using a language that allows for modern, robust cross-platform apps with great GUI frameworks.
I've been hearing a lot about Rust from a friend, who raves about how enjoyable it is to work with, but I have no experience with it. Before I make any big decisions, I want to know if Rust is a smart choice for desktop app development. I'd love your thoughts on this as well as any resources or GUI frameworks you might recommend for a beginner. Thanks in advance!
2 Answers
When you say 'app,' are you leaning more towards desktop or mobile? C# is great for Windows desktop apps, and Visual Studio Community should be enough for personal projects. If you're curious about mobile development, Kotlin could be worth looking into. However, I wouldn't recommend Rust for GUI development right now—it seems more suited for backend stuff, especially if you’re considering a frontend with JavaScript. Also, why not think about making a web app instead? That could open up a lot of flexibility in language choice and deployment options, especially for internal tools!
Yeah, Rust with Tauri for the backend and a frontend with React is a great combo, especially for a beginner willing to learn. It does have a learning curve, but it’s definitely manageable. On the Kotlin front, it’s also good for cross-platform development, particularly for Android apps, and could be worth a look if you decide to branch out!
For getting started with Rust, I definitely recommend checking out the official Rust book and doing the Rustlings exercises; they’re super helpful! While Rust doesn’t have a ton of established GUI options, there are some interesting projects out there, like the COSMIC environment. It’s still a developing area, so if GUIs are your main focus, you might need to consider how comfortable you are diving into that scene.

Thanks for the clarification! For now, I'm really focused on creating a desktop app. I'm imagining that once I get something solid, I could definitely see it transitioning to mobile eventually. I read that Rust could pair with Tauri and React for a web-based front end; does that sound feasible for someone just starting out? Also, I haven't explored Kotlin much—can I really use it for cross-platform apps?