I'm looking to expand my programming skills from web apps, automation, scripting - mainly Python - to more traditional cross-platform, desktop-based (but GUI lite) apps because I progressively want to get closer to the metal (one day work with embedded systems). Nevertheless, I currently desire to create desktop tools like I've done in the browser and with automation scripts in the terminal or web servers.<p>The apps I wish to make need to interact, listen and change things outside of the browser or terminal console. I'll start with making simple programs that automate on the desktop before I make fully-fledged GUIs. Some examples in mind involve monitoring network traffic and changing some system settings, listening to and manipulating clipboard data, or interact with common hardware peripherals. I hope these examples give you an idea of my intentions. In addition, I did learn a little C++ and C yonks ago.<p>I believe Go is more suitable for desktop applications that a user interacts with, whereas Rust is better suited for programming lower level hardware behaviour/capabilities or getting closer to the kernel? So in other words, perhaps Go is like a better replacement for C++ and Rust is a better replacement for C? I acknowledge I'm providing gross simplifications here.<p>And it almost goes without saying, * I'm not asking what is the best language *. Rather, based on what has been described, <i>which language would be most strategic to learn</i> given my goals and intentions?<p>In another way what are the strengths and weaknesses of Go and Rust? When should one use the other?<p>Thank you in advance!