My programming biases
A critic is a bundle of biases held loosely together by a sense of
Unix (and computing in general) is littered with religious wars over
languages, editors, methodologies, licences and paradigms. Some are
worthwhile debates, others are meaningless flamewars.
Unix gives the user and the developer a myriad of choices when it comes
to solving computer problems, and so people have a wide range of
experiences, preferences and biases.
Here are mine up front so that you know where I am coming from - you can
debate, sue or flame me after the talk!
- I have been programming Unix systems for about 8 years. I have also
programmed CPM, MS-DOS, MS Windows and Macintosh systems.
- The vast majority of my programming work is contract and in-house.
Contributions that I have made to free software projects have been in
the form of bug fixes, patches and documentation.
- Most of my programming work is in scientific data processing,
data visualisation, embedded/real-time scientific instrumentation
and CGI scripting.
- 90% of my programming is in Python and C. The rest is Guile, C++,
Java, Perl and Tcl - in decreasing order of preference.
I have also worked with elisp, Actor, AWK, Pascal, Visual BASIC, Forth
and 80x86 assembler (and lived to tell the tale).
- There is no such thing as the perfect editor, language, tool or
Computers, in general, suck. My aim is to use the tools and systems that
suck the least.
- I use Linux, FreeBSD, SunOS and (to a lesser degree) Irix.
Linux is not the definitive operating system, and the trend towards
Linux-only software really annoys me, as it forgets the grand legacy of
portable Unix code that allowed Linux to be developed in the first place.
- EMACS is my preferred editor. My favourite vi command is :wq
- I am not a big fan of integrated development environments or "Visual"
development tools that hinder, or prevent, me from nitty-gritty access
to my code or my preferred tools. Having said that, I have always had
a soft spot for quick code hacks with Visual BASIC.
- I don't have a problem with the Qt library or the Qt licence!