Dr. Dobb's Journal December 1997
Michael is editor-at-large for DDJ. He can be contacted at mswaine@cruzio.com.Oh, what a year it was. Microsoft bought a piece of just about every small company with any promising new technology. Apple brought back cofounder Steve Jobs, who took over the company and made sweeping changes. Sun's plan to undermine Microsoft's domination of all things digital hit a snag when Microsoft effectively enlisted Apple on its side. Yet, the Java phenomenon kept growing beyond all reason. Thin clients, however, arrived on the scene to ho-hums, while, inexplicably, build-it-yourself became the craze among computer buyers. UNIX quietly did the work while Windows took the credit and MacOS and OS/2 got the abuse. Airplanes landed and took off at the Denver airport. The Mir space station didn't fall to earth. The Year 2000 moved one year closer.
In Washington, D.C., Congress and the Clinton administration failed to curtail free speech on the Internet, so they insisted on the Government's clear right to eavesdrop on all its citizens -- and went back to the drawing board on the free speech thing.
A single mom with a lucrative career as a paparazzi target died stupidly in a Paris tunnel, leaving her sons bereaved, bewildered, but rather well off. Not long after, Hell's Angel herself, Mother T, left the stage, raising the possibility that thousands of suffering people will now get proper medical care while she gets canonized by canonizers uninterested in examining her record.
But best of all, this was the year that the Billy Graham crusade came to Silicon Valley with the slogan, "Where do you want to go tomorrow?" I thought I'd commemorate this random year by sharing with you a random collection of the development tools, reader contributions, and whatnot that have traversed the transom here at Stately Swaine Manor, leavened by an odd puzzle.
Anent my June column, one reader whom I shall not name writes to say that his paradigm is not shifting. He suggests that "if your paradigm keeps shifting, you need a manual paradigm." Double-clutching like mad, he goes on to defend the old ways for the old tasks. "If your job is crunching matricies," he says, "you need Fortran." Hmm.
I'd say that if your job is crunching "matricies," you need a spell checker. But practically nobody's job is actually defined as crunching matrices, including, I'm willing to bet, this writer's, which is probably why he can't spell it. Statistical analysis, image processing, econometric analysis, microprocessor design, those are jobs. Crunching matrices is a skill that any of those jobs might demand. And while the paradigm for crunching matrices may not have changed in 30 years, I think there have been fundamental changes in the tools and approaches used in most real programming jobs over the same period. There has been (at least) one paradigm shift.
Besides, Fortran is not a paradigm. Fortran is a language, and is, itself, subject to paradigm shifts. Fortran 90 is not your father's manual transmission four-in-the-floortran, and the next Fortran will be even less familiar.
New features being considered for inclusion in the next major revision of the language Standard, due out in 2001, include exception handling, enhancements to derived data types to allow allocatable components and parameterized types, and whatever features are required to let you write object-oriented programs in Fortran. (There's your paradigm shift.) And, sigh, computed GOTO and arithmetic IF, two features that simply define Fortran for me, are slated for elimination.
At MIT they're developing Curl, a single language for all World Wide Web coding. It's intended to replace HTML, JavaScript, Java, Perl, C, C++, and whatever for web development. The goal is "an authoring environment in which: 1. Incremental functionality requires incremental skill acquisition, and; 2. a consistent semantics avoids communication obstacles between separately encapsulated fragments of content." It was designed to have the positive features of markup languages, scripting languages, and statically typed object-oriented programming languages. Curl was influenced by LISP, C++, Tcl/Tk, TeX, and HTML. Curl source consists of raw text with HTML-like tags, which perform markup, scripting, or real programming functions. The tags are braces (curly brackets):
{bold This is important}
is like HTML <B>This is important</B>
{+ 10 4}
returns 14
The tags can be nested:
{define {compute-overhead price}
{return {* 1.6 price}}}
And the code within the braces can be as complex as any C++ program. Curl comes with a Tcl-like toolkit of user interface objects. You can read more about it at http://cag-www.lcs.mit.edu/curl/.
Forth has always been a good language for small machines with tight memory constraints. Once that described personal computers, but today the only people who seem to worry about saving memory space are embedded systems programmers and people who write the operating systems for, or just program on, handheld devices (the Newton MessagePad, the U.S. Robotics PalmPilot, and so on).
So it is of some interest that Neal Bridges has written a 16-bit onboard native-code ANS-subset Forth compiler for the PalmPilot. It compiles Standard Forth directly to machine code for speed. I haven't used it, not having a PalmPilot. But as of August of this year, the system successfully passed John Hayes' core test suite of 636 tests for the ANS CORE wordset.
"Forth is a fabulous language," Bridges says, "capable (in the right hands) of compact programs, fast execution, and down-to-the-metal control." I like that "in the right hands." It's freeware, downloadable at http://www.interlog.com/~nbridges/.
Logic Programming Associates does Prolog. They have Prolog implementations for Mac, Windows, and DOS; and tools to tie Prolog modules into your C/C++, Delphi, Java, or VB programs, drive any ODBC toolkit, or run a web site. They also extend the logic programming paradigm that Prolog is based on with an object-oriented Prolog and a fuzzy logic add-on.
ProWeb Server, their latest baby, lets a Prolog application run over the Internet or an intranet. A series of HTML pages are used to control a conversation with users. Because what's running behind the scenes is full Prolog, you can fairly easily build some pretty deep logic into the control of the dialog. Visit LPA's web site at http:// www.lpa.co.uk/ to see a demo of an insurance quotation program.
Pictorius used to concentrate on visual development tools, but it has shifted its focus to the Web.
I like its CGI Toolkit (Mac only), a visual IDE for generating compiled CGIs. It has a built-in web server, an HTML editor, and a debugger, so you can edit and test your CGIs on one machine in one session. The process is very visual -- that's Pictorius's forte -- with a dataflow approach. You can check it out at http:// www.pictorius.com/. Now it has released iNet Solo, a web site development and maintenance tool that minimizes the need to script or program. One of its innovative features is On-Demand HTML, which eliminates a lot of file management headaches and automatically updates any links when pages are deleted or moved. Also, iNet Solo transparently supports both Microsoft and Netscape versions of DHTML and Push technologies. Users can create channels simply by selecting a check box that designates a web page as a channel. This allows subscribers to be kept up to date with the latest changes to a site (Windows 95/NT 4.0 only).
Talk about hitting all the hot buttons.
Ultrexx has a product that brings together expert systems, Java, and the Web. CruXpert 2.0 is a Java-based application development tool for developing knowledge-based applications for distribution over the Internet or a corporate intranet. You'd consider using it for applications like troubleshooting, sales support, configuration, or help desk interactions. It works like other knowledge-based tools, helping you to suck the knowledge out of some expert's brain. It then spits out an applet that you can serve on your web site to let visitors query that extracted expertise. It's for Win95 only; you can find it at http://www.ultrexx.com/. I'll let you decide whether an expert systems tool like this or a Prolog back end is a better way to put some logic behind a web interaction; I've got a few more items to run through here.
I read a testimonial recently from a system administrator at a computer-repair company who runs Linux as the system's primary OS, with a small Windows partition to use with hardware for which he hasn't yet located drivers. It's turned out that Windows is the staff's preferred OS for games and Linux is what they use for serious work. I found this testimonial in the free electronic publication Linux Newsletter, which you can subscribe to by sending e-mail to LinuxNews@LinuxMall.com with "SUBSCRIBE" in the subject line. In the words of Mark Bolzern, editor of the newsletter, "Everyone knows (or should know) that Apache is the number one web server on the net. And Stronghold, a variant of Apache, is the number two commerce server after Netscape. Among both types of servers, Microsoft products are still, at best, a distant third."
I wish Mark were right that everyone knows about Apache, and that everyone could hear testimonials to Linux and FreeBSD. Unfortunately, although these products get some good press from time to time, they don't get anything like the attention they deserve. I am as guilty as the rest of the press of letting the noise of the big companies' marketing departments distract my attention from the signal of good, free, or low-cost technology.
Maybe I should make a New Year's resolution. After I get through these next items.
This is just a little program I happen to like.
MicNotePad Lite 4.1.2 is a free version of Nirvana Research's digital no-tape recorder and transcriber software for Macintosh. It's available for free download from http://www.moof.com/nirvana /micnotepad-lite-link.html. Among its features are background operation, variable speed, scriptability, the ability to play back while still recording, as little as six MB per hour, and voice-activated recording. It requires a PowerPC Mac. Sorry.
Like nanotechnology, quantum computation is one of those far-out, trippy technologies that would be impossible to believe if we weren't asked to believe several impossible things before breakfast every day, that might possibly amount to something someday, and that are clearly of no practical use to anybody today.
You know, the kind of thing I always try to slip into this column, generally toward the back.
Lately, though, quantum computation has been edging closer to some sort of practical reality. It's due to a new approach that sounds a little like cold fusion except that the results are replicable. A quantum computer is a device in which data can be stored in a network of quantum-mechanical two-level systems, such as spin-1/2 particles or two-level atoms. The appeal is that, if you could build a computer based on such quantum-mechanical elements, it would be exponentially faster than classical computers on some problems. The field was more or less dreamed up by Richard Feynman decades ago, but it's just starting to get hot.
The "killer application" for quantum computers, according to some researchers, is Shor's algorithm -- a quantum algorithm for finding the prime factors of large composite numbers efficiently. This would have tremendous applications, not limited to cracking all existing cryptographic codes.
All's ya gotta do is build the machine, but there's the rub. The quantum bits (qubits) in a quantum computer need to be sealed off from the environment, which makes I/O a real problem. Neil Gershenfeld and Isaac Chuang have come up with a radically different approach to quantum computation that could solve this conundrum. Rather than isolate a few qubits, they basically shoot RF pulses into a hot cup of coffee and measure the deviation from equilibrium in the system's 1023 or so degrees of freedom. This works just like measuring a much smaller number of pure qubits. I'm not sure that they use an actual cup of coffee, but that's the idea. This gives them long-duration qubit states in an apparatus built of conventional molecules. It sounds nifty, but you'll have to read their papers yourself (http://feynman.stanford.edu/qcomp/) if you want to start building a quantum computer out of cups of coffee.
I have to say something about Apple. You've read the news: As I write this, the company is still without a real CEO but is far from leaderless. Steve Jobs has been making enormous changes in the company, most notably killing off the licensing program and almost all the clonemakers with it. The action burned some bridges with partners IBM and Motorola -- Motorola figuring that Steve's decision had cost them $95 million, almost what Apple paid to put Power Computing out of the Mac clone business.
While the action may have disheartened users and developers and certainly uncorked the bile of a lot of pundits, it's probably true that the licensing program wasn't working for Apple. And predictions of wholesale defections of users and developers from the Mac platform don't take into account that the users and developers still supporting the platform are the highly loyal residue of several waves of defections. It'll take a lot to shake these die-hards loose.
My guess is that burning bridges with Apple's PowerPC partners is no big deal to Steve, who (again, I'm guessing) plans to move Apple more or less completely to Intel hardware as soon as possible. Steve says just the opposite, but he'd have to.
Fans of the Newton MessagePad (speaking of die-hards) seemed to be taking encouragement from Steve's reversal of his decision to spin off the Newton division into a separate wholly owned company. I think they miss the point. The idea in spinning off the division was surely to set it up to be sold. But Steve wanted to keep the eMate device, which is popular in the education market. Since the OS technology in eMate and MessagePad is the same, selling the Newton division wouldn't have worked. This would kill off the MessagePad 2000 and the Newton OS licensing program, and focus all Newton efforts on the eMate. My guess is that's exactly the plan. Steve says he's committed to the MP2000, but he's also said that he, personally, has no use for the thing. I suspect his commitment is weak.
That's my take. Here's what reader Bruce Toback thinks about Apple's fortunes. I offer it in support of my point that current Mac users and developers will be hard to shake loose.
Purely by accident and apparently without any conscious thought, Apple got it right this time. The company couldn't have survived without a year of Gil Amelio's cost-cutting and investor-soothing.
Once Amelio got Apple's financial house in order, he looked for a vision for the future. This clearly is the right set of priorities; it's hard to execute a vision from the receiver's office. Amelio knew they had to have a new operating system, because he'd heard it from everyone else. With NeXT, he got the OS, and the vision at no extra charge. Of course, if you stand in front of a Steve Jobs without having a vision, you're dead meat.
The result was inevitable, but I don't think it's lamentable. A reasonably healthy company with a proven visionary at its head seems like a good thing, but then, I'm not a paid pundit.
I can tell you, as a developer, that the fire is back. Even better, the fun is back. Apple is once again turning out world-beating hardware, has delivered a new OS version that's at least as much of a change from System 7 as Windows 95 was from Windows 3.11, and has a first-class server OS that, with luck, will run reliably on Apple hardware by the end of the year. A couple of my PC-oriented friends and clients have actually called me to ask for recommendations on which Apple hardware to buy: They're the ones who maintain client-server systems and like what they see with OpenStep. One of my Windows development clients has even asked me to do a Mac version of their product. Based on this I've reevaluated my commitment to the Macintosh, and decided, after much soul-searching, that I can live with a market of only 27,000,000 customers.
Incidentally, don't count me among the developers who're boycotting, or screaming, or threatening after Apple's purchase of Power Computing. By the time the first commiseration call arrived, I had figured out for myself exactly the facts that Steve Jobs laid out in his press release -- er, I mean his leaked internal memo. Apple needs cloners -- I don't think we'd have had the new, world-beating hardware without them -- but in a model that makes economic sense. The Umax announcement shows that these are not mutually incompatible.
Apple's last 18 months prove that even management-by-random-walk can sometimes head a company in the right direction. Not that I'm planning to switch to that strategy for my company, you understand, but I'm quite happy with what it's done for Apple.
Swaine here again, with an upbeat prediction for the holiday season: It should be a big Christmas season for the Mac market, with some temporary gains in marketshare as lame-duck clonemakers clear out inventory at bargain prices. And even Apple itself will make some visible marketshare gains as it learns to make use of the customer database and the direct-sales expertise it acquired from Power Computing. Prices will be down, even for Apple boxes, driven by the cloners' closeout sales. And in 1998, we'll see the beginning of the move to Rhapsody.
Reader Steve Johnson took me to task for saying in October that the Illiac "proved for the first time that science could sometimes be done by simulation, that it wasn't always necessary to do the experiment." Steve goes on to say that:
In the 1963-65 timeframe, when I had several summer jobs at Bell Labs at Murray Hill, New Jersey, there was an IBM 7094 computer serving the computing needs at that location [with] a Macro FAP (!) called BLODI, which stood loosely for "block diagram compiler". This program allowed one to specify interconnection of various speech processing circuits in a kind of dataflow DSP language, and then simulate the effect of speech being passed through the resulting circuit.
There were stories of people simulating in an evening things it would have taken months to build, and one man who claimed to have completed a research project he had thought would take 5-10 years in a couple of months.
More broadly, analog computers were certainly used to do simulation going back into the 40s -- my grandfather used computers during WW2 to help compute firing tables for big guns on battleships.
This is not to take anything away from Illiac, although you can argue that Illiac's fabled unreliability set parallel processing back 10 years at the same time it advanced the field.
But didn't it also inspire fault-tolerant computing? ;-)
In October, I asked what the connection was between Steve Jobs and the phrase "anywhere but here."
Reader responses were split between "It's Steve's answer to Microsoft's slogan 'Where do you want to go today?'" and "It's the title of the first novel by Steve's sister, Mona Simpson."
The answer I had in mind was the Mona connection rather than the Bill link, and several readers who apparently get their issues sooner than I do will share the nonprize of no weeks at the Cincinnati Club Med, no expenses paid. Enjoying the complimentary drinks at the CCM water fountain will be Jonathan Mead, John S. Frias, L.A. Heberlein, and Jerry Eagle.
I will resist the temptation to further pursue the Mona-Lisa connection, but it ain't easy.
Several readers jeered (none of them actually using the jeering smiley -- :-p -- but their tone came through in e-mail loud and clear) that the puzzle was too easy. A quick search on "Steve Jobs" and "anywhere but here" turned up the answer in about a minute plus or minus another minute, depending on Internet traffic. Even better was Mead's algorithm: Find the January 12, 1997 New York Times Magazine, with its article about Steve and Mona, lying on the living room floor. There are a couple of lessons here for puzzle creators; ones I thought I already knew. The only puzzles that are interesting are ones that can't be answered by a simple Internet search, and messy housekeepers make good puzzle solvers.
Here's a little ten-question quiz that I hope will be a bit more challenging. Probably some of the answers can be found by a sufficiently clever web search, but some are really tough, no matter how much junk you have piled on your living room floor. Nobody will get all ten questions right, I'm sure.
1. Working with another computer enthusiast, this man created an enormously popular personal computer. In 1977, when it was first released, most microcomputers were boxed in metal (or occasionally wood), but his stylish machine wore a custom-molded plastic case. It used a slow audio-cassette recorder for storage and displayed only upper-case letters, but you could program it in Basic and people loved it. It sold for $399. His first name is Steve; what is his last name?
2. What's (4195835/3145727)*(3145727)? Two answers required. That's two distinct answers, not the same answer in two different forms.
3. This executive of a Palo Alto software design firm used to drive around the Valley in a Japanese car with the vanity California license plate PRERUDE. Name the executive. Two answers required, but here's a hint: One of the answers is what a winery might do if it got bad barrels.
4. Who was Mr. Snoid, and what's his contribution to personal computer history?
5. Silicon Valley legend Steve Wozniak is the very soul of honesty and decency, so it may be startling to learn of his shady past defrauding the phone company and defaming ethnic minorities. But this question isn't about Steve's blue box adventures or his dial-a-joke service. It's about his other identity. Steve lived for some time under an assumed name. Why did he do this, and what was the name?
6. What's another name for Tradewind? Two answers required.
7. In what city does Clarus the Dogcow live? Two answers required.
8. "Using CL is similar to placing your pencil on a piece of paper, and then writing something down. The main difference is that CL provides you with a 'magic' piece of paper that has the ability to do computations like a calculator." What product is being described here? Two answers required.
9. Few people know that one of the founders of Go Corp. also wrote a controversial little program called MacJesus Pro Gold. Or did he? Name this moonlighting entrepreneur. One answer, but really two. Explain what I'm talking about.
10. Who created paparazzi?
DDJ