Friday, May 18, 2007

Why I Don't Program in Public Anymore

Microsoft's latest attempt to inject fear into the independent programmer brings to mind my gradual decision not to release any of my software for general use anymore. It's something I used to do. It was part of being a programmer. You learned by looking at other people's code, and in turn, you put your own stuff out there.

Back in the olden days, it was a lot less organized. Computers were rather expensive toys you built from kits or from your own designs. And yes, I designed my own luggable computer for word processing use, down to the video circuitry and the memory cards, and of course, I wrote all the software because there wasn't even an operating system for the beast.

The first software I gave away had to be the keyboard and video drivers for a friend's IMSAI kit computer. By the time I had advanced to the TRS-80, I was writing game programs for friends and even attempted to sell my own version of Life on cassette. The biggest project of that era was a word-processor I wrote in assembly code and sold via Howard Sams. The book contained the full source code, although that's another story.

I also wrote a memory test program and a synonym processor for LDOS. These were published to the world as magazine articles with source code as well. Programming out in public was a no-brainer. It was what programmers did.

After that, I went to work for Motorola and although I didn't start out in computers, the job mutated over time to a full-time programmer position. I wrote mainly in-house tools, like a system to create progress charts on HP pen plotters. My code spread through the corporation unchecked, and until Powerpoint gradually took over the business charts function, it was extensively used.

The Internet happened and I took a snippet of Perl code by someone else and turned it into a full featured Gopher server, which was posted to the public domain on Usenet. Programming in public, but it was about then that things started to change. Gopher shot itself in the foot when the owners of the original server restricted its use to non-commercial use only. Thus the WWW took over that niche and the rest is history.

Programmers were forced to think about copyrights. The GPL was launched, but was so tainted with politics that I never used it. If I had a snip of code I wanted to publish, I made sure it said Public Domain. I was a writer of fiction, and had sold many short stories. I was well aware of copyright and its uses. I LIKE copyright. But the programming world got so emeshed with IP issues that there was no real clarity any more.

I was working for Motorola. For the first time, I had to consider if I had the right to publish my code. Who owned what? A couple of times I sent the request up the management chain. "Hey, is it okay if I publish this on the web?" Even my bosses weren't really clear on the rules.

I just stopped. I wrote programs for my job. I wrote tools for my own use. I was free with examples and help for my co-workers and friends, but I wasn't comfortable programming in public anymore.

To this day, I program my own tools, but even though I don't have to worry about Motorola anymore, I have lost heart. I don't post my code out there for everyone to see. I learned by example over decades. Could the tricks and techniques I know instinctively be 'owned' by someone else? I don't know, and it's prohibitively expensive to research.

So, I'll just program my own stuff in my dark corner and when I'm done with it, there it will remain.

2 comments:

Chris said...

I am not quite sure if I understand this. Just stick the code up on a web server somewhere and write a disclaimer. The GNU license has a disclaimer built it. So anyway it is no big deal make it public.

I think in general it is always better to put yourself out there if you can. Post your code, post your pictures, post your writing. Whatever it is I think the world is a better place the more we share our creative effors.

Henry Melton said...

Of course, you're correct. I wrote this after reading several articles on the Novel/Microsoft patent agreement, and mainly wrote it to nail down why I feel the way I do. Once I express it, then I have a chance to look at and see what's logical and what isn't. The truth of the matter is that I have a strong reluctance to post my code in public, and that it didn't used to be that way at all! This blog entry was just a stab at trying to understand my own wiring.