06 March 2008

All that is Solid Melts into Air

I've been moody this week. It's been just about ten years since Apple's Newton project was canceled, the products discontinued, and the staff of the project began their exodus. I hope readers will forgive me if I wax a little autobiographical.

In 1993 I attended, along with a couple of friends, the launch of the original Apple Newton. I nearly melted my credit cards into slag by buying an original MessagePad and a copy of the Newton Toolkit. Both products were over-hyped (see this impressive and slightly utopian video), and promised far more than they could deliver on that hardware, but to me the technical innovation and potential were far more interesting than the actual practicality; I was excited about some kind of platonic ideal Newton device, not the actual stubby greenish device that crashed and locked up and wouldn't boot in cold weather and ate batteries like candy and turned my handwriting into word salad. Developing with beta-this and 1.0-that was a struggle, but within a few weeks I had sent my first Newton freeware application out into the world, an ugly, misshapen little utility called Strainer, best forgotten. But it was a start -- and a doorway into a whole world of dynamic typing, closures, garbage collection, prototype-based programming, byte codes, garbage collection, and even "eval" and "apply."

My co-worker Mike and I dove into it. He created the Usenet newsgroups for Newton. I developed and maintained the early FAQ list. I did so much testing and analysis of the behavior of the built-in applications that I wound up getting calls from developers within Apple to discuss the bugs I was finding. I got to know the Newton developer tech support engineers. I wanted to be one of them. I published articles, most of them likely best forgotten, but overflowing with my enthusiasm for the new architecture. I exchanged e-mail messages with Walter Smith, the very smart guy behind NewtonScript, talking about the implementation of NewtonScript itself; he explained closures. Which got me into Dylan. Which got me into Scheme. Which (ultimately) got me into Haskell. And so forth.

The Newton was a big part of my career, on and off, for the next six years or so. I got paid to write Newton applications -- not consistently, and not just Newton applications, and not end-user, shrink-wrapped applications, but a lot of NewtonScript nonetheless. I developed a kind of DSL, in NewtonScript, built into the package by executing NewtonScript code at build time. That package acted as a kind of script itself that ran on a NewtonScript engine capable of presenting a variety of nicely-formatted question types. The survey engine had a kind of transactional semantics, even across branching, so that the data it was recording always remained consistent. It could do all kinds of post-processing and analysis on the fly, with little embedded function objects, and basically ran as a big state machine to administer surveys. It was code-as-data; it was higher-order programming. NewtonScript was, at least for me at the time, an Acceptable Lisp. For several research projects, that's how the Health Media Research Lab at the University of Michigan collected data from study participants. There were several other parts to the process -- built around AppleScript, Quark XPress, WebObjects (Java), C++, and even Visual BASIC and Perl and Scheme and Macromedia Director, and I was involved to some extent in most of them, but the Newton survey engine was my particular baby.

Apple released Newton hardware in two more form factors, ultimately culminating in the MessagePad 2000 and 2100, which pretty much _were_ that platonic ideal of a Newton device, a local maximum as far as design, usability, and features per watt, and that product hasn't had a serious contender in user-interface design prior to the arrival of the iPhone. And it came crashing down, rather abruptly, just a few months after the release of the MessagePad 2100. There was no one left to fix bugs. Because of one particular bug in the 2100, we had to scramble to stockpile the earlier MessagePad 2000, so that we would have enough units on hand to complete our research study.

A couple of years ago I discarded my original MessagePad, with its original case and "Getting Started" card and cute little power adapter and a press kit from the Newton launch -- just tossed it in the dumpster. I shouldn't have done that. Original MessagePads -- not upgraded -- are scarce on the ground, and though they are not terribly usable, the design remains interesting. A few years ago I picked up a 2100, and just recently bought 3 more Newtons on eBay, one of each form factor, but I miss the neat leather-journal feel of the rubberized original MessagePad and its snug-fitting, book-like case.

Interestingly, the Newton architecture has proved to be flexible past the point of Apple's involvement. In the box of scuffed-up Newton MessagePads was a wireless modem card. Some enterprising hackers actually got support for these devices working; I have not yet gotten it working, but I'm told that it's possible to get it working on a modern WiFi network, albeit with a somewhat minimalist web browser. I wonder if I can get the Webmail interface working via a web browser on the Newton?

I gave my wife a short demo, and she wants one, so she's going to be a rather late beta tester herself. That's good; I'd rather see them get used, than just sit on the shelf and corrode. Me, I'm going to fire up the development tools and see what it looks like to me now with ten year's more perspective.

But more broadly, the history of this technology is causing me to think seriously about what just what exactly it is that I've been doing since I got my first computer in 1977, at the age of ten.

One of the famed Alan Perlis Epigrams in Programming reads:

Is it possible that software is not like anything else, that it is meant to be discarded: that the whole point is to see it as a soap bubble?


Mike said...

Can I confess that this brought a tear to my eye? I too loved the Newton.


alexbl said...

I never had the opportunity to use a Newton, but I have read so much about them. Thank you for providing some more details on the platform. Whenever I read about Newton it occurs to me that much of the functionality it provided is still not available today, and that given the superiority of today's hardware implementing a platform like Newton (especially if we go back to some of the ideas floating around in the Newton project before its released manifestation) could make something truly earth shattering.

Paul R. Potts said...

Amazingly, the Lucent wireless card works very well and will talk to my home wireless network. The web browser is another matter -- it doesn't seem to like modern pages, so I'll have to look into that.

Paul said...

I too programmed heathcare (Home Heathcare) applications for the Newton. Three days before the cancellation we contacted Apple and asked how we could order 20,000 of them -- we had just gotten three huge orders. But it was too late, the production had been quietly killed 6 months earlier. I was left with $86K in unpaid AR and $40K in debt.

But my MP2100 has been the most reliable computer I have ever owned ... I still use it daily for a few tasks.

These days I sling Java, JavaScript, XHTML, XSLT, etc.

But I've never encountered a computer language since that has the same amazing capabilities of NewtonScript.

And when I bring out my MP2100 in public to hand-write an observation, people routinely think its the latest hottest thing.

I really wonder whether I should touch the iPhone. Clearly, I have paid the price of the lack of ethical behavior at Apple Inc. This is a company more concerned with popularity then doing the right thing. Google seems to be on the right road however; I hope the gPhone ultimately succeeds.

Paul Smith

Paul R. Potts said...

Wow, 20,000 units! We were fortunate -- somehow our Apple folks managed to find a stash of MessagePad 2000 units for us -- I think we bought 20 or 25. We would have bought fewer, but given that we couldn't get replacements, we wanted to make sure we'd have enough to account for breakage or loss over the course of the last project. There was a specific crashing bug that our code triggered in the 2100 ROM that didn't happen when we ran our app on the 2000, and with no one left at DTS to help diagnose it, we had to go with the older units.

The pioneers (or PIE-o-neers) are the ones that get the arrows in the back! We are just fortunate that we managed to complete all the research.

Stan said...

I was running the outfit the Paul Smith mentioned...and the order was really for 25,000 units. I later learned, from Sina T., Steve Jobs assistant that our order was what caused Jobs to go public with the announcement of our beloved Newton's demise. I lost everything and ended up sleeping on Paul's floor. I still user my 2100 almost everyday, which still has several of the apps Paul wrote on it. I also have a brand new Newton 100, still in the box, as well as a few others including a 120. I also have a wired/wireless fax modem card that Paul and I tested from the "in flight" phones on a sales trip way back when.

These days I spend my time keeping large Oracle Databases running, boring but at least I can pay the rent.


Paul R. Potts said...

Stan, thanks for your part of the story! A lot of mistakes were no doubt made in the short history of the Newton platform, but I feel like with the Newton 2.0/2.1 OS and the more capable 2000/2100 hardware platform, the cancellation of the whole project was really "snatching defeat from the jaws of victory." It was becoming a very viable platform for all different kinds of both vertical and horizontal applications. I was just reminiscing about how the PDA "product space" is littered with barely-remembered failures like the AT&T EO Communicator, the Magic Cap devices, and at the lower end endless Sharps and Psions and what not, but the Newton did not "fail" in the usual sense. Browsing through the hundreds of available packages testifies to the very active 3rd-party development community.

I'm now using my MessagePad 2100 for wireless e-mail using Simon Bell's excellent Mail V package. He even developed plug-ins so that it can display JPEGs and GIFs, so I have mailed myself a small gallery of family photos that I can display in grayscale! And all this, including the card drivers, were written well after the product was terminated.