Old Rants
Note: This was written back last in mid-1995; I'm leaving it up just to see how wildly off-base I was in my predictions. Most likely, this section will be the last in a series of pages of similar predictions, starting with the most recent (from your point of view) to the most remote. Enjoy.
There are some interesting things going on in the CIS field these days. Movers and shakers, new innovations, paradigm shifts; There is almost too much to keep track of.
I've been keeping my eyes open as much as possible, and here are the trends which I believe are going to make a significant impact on the computer world.
- First and formost is the question of hardware itself. There is a strong trend towards standardization in hardware; the two leading contenders are Sun SPARC and PowerPC (in whichever implementation). Sun has the advantage of having a larger powerbase right now, but the PowerPC will soon be competing with better power/performance in the same power range. In addition, PowerPC will offer more options for operating systems than Sun, which could be a considerable advantage. There are a couple of interesting possibilities that this environment could cause:
- Apple dies. As Apple begins to compete with third parties for hardware platforms, they will inevitably shift to relying on sales of their OS to sustain them. Apple's OS is unfortunately the weakest aspect of their computer systems, and they are going to have to work pretty hard to change it enough to be able to draw users away from other, more attractive and better designed, OSes.
- Unix begins to take on a more friendly face as Sun (and other contemporary workstation developers) branch into the personal computer market. Sun is already doing this with their $4000 SPARC-4, and HP and SGI are close behind with $5000 and $6000 systems (respectively). Since Unix has a very wide power base, if a user-friendly X window manager becomes available, Unix may indeed compete more strongly in PC market. Indications of this can be seen by the sucess of of Linux.
- Beyond the hardware question, of which I have no control, there are a number of things changing is the software field. Most importantly is the research in hardware independance. The forerunner in this is the Java/HotJava project, which uses a byte-compiled, distributed binary format. The idea is to have hardware independant compiled bytecode which is then transported to the target computer, where an interpreter either runtime interprets the code, or pre-interprets for faster execution. The binaries for bytecoded programs tends to be smaller than those for normal binaries, and pre-interpreted code runs nearly as fast as normal compiled code. Smaller binaries means smaller transfer time, and interpretation means true hardware independance. Both of these characteristics are very important, and will play increasingly significant roles in tomorrows computer field.
- One thing that could downplay the importance of hardware independance is this move to hardware standardization. However, hardware independant bytecode will allow hardware developers to change hardware standards more easily, since there would be little consideration in keeping new technology backwards compatable to maintiain the software base.
- Although Java is a noble attempt and will probably be successfull, it admittedly has some difficulties in the user interface department. Fresco, an object oriented user interface toolkit, is more of what I'd like to see in place of Java's AWT. Fresco has some nice features, such as object orientation and object distribution, and the layout gadgets look slick. However, in it's current implementation it is a hostile programming environment, and is much to unwieldy to program in. Fresco exists on a number of platforms, so porting code should be trivial.
- TCL/TK is another interesting language set. I don't care for TCL much, but the TK widget set is very full and attractive. Also, TCL/TK exist for a number of platforms, making distribution easy.
- Perl is one of my more favorite languages. It is a very powerful scripting language, and is useful for a wide variety of applications. It needs a better interface to TK than what exists, but who knows if that will ever happen.
- Operating systems are a big consideration. Although I don't think it will become a "big player" in CIS, I believe in the Mach operating system. In it's latest version, Mach is a micro-kernel which provides threading, messaging, and other system functions for an interface OS, like Unix or Windows NT. Mach has a number of advantages to other systems in that it is lean, multi-processor oriented, and truly hides the hardware from the user. Multiple computers running Mach can seem to the surface OS a one computer, with all the power that comes from multiple processors (plus net lag time :-). Hurd is another OS to keep an eye on; it is based on the Mach kernel, and adds a lot of functionality where Mach is lacking it.
- I have a lot of respect for The NetPBM and the PiNG projects. The NetPBM project is a collection of tools for converting between images formats. NetPBM uses a set of intermediate file formats for these converstions rather than providing a program for converting from each format to each other. In this way, NetPBM keeps the number of tools to O(n), rather than O(n^2). The Ping file format is developed by a group of concerned individuals as a replacement for the dreaded GIF file format. PNG uses the ZIP compression scheme for much better compression than GIF, is lossless, and has many other features which mark it as a well thought out format.