Saturday, April 13, 2013

Making a Living in a Microsoft World, Enriched by GNU/Linux

by Guest Writer +Chris Ahlstrom

I enjoy GNU/Linux and prefer the freedom it offers.  And yet I work within a "Microsoft" world.  I am not alone.

My computing started with Digital Equipment Corporation: a PDP-8 in high school, PDP-11 in college and graduate school, a semester on UNIX in the early 1980's.  But my first real job involved writing code for DOS.  I remember fondly the Microsoft FORTRAN manual, which reminded me of DEC manuals. For the next few years, it was all DOS for me, with a brief stint on SunOS. (Credit Image Right:

About that time, along came Windows 3, a usable version of Windows.

Compared to SunOS, it was primitive: no networking, no taking screenshots of other people's workstations, no sending the sound of a toilet flushing to their terminal, the way you could on SunOS.  But Windows had apps.  Borland put out a nice compiler for it, and I got to be decent at writing apps for DOS/Windows.

Around 1995, my appreciation of Microsoft software was at its peak.  Internet Explorer seemed decent enough, why mess with Netscape?  Microsoft Office was stable and usable, not the rococo bloatware it was to become.  Windows NT 4 was usable.  Eventually I bought Visual C++, and it was decent.  I had a vague notion of Microsoft being the 800-pound gorilla of computing.  I'd heard of Linux, in some news reports about "hackers".

Then somebody lent me a Red Hat Linux 5 disk.

I couldn't figure out how to enable graphics with it.  I toyed with the command-line, but dropped Linux for a bit.  Eventually found a book with a couple Linux disks in it, and got Red Hat 6 working with X Windows.  It was FUN!  After a couple months of retreating to Windows NT/2000 to figure stuff out, I starting using Linux full time on my home machine.  After a year of non-use, I wiped Windows from it.

I continued to write code for a project that is Windows-based.  But I've transitioned to using GNU/Linux for all of my computing work except for compiling and testing the code on Windows, modifying Word documents of complex format, and accessing training that "Requires Internet Explorer".  I spend most of my day in Linux.

At the same time, hanging around other Linux lovers, I came to know more of Microsoft's tactics that helped make it so dominant on the consumer desktop.  Some of these tactics disgusted me, and I voiced my opinions.  The anti-Linux people climbed all over me about it; even some pro-Linux people were admonishing.  How could I write code for "Windows" while decrying "evil" Microsoft and promoting Linux?  Why didn't I switch to a "Linux" job?  Why did I buy "Windows" laptops (thus supporting Microsoft) and slick them to install Linux, when I could be buying more expensive laptops from "Linux" vendors?

How could I be such a hypocrite!?

Obviously, some of the reaction was trolling.  And the trolling would come no matter what -- if you never touch anything but Linux, you're a sack-cloth wearing zealot and obviously a crank, but if you use both systems, you're a hypocrite.  It's all black with trolls.

But it's a grey world, really, and I owe some explanation of why I still deal with Windows, even though I don't like Microsoft as a company.  Why do I work at a "Windows" job while advocating Linux and Free software?

Well, the fundamental reason is that it is not, to me, a "Windows" job.  Windows is merely the target platform, and just one of the tools I use.  The code we write is mostly stock C++, and all along we've kept much of it cross-platform.  Part of our product was ported to Linux.  To me, my job is basically a "C++" job.

The first thing I do when given a work laptop is slick it and install Linux.  The customer has been very indulgent about it, and the infrastructure, if not supportive of Linux, does understand it and make allowances for it.  For example, Linux is exempt from the anti-virus requirement.  When I do need Windows, I fire up a virtual machine. The bottom line is that I get to spend most of my time happily using Linux-based desktops and tools.

The group of people I work with are good people, and it has always been pleasant working with them over the years.  That's not something to toss away simply because one doesn't like a particular tool or platform, or the company that created it.  I've got tenure, a good reputation, good work to do, and friends.

Lastly, well, I'm getting pretty long in the tooth by industry standards.  Jobs are difficult to come by.  In my location, Linux jobs are increasing, but mostly in areas like networking or information assurance, where I am not sufficiently competent.

Thus, my place is as a Linux-loving programmer enduring a Windows-permeated environment.

I can appreciate someone who casts aside all other considerations in their quest for freedom from interference.  We owe a debt to people like that.  But not everyone needs to live up to that kind of standard.  The differences in the nature of Linux and Windows software are instructive and eye-opening.  I can use my experience with Windows to describe why I believe Linux is mostly just better than Windows.

Microsoft software is tinged by the behavior of its maker and its fans.  Otherwise, there would be no impulse to question why someone would use software from multiple sources.

-- Chris Ahlstrom

Enhanced by Zemanta


  1. Thank you for this post, it helps a lot to put some things in perspective, to those of us that face the same question.

  2. Very similar to my work environment. Windows is what most of my company's users see, but little do they know that I'm helping to integrate it and Linux for platform coexistence. Gotta make do with what we've got, after all; a gradual but successful transition is better than an abrupt and unsuccessful one.

  3. I too find myself clearing up after Windows problems for a living. I hold on to the hope that one day I'll land a Linux job & get to do something constructive and fulfilling...