Friday, April 18, 2008

Old Computers

First of all, I love computers. New and old. Technology is great. Sign me up and plug me in!

I was talking to my brother recently about old computers and what it is I like about them.

There are a lot of things about old computers that are great. Just tonight I realized that you could actually have a fairly complete understanding of a 1980's personal computer from top to bottom. From the logic gates, to the CPU, whether it's a Z80, MOS 6802, or Intel 8086, through to the operating system, and right up into the program. Head to toes.

Today when you take a computer science course, you learn little pieces here and there, a logic gate, or the ideas of a low level programming language, often in the form of a emulated CPU, or maybe a fictional CPU designed for learning. Maybe you even build a binary adder. But then it's back to learning something useful Java or C# or something.

Maybe I'm wrong, it's not like I'm in university right now, however, it seems like learning some of these basic things by making a logic gate or adder or something, feel like growing a single blade of grass as starting point of learning football. So far and away.

It seems like making computers do things is mostly a case of taking an x86 based CPU, some fully realized OS, a byte code based virtual machine, a whole wack of libraries and API's, a editor and IDE environment with a full knowledge of the API's, and boom - you finally start making something.

This makes sense as it evolved out of needs to encapsulate layers of very annoying details away so that it's easier to create and maintain your project. Or perhaps your piece of the project.

I think this is all great, really I do. Ruby on Rails is really quite awesome!

It all seems like so much. So many layers, and pieces, all of which are moving targets, and all of which need constant refreshing. It seems like we went from swimming in different, but well known ponds - Apple, Commodore, IBM, DOS, CP/M - to one great big ocean. It's just overwhelming to understand, and sometimes underwhelming to explore. Things got more complex and more homogeneous.

Using computers today seems so much like watching TV. The web pages turned into databases which turned into web apps which turned into social web apps which turned into 1-click perpetual payoff. Meanwhile, desktop apps are more like web pages.

But I think the experience of using computers today has lost something else.

You see, the GUI interface changes the very idea of what using a computer should be.

Let's take a side trip. Imagine your living millions of year ago in a thriving village, and things are so well, that there's lots of food and no worry of war or scary animals. No imagine your belly is full and looking out into the wilderness. What would you be thinking?

Now imagine your living in a modern city today, and you sitting at a restaurant, after eating, and looking at a desert menu. What you are thinking now?

When the GUI first come out on the scene, it offered a very friendly way of using a computer. Instead of having to know a bunch of stuff, you are presented with a list. All the functions and programs of the computer are laid out in a nice little menu, complete with pictures.

What this is saying to the user is "We've figured everything out for you, and here's all the things you can do. Wouldn't you like to pick something to do? We've made a nice menu for you to choose from."

With the advent of the modern internet, that desert menu is pretty damn big. So big, in fact, that you can spend an almost indefinite period of time getting entertained by it.

But way back in the early days of the personal computer, this is what it was like.

You got a prompt. A flashing green cursor.

You don't get to pick from a list of things to do. You can do anything you want. You can do anything.

There's no list. There's no waitress walking you pleasantly through glossy catalog of choices.

You're faced with your own two hands and ability to explore and create. That flashing green cursor is sitting there waiting for you to go, or do, or be anything you want it, or yourself to be.

It's a canvas, not a catalog.

I realize that most people know what they want, and they like it when someone else has figured it all out for them. What I wonder about is the kids.

They get blasted into the ocean full of high speed internet whiz bang, instead of sitting on the shore, wondering what's out there, and maybe making their own raft.