Open Source: Incredible Apps For Every OS
Productivity and Development
The one true successor to OpenOffice (which is still in existence, but was largely abandoned by its primary developers and users when Sun was acquired by Oracle), LibreOffice is the most powerful of the free office suites available.
Or, as their website puts it:
“LibreOffice is the power-packed free, libre and open source personal productivity suite for Windows, Macintosh and GNU/Linux, that gives you six feature-rich applications for all your document production and data processing needs: Writer, Calc, Impress, Draw, Math and Base. Support and documentation is free from our large, dedicated community of users, contributors and developers.”
In addition, Libre's compatibility with Microsoft Office formats is very good (and ever-improving).
In the Windows development world, Microsoft’s Visual Studio has always been the proverbial 800-lb gorilla. But, what if you’re just learning, don’t have $3,800 dollars, or want to write software that can run on all operating systems (including Windows)? Luckily, there are some full-featured free alternatives.
Spun out of an IBM project, the Eclipse platform is an incredibly powerful IDE. While it was primarily developed for Java, its modularity and plug-in framework has now seen the addition of support for C, C++, Ruby, Perl, Python, and many other languages.
Support for gcc (on Posix platforms and on Windows via Cygwin or MinGW) plus other cross-platform toolchains makes this a desirable environment for developers who want to target their output for multiple operating systems.
“MonoDevelop is an IDE primarily designed for C# and other .NET languages. MonoDevelop enables developers to quickly write desktop and ASP.NET Web applications on Linux, Windows and Mac OSX. MonoDevelop makes it easy for developers to port .NET applications created with Visual Studio to Linux and to maintain a single code base for all platforms.”
If you want to develop cross-platform apps in a CLR-compatible environment using C# and other .NET style languages, then this is the obvious choice for the development environment. .exe files created with this will run on Windows, Mac, and Linux (because the exe is really ML code targetting the CLR, dependent on mono or .Net, and not native machine code) as long as the supporting libraries are installed.
The Mono platform hasn’t exactly been welcomed by all developers due to patent concerns and Microsoft’s recent maneuvers in that arena. But, it is finding traction in several areas such as game development and game scripting (Sims 3 and Second Life). Of course MonoDevelop also supports writing for Monogame, which is an open source implementation of the Microsoft XNA framework that runs on Windows, Mac, iOS, Android, and Linux.