Posts on the subject of programming
In this post, I want to start to think a little about ethics, but specifically from the point of view of software. I started looking around at this casually, I did some searching and chatted with friends who also work in IT. I found that the idea of ethics and software tends to be seen as a matter of software licensing and software piracy. I think that this misses what I’m looking for, that the goal of my search lies elsewhere.
As a programmer, I have ethical obligations. These are mostly to users of my programs. I have to do my best to ensure that the people who use my programs can trust them. This means that the programs don’t spy on the user in anyway, after all my programs are guests on your computer system. That means that they mustn’t abuse your trust. In fact, it could be said that the program acts as an ambassador for the programmer (or software company), if it’s crooked then what conclusions might be implied about the nature of the software provider?
But what about the user? This is an equally important area and is part of what I want to begin mulling over. This really starts with the position of being an ethical customer, so firstly we have to consider the company we’re dealing with. If a software company is noted for being specifically unethical or abusive of it’s power or position, we have to ask ourselves whether we want to do business with this company. Do we really want to support them? After all, the money we hand to the company helps to reinforce their profits and position, thus potentially supporting their unethical actions. In light of the recent revelations from Edward Snowden regarding government snooping and the complicity of some large software companies, this question is very relevant.
This is probably even more alarming when applied to cloud services. After all, we have little control over the practices behind the scenes at the service provider. We still have to ask the question of how easy it is to migrate away. If the only copy of your data is with a cloud service provider then are you a customer or a hostage? Given that you may not be able to guarantee the security or privacy of your data, how much knowledge and control are you willing to share with them? That’s a very pertinent question if the service or data is business critical.
However, there is a degree of responsibility that lies with the user too. When saving data, we have to consider the format used. Should we force other people to use formats for data that might lock them into a given piece of software? For example, a proprietary word processor or database with its own file format. If somebody wants to interact with us, they are forced to buy a given piece of software, but what ethical or moral right do we have to dictate that?
There is another piece to this, I have pointed out in the past that all notions of compassion and ethics have to begin with the way you treat yourself. After all, if you don’t treat yourself well, how can you then extend compassion to your treatment of others? Ethics and compassion have to begin at home.
This seems to mandate that we only use software we can be more confident of trusting, from ethical sources. I am convinced that Free Software such as GNU/Linux is the way forward in this regard. It also means that we apply the question of vendor (or format) lock in to our own situation. Do we want to be locked into this software? Who holds our data? I feel that these are questions that we can increasingly not afford to ignore.
For some time now, I’ve been a user of Ubuntu GNU/Linux. Truth be told, I’ve been using Free Software for a number of years now in various roles. This year, Free Software has spent the longest time on my desktop PC. GNU/Linux has been my Operating System of choice for over 12 months and counting.
At present I’m watching the to and fro in the Ubuntu world with various issues and in response have installed Debian 7.0 (Wheezy) on my laptop. The fact that I can do this is wonderful, it’s certainly not something I could just turn around and do with a proprietary system. I am, so far, liking Gnome 3.4 and have only had to resort to proprietary software once, for a WiFi network driver.
I’ve installed Debian in Virtualbox virtual machines before now, I run a small virtual test network of such machines. It’s like having a “software dojo”, somewhere you can go to train and experiment. Even better, you can do it with the full unrestricted programs, this is something I would never be able to do in such a way without the Free Software tools I use.
So I’m trying to push towards a more fully Free Software environment. The change finally started when I reread “Free as in Freedom”. It’s a biography of Richard M.Stallman and it made me much more interested in the question of ethics and software use. I’d like to explore the ethics of software use a little more in future and bring a Taoist / Buddhist flavour to my explorations. It also made me wonder how far I could go while avoiding using non-free software. So far, I have only 1 small non-free driver, though how I will work around this is a good question.
I am also taking the chance to begin to reimplement my Sitquietly GNU/Linux meditation software in pure C code. I have various reasons for wanting to learn C and this seems the best way. In any event, I have a few changes I’ve wanted to make to the program and this is my chance. Now I just need to think about source hosting!