April 15, 2011

/epiphany

   The other day I was joking around with one of my bosses at work about computers. I should explain that I was originally hired to do lab work exclusively but as our study has evolved my job has as well. I now do front line IT work for my office. Basically I do all the easy stuff so our main IT person can focus on software development for the time being. Essentially that means I fix all the simple problems and handle all the hardware issues. He still deals with all of the high level technical issues.
   This has presented me with the second opportunity to work hands on in an environment mixed with Apple and Windows based machines. The first time being in college working for the student newspaper.
   Because I am predominantly a PC or Windows user I occasionally make a jab at Apple because my boss is an old school Mac user. At this particular occasion I was making a jab at the fact that another bosses computer didn't come equipped to run Flash. Flash, as you may know, is something Steve Jobs has gone well out of his way to discourage.
   The stupid part about the joke was that Flash is a third party internet browser plug in. For those who don't follow that simply means that essentially no computer system comes with Flash built in. The only exception to that rule is Chrome OS which as of now is still in development and not available for general consumption.
   Realizing my stupidity and feeling quite ashamed I hid away in my cave (I am one of the lucky few that does not work from a cubicle) and began to research operating systems. This is something that has been a very great interest to me lately since my recent dabble in Linux.
   Further explanation in my curiosity is that for a while now I had been wondering why Linux computers can see and alter files from another system. It seemed that if they were completely different systems they would not even be able to see the files from another computer system.
   A decade or two ago you could not place a disk formatted for windows in a Mac and expect the Mac to even see the files. Heck you were lucky if the system could recognize the media and ask for a format. Somewhere along the line that all changed. Now we don't even think when we put a flash drive in any system and the thing just works all the way around. I wanted to know why for a while.
   Fueled by my curiosity and embarrassment I went on the hunt. I found what I was looking for in Wikipedia in the form of historical information.
   So here is my conclusion and a summary of what I learned. Computers are pretty much all the same. There are some minor differences between computers but most of those are superficial. All computers we use today from our desktop to the phone in our pockets are based on the same basic structures. All of these computers are descended from the same ancestry of information technology. They all speak the same language at the core. They all contain the same building blocks. The differences come in how these common blocks are utilized.
   On the lowest level computers speak zeros and ones. For a long time people had to speak that code to program and use a computer. Eventually a shorthand was created to make this simpler. Then another shorthand was created and then another. These three shorthands were used on computers that would be unrecognizable as such to most of us.
   Over time a new version of shorthand was created to translate any of the others into something that resembled plain language and the first real programming languages were born. Many of these languages were designed to be used with a specific machine. Over time certain of these machines became more dominant and with them the languages.
   As computers became less expensive to manufacture and more powerful there came a time when companies decided that a command based interface would be even better as it would simplify the usage of the computer even more. It was at this time operating systems were born. An operating system is nothing more than a plain language interface for a computer. It means that you can get the computer to function on some level without even knowing how to program. The OS (as I will refer to it from here on out) is basically a layer of programming to separate the user from the machine languages that only experts learned so just about anyone could use a computer.
   What really surprised me was that in the very earliest of days the OS of most machines was designed for just that machine just like earlier many machine languages were designed for a specific machine. As I began to wonder about this it occurred to me that the reason for this must be that each machine has specific hardware that another machine would not have had or needed.
   A few years later and some clever people decided that these machine specific parts could be encoded in software called drivers. Then any OS could run on a particular machine as long as the drivers were available to the OS. Each driver would tell the OS how to communicate with the machines unique hardware setup.
   It was at this time that the computer industry really began to have a place in our homes. Some of us had an Apple others an IBM.
   Fast forward a few decades and we are back in the present. We have a handful of OS choices and they all can see the files made for and/or by another. Why is that? Well it's mostly because the origin is all the same. Apple's OS 1-9 ran a specific instruction system for drivers that were specific to any machine they made. Apple held onto control of their hardware and software to attempt to create a very simplified user experience that was meant to be hassle free. They were more or less successful. Microsoft used their various systems to create a broad view that would accept as much hardware as possible in just about any configuration. At the core they were 2 doing the same tasks.
   Meanwhile there were a few other systems that most consumers were not aware of that are equally important. Unix and Linux were being developed for larger computer servers all these years. Unix is an OS designed to be extremely powerful and extremely stable and probably most importantly it was designed to manage a very large amount of resources that typical home computers would never have. Linux was a project that was designed to emulate Unix but be free and more importantly something that anyone could adapt and change.
   One other system was being used with similar properties at the time. It was Windows NT. NT was designed originally for business users to give them a stable system capable of managing a lot of resources. With the release of Windows XP professional and onwards this is the only system Microsoft releases.
   Some time in the last decade a few major shifts occurred and most of us were not aware of them happening. Apple dumped their original OS for a system based on Unix. They created a hybrid of a few versions of Unix systems and released it as OS X. At the time I thought the X stood for the number 10. Now I know it, like every version or Unix, uses an X to denote the Unix origin.
   So, here we are in 2011 with a handful of OS choices. Windows 7 is a version of NT which in turn is a network intended system. OS X is at its core a server software platform. And Android which is increasingly popular for phones is based on the core components of Linux which is also designed for servers. All of our choices are essentially the same at the core in what they do and how they use the actual hardware.
   So, where does that leave those of us who are consumers? If all our choices are the same then what choice do we have? The more I think about these kinds of questions the more I realize that today's computer user is in a position that is new and wonderful in the history of computers. It means that it doesn't really matter what we buy. Brand names are irrelevant now. All of these computers are now capable of interacting with each other. They are capable of sharing information and more importantly our collective ideas and understanding.
   We live in a computer market where manufacturers have to compete for our dollars by providing us with value in areas that are actually important. We can buy the machine that best suits our own personal needs and wants and not be so concerned about whether or not it will be compatible with our office printer or network. We can be less concerned about how something works and more concerned with our own work and our own play.
   While it is still true that not all software will run on every device this old concept is slowly dying. Software developers are realizing more and more that money is made in making software work everywhere and on everything. Other companies are working on ways to make software run on the server instead of the local machine. This gives anyone with an internet connection the ability to use their software from any computer or device. Google Docs is a great example of a really solid Office like software platform that works anywhere from a connected computer and in some places without regardless of what type of computer it is.
   Next time you ask me what kind of computer I would recommend you buy ask yourself a few questions first: What software do I want to run on my new computer? Will it run on another type? Would that other type/brand/model fit my needs equally as well? What kind of money do I want to spend for a computer? Am I mainly going to be doing stuff on the internet? Am I going to play games on it? These kinds of questions are fundamental to your next computer purchase.
   Some simple guidance. An Apple is going to generally cost a bit more than a Dell or an Acer. Some Acer computers are better for gaming than a Mac by virtue of a better video card built into many of them. An iPad has a lot of apps that you can only get on an iPad for now. In a year all of the most popular third party apps will be available on Android and a few months later on Windows (example Angry Birds). One thing you can only get on a Mac is the Macbook Air. Essentially it's the fastest computer around and comes in at a super light weight and highly efficient system. But in a year every other manufacturer will copy this.
   So, the final point here is that when it comes to computers look to features that you  want and that you need. Not at the ones Justin Long or Jerry Seinfeld mention in a TV ad. What do either of them know about you and your needs anyway?