For over a year now, I’ve been working at the same job. It’s a pretty good job. I make enough to pay the bills and still have spending money, I’m doing something I generally enjoy, and I don’t have much of a commute. My job title is ‘Information Technology Developer.’ I do a lot of different things, but my core duties revolve around writing software. As someone who deals daily with writing, implementing, and modifying software, I have some opinions on the subject.

free software

The company where I work is a “Microsoft shop,” and uses proprietary software almost exclusively. My boss’ take on our reasons for this is that we cannot afford to implement a system based on free software, because administrating and supporting such a system is more expensive in human resources. I have slowly come to hold the opposite opinion: not only do proprietary information systems have a higher monetary cost (price tag,) they also consume more human resources.

Most well-designed software functions essentially as a black box, providing simple services such as text processing, data munging, or network operations. This software is useful because it is predictable and can be replaced with a more efficient system seamlessly. That is, the old interface continues to work, although it may have been extended. To some extent, proprietary software is occasionally designed this way, but in proprietary software, additions may be made, but core componants may not be replaced.

In giving thought to the question of software freedom, I have concluded that the current, popular method of developing software – that is, the idea of a corporation which exists solely to produce software – is only beneficial to the software company. New methods, already existing, need to become the norm for the sake of all users.

programming languages

I’ve picked up a few languages over the years, though I haven’t managed to grok any of them in fullness. I program mostly in Perl, though Ruby is quickly becoming my new favorite.

Written on March 14, 2002