Some people troll free software lists with remarks like:
Linux will never be able to displace MacOS/Windows since the latter are much more pretty/user-friendly. You will lose.
Such people assume that hackers write free software because they "hate Microsoft" or "hate capitalism" or have some other pet hates.
However, it should be obvious that such a large creative effort cannot be sustained if it is based on such negative emotions.1 There are a number of positive reasons why one works on free software.
The software that I like to work on is software2 that I use or want to use. This has some consequences which are worth underlining:
- Contrary to the views expressed in some articles about free software, the theme of usability (by me!) is uppermost in my mind whenever I approach any task pertaining to software.
- Since the software I work on should be usable long after I have forgotten the ideas behind its implementation, the user interface should be one that confirms to "standard" expections. This means that it should be possible to use the software without reading the code.
- When I look at the code after a long time (for example to extend it in some way) I should be able to read and understand it, which requires clean code with adequate documentation.
Giving others the "four freedoms" results in wider critical examination of these aspects. Bugs must be acknowledged and fixed --- or elevated to features! Moreover, there are parts of the task that are "obvious" to me but I would have to ask others for advice on other parts. So I gain a lot by being part of a larger community.
There are other reasons to write free software. For example, someone may pay you to do it. However, this is just deferring the same question to your employer. In most cases, your employer already has a use in mind for the software. The employer has the same concerns as I outlined above except that the job of writing the code is being out-sourced. The usability, portability and long-term maintainability are probably even bigger concerns for your employer.
"Last but not the least" (as we always wrote in our school-day essays) free software is fun! You share ideas with people from across the globe and to show them your own clever little tricks. Good code and good themes resonate with people who may not even speak the same language as you do. What could be nicer than that!