Alternatives to ArcGIS Desktop
If you've ever worked with geographic data on the desktop, chances are that you used Esri's ArcGIS application in at least part of your work. ArcGIS is an incredibly powerful tool, but unfortunately, it's a proprietary product that is designed for Windows. Linux and Mac users are out of luck unless they want to run ArcGIS in a virtualized environment, and even then, they're still using a closed source product that can be very expensive to license. While their flagship product is closed source, I would be remiss not to note that Esri has made numerous contributions to the open source community.
GRASS is definitely the winner when it comes to data analysis and geo-processing, and its tools can be used from external applications, making it an extremely extensible tool which is worth learning even if you don't take it on as your primary desktop GIS system. GRASS is written primarily in C/C++, although many of its modules are written in Python or other languages.