I don't know how to say it, so I'll just show a couple of pictures...
[A picture of my BeBox would be here]
This is of course a picture of my BeBox. I just turned it on tonight, and it still works!
This little box is from 1995. Those two parallel lines on the front are the “geek lights“. They are rows of LEDs that flash up and down as indicators of CPU utilization for each of the dual processors.
The machine is configured thus:
2 PowerPC 603's running at 66Mhz
16Mb of RAM
160 Mb HD (128 Mb used, 30 something available)
[A picture of planes would be here]
This is a picture of 4 mpeg movies playing on the screen in relative realtime.
I created an application that would allow you to display live tv on the screen with special transitions as you changed channels. It had picture in picture, and all that fun stuff. But, that's another story.
As I type this, I'm using a Pentium III running at 900Mhz. By all accounts, an order of magnitude faster than my lowly BeBox of almost 10 years of age. Is it appreciably faster? It sure doesn't feel like it when I'm typing. Surely it can run 10 times as many of those silly little MPEG movies at the same time? Well, not quite, and not really, and... no, definitely not!
What's happened? Were programmers “back in the day“ far superior and more capable of producing a quality operating system than they are today?
Here's another data point, related to Microsoft's XML implementations.
There used to be this interesting benchmark of XML processors, at least XSLT processors. It is called XSLT Mark. I direct your attention to one particular page of the test results:
http://www.datapower.com/xml_community/xsltmark_results.html#ChartOverall
What do you see here? Well, it shows that the MSXML 3.0 product running ahead of the competition. In this particular case, there is an 'index' number (~450), and the closest competitor is Sun XSLT alpha 4, running at an index of ~275.
Now, these numbers are relatively meaningless, and it's pretty easy to 'game' the benchmark, but it gives you a point in time. After this particular benchmark was run, Microsoft released MSXML 4.0. That particular processor was thought to be the last 'native' version of the processor, so we took out all the wait loops, and it ran about 3 - 4 times faster than the 3.0 one, depending on the scenario. At that point, I think people stopped counting.
Is it because we're far superior programmers, with keen insights gleened from our various abduction trips? Not really. Most of the performance gains were achieved by the work of a copule of programmers, in a team of 5 or 6 programmers. In System.Xml V2, we're going to do even better than we did in MSXML 4.0. Did we hire another martian to boost our productivity? Do we employ time warp fields and reality distortion nets? Nope, we've just been doing this XSLT processor thing for 5 years now, with pretty much the same group of people. We just know how to tweak the snot out of the thing.
Same was true for the BeOS. Dedicated engineers that had a limited single minded task, Make the best darned multiprocessor operating system available for PCs. They succeeded in their singular task. Unfortunately, the goals of the sales and marketing org weren't quite as clear.
It is interesting to contemplate what the programming environment looks like once data transformation reaches sufficient speed to be viable as a runtime component. I'll save that for another story.