In modern computing, you are likely to be using GPL or MIT licensed programs, especially as a developer. While huge companies are propagating digital rights management, software patents, and are inforcing copyrights, free software represents the spirit of the early days in computing: sharing information free of charge and royalties.
Free Software gives everyone the right to look at program source code, to use and modify it, for as long as the “rights” are retained. It is an extremely intimidating concept, especially for developers wanting to add content to already available programs, without the need to request features and go through a long line of support lines. This enables hundreds of developers to work together, share and modify each others ideas, and create applications for all major operating systems.
Sounds like a coders’ dream come true. There is just one major drawback: ease of use. Not the ease of use for the end user, but of the development tools.
On Windows, Microsoft’s own Visual Studio is one of the major development platforms, or integrated development environments (IDE). Nowadays, C# or Visual Basic are available for rapid application development (RAD) with the .NET Framework. This is where Visual Studio truly lives up to the marketing fuzz: hardly any development environment is so comfortable to use and yet powerful in features. Dead easy visual designers for data sets and dialogs along with templates. Comfortable text editing, indenting and formatting inclusive. Even Stop-Edit-Run debugging in the case of Visual Basic, without the need to recompile the whole project. A invaluable time saver for the average developer.
The popular development environment for software created with “free” tools which are portable mostly consists of a whole bunch of tools: vi/vim/emacs for editing, gcc for compiling, gdb for debugging. This so called toolchain is then complemented by a host of libraries, such as zlib, and a toolkit such as GTK+, wxWidgets, etc. Each one of them is highly configurable and highly flexible, cross-compiling and other features not even mentioned. But they are incredibly difficult to get started with! vi probably has more keyboard commands and shortcuts than the average human brain can store, gcc compilers ship without any infrastructure to actually create a program (libraries, headers, examples), and gdb is very difficult to set up and use.
This is not to speak of the wealth of libraries and dependencies one needs to create something meaningful, all of which have to be gathered seperately. Different versions of libraries may not work with different versions of executables, patching headers to make specific versions work with new compilers or recent code bases is common practice.
In my humble opinion, a lot of users would love to support the Free Software movement. Everyone involved with this very project here at vware would love to give back to the community. If it was not for all the time you lose getting into it, where you could do something meaningful (like actually developing an application).