Crystal Ball Gazing

It used to be that there was a fundamental difference between Macintosh computers and PCs. I could give you the list of items but then if you are reading this, you probably already know what I’m talking about. I make no bones about being a fan of the Macintosh. I have also used various versions of Windows for almost thirty years. Not to mention all of the other operating systems along the way. I feel particularly qualified to say, the operating system wars are over.

Who won? We all did. Why is there still more than one operating system? Why are there more than one kind of car? People have different preferences. Most often it boils down to what they are familiar with. In my case, I am equally familiar with Windows, macOS, and Linux so it boils down to taste and habit. I think that the continued existence of multiple operating systems is essential to the continued evolution and improvement of all operating systems.

What is in the future of operating systems? That is impossible to say with any authority. It all depends on the imagination of the developers that write those systems. I do think I can identify some trends though.

Operating systems will evolve so that they fade into the background of the workflow. Take for instance the move toward so called cloud computing. Someone I work with once quipped “Cloud computing is just doing your work with someone else’s computer.” The point that he was missing was that you are doing your work without having to worry about what computer you were using. If you needed to access data on a central server, it felt the same to you as accessing data on your local machine. If you needed to enlist a bunch of processor cores to solve a problem with lots of independent data, the cloud can arrange for the resources without you having to worry about any of the details except paying the bill.

Opera recently announced an experimental browser called Neon that uses a paradigm of a desktop in the browser. Favorite URLs are represented by icons on the “browser-top” and different open tabs can be viewed in split screen mode or collapsed to icons along the side of the screen. These are interesting variations on the operational scenario of web browsing. This is particularly interesting considering the recent proliferation of web applications that run in the browser instead of on the native operating system.

So the days of “my operating system is better than your operating system” are over except for the inevitable arguments in junior high school lunch rooms. Adults have largely come to realize that it is a matter of choice and there really isn’t any compelling reason to prefer one operating system over another on a strictly objective basis.

Sweet dreams, don’t forget to tell the ones you love that you love them, and most important of all, be kind.

The Making of a Programmer Part III

I worked at Intergraph for six years. When I started there it was a startup in the exponential growth phase. It was exhilarating to come to work every day. I was working on cutting edge technology. My first job at Intergraph was as a technician. I tested and repaired specialized computers that were optimized to search graphics files for patterns. My Army training had prepared me for just such a job.

I enjoyed my work for six months or so. Then I got tired of working with broken computers all the time. One of the engineers discovered that I knew how to program and gave me some tasks to do. Before I knew it, I was working for him and he was the head of the newly formed networking department.

I was given the task of writing a program to copy files from one computer to another over the network. Originally the plan was to write the program using Pascal, I high level, structured programming language. I was uncomfortable with that. I kept finding problems with the implementation of Pascal that would have to be worked around. I finally suggested that we implement the program in assembly language.

Programs on the PDP-11 were often given three letter names. I called my file transfer program IFM and told my boss it stood for Intergraph File Management. I told my friends the truth. It stood for It’s F%#$ing Magic.

After making IFM work between two PDP-11 computers my next challenge was to add VAX-11 computers to the mix, that is I had to transfer files from PDP-11 to VAXs, VAXs to PDP-11s,  and VAXs to VAXs. Luckily, VAX-11 assembly language was a super set of PDP-11 assembly so the translation went smoothly.

The next challenge came when Intergraph decided to build an intelligent desktop workstation that ran Unix. I was provided an early prototype of the workstation, serial number 8, to get file transfer working. This time the underlying file system was different than it was on the DEC machines. I had to start from scratch. I decided to use C, the system programming language made famous by the Unix system.

My new file transfer program was called FMU for File Management Utility. I leave it to the reader’s imagination what that actually stood for. C proved to be a powerful language and I learned to employ all kinds of heuristics to determine how to preserve the semantics of the files while transferring them from one type of file system to another.

It was during this time that I went back to college. I had over two years of credit under my belt and the college that I was attending didn’t have a Computer Science degree program at the time. So, I took Physics, and Calculus, and all the computer science classes that they offered. I ended up getting a Bachelors of Science degree in General Studies.

I worked full time while getting that degree. The last term before I graduated, the college announced that they were going to start offering a Computer Science degree. I asked what it would take to get a second degree in Computer Science. They looked at my transcript and said that all I would have to do would be to take forty more hours to establish residency and I would have the degree.

By this time I was friends with most of the professors in the Computer Science department. I arranged to teach one class and take two ever term until I finished my second degree. I taught Operating Systems a number of times, 8086 Assembly Language, and Artificial Intelligence. It was a great time, but all good things must come to an end.

One of the other colleges in the area had a bunch of Computer Science professors with PhDs that didn’t get tenure. The college that I was attending snapped them up and didn’t renew their contract with anoy of the adjunct professors with less than a PhD. I took my second Bachelors in Computer Science and called it a day.

Next installment I’ll talk about my experiences working on the Star Wars program, working for NASA, and landing my dream job at an AI lab.

Sweet dreams, don’t forget to tell the ones you love that you love them, and most important of all, be kind.