Newton Get Serious
Volume Number: 13 (1997)
Issue Number: 4
Column Tag: Tools Of The Trade
Newton? Get Serious!
By Edward Ringel
Life is changing in the hand-held computer world
Several months ago I got interested in mobile computing, and I discovered the Newton MessagePad 2000 from Apple. I believe this new palmtop computer is a very appealing product for a large segment of the portable computing public. The introduction of this device is a significant, new, and exciting marriage of hardware, software and market opportunity that demands careful scrutiny by MacOS developers.
I was fortunate enough to be allowed to use a MessagePad 2000 for a month. Apple Computer and its staff were most gracious in their support of this project and I wish to thank all involved publicly. I was also given the opportunity to use and examine the Apple development environment for Newton, the Newton Toolkit. It is beyond this article to give a comprehensive evaluation of the market, the hardware, and the development environment. However, I would like to give you my perspective on this product, and justify my obvious personal enthusiasm.
In the last several years, as portable computers have become commonplace, mobile computing has taken on a life of its own; the distinctive laptop traveling bag is an icon at all major airports. Despite their utility, many companies don't want to buy their employees laptops because the computers are expensive and many of the users do not need that kind of horsepower. Financial issues notwithstanding, there are a large number of individuals who need a mobile computer, but to run one or two or three simple, relatively small programs, and do not need all the bells and whistles of a full operating system. Furthermore, most people in a mobile computing situation are working on just a piece of a project at any given time. The user needs only part of the data because the necessary processing is occurring in a distributed manner.
Mobile computer users, in addition to specific applications that are needed for execution of job specific tasks (such as specialized electronic forms, order/inventory entry, etc.) have two needs that apply across the market. First, there is need for productivity software. This is the contact management, address file, and datebook paraphernalia that sometimes seems to be the meat and potatoes of modern corporate computing. In addition to this category I would add lightweight versions of basic word processing and spreadsheet programs that integrate with desktop applications, so that a piece of the current project can be brought on the road. Second, there is a need for connectivity software. The mobile user will not have all necessary information with him or her at all times, and it is imperative that the user be able to retrieve data and send messages easily and in multiple formats. Connectivity is perhaps the most important paradigm shift in all of computing in the last five or so years, and the need for this capability is particularly pronounced for portable users.
Mobile users are more likely than those at a desktop computer to engage not only in sustained data entry, like typing this article, but in bursts of data entry such as filling out an electronic form, jotting down an idea or an outline, or drawing a quick diagram. Unlike desktop users, mobile users will sometimes be in a situation where physical space may be at a premium, or position may be awkward. These two factors make size of the device and stylus entry a strong positive.
As an alternative to traditional laptops, Apple introduced the Newton several years ago. I've had the opportunity to talk to several devoted (and not so devoted) users. People have been intrigued with the handwriting recognition, the relative power compared to organizers, the clever and friendly operating system, and the size relative to laptops. Sadly, handwriting recognition has been slow and spotty, particularly pre-Newton OS 2.0, and this has rendered stylus based input a misery for any sizable amount of information. Memory has been expensive, and general processing has been slow. Screen pixel depth has not permitted any kind of serious graphics, and until the MP 130, backlighting was not available. Both of my friends who still use Newtons use them almost exclusively for data retrieval from electronic books.
Nonetheless, the promise of the idea of a small, powerful, hand-held computational device continues to beckon, waiting for a hardware/software combination that finally allows the genre to come into its own. Hitachi, Philips, NEC, and Digital have created low voltage, low current very powerful CPU's that are being used in palmtops, and many hardware and software developers see the enormous potential market. Microsoft, in particular, has decided that this aspect of mobile computing is sufficiently interesting to warrant its attention, and the result is a series of palmtops using the Windows CE OS. (The OS isn't bad. I don't like the hardware I've seen.)
It is in this setting that Apple has introduced the MessagePad 2000. Just as a PowerMac 9500 and a Mac Plus are both Macintosh computers, a MessagePad 100 and a MessagePad 2000 are Newtons. However, you can do some things with a 9500 that you can't do with a Mac Plus
Hardware and Software
The Newton MessagePad 2000 will be available first quarter 1997, probably late March. (This article was written in January 1997.) It is about the size of a VHS cassette, measuring about a quarter of an inch wider and three quarters of an inch longer. The screen is just slightly smaller than a 3" by 5" index card. With no extra stuff (fancy PC cards, etc.) it weighs slightly over a pound. The screen has a pleasant blue electroluminescent backlighting. It has two PC card slots, a speaker, a microphone, and a connections port. My unit had a rechargeable NiMH battery pack and an AC adapter. I liked the battery pack in that it recharged in an hour, and lasts 24 hours. 4 AA alkaline batteries, according to Apple, will power the device for 36 hours. I am not a physically big person; the device was comfortable to hold and carry. The stylus that comes with it pops into a holder in the computer, and there is a cover over the resistive screen. The screen seemed quite delicate, and I suspect that the use of Write Right screen protectors would be mandatory for long term, heavy use.
The heart of the computer is a Digital StrongArm SA-110 RISC processor running at 161.9 MHz. The Message Pad 130, for comparison runs at 20 MHz. The result (and maybe this is the punchline of the article) is that the MP2000 does most operations at least two or three times faster than its best predecessor, and more in some operations. Functionally there was a snappiness to operations that was pleasant and responsive. Handwriting recognition was quite fast, although I would still want to use a keyboard for sustained input. The machine comes with 8 Mb of ROM. 5 Mb of RAM, 1 Mb DRAM and 4 Mb Flash RAM, are available to the OS and your applications. Two Type II PC slots are available for modems, ethernet connectors and memory cards. Multiple modem and fax protocols are supported.
The screen has 100 dpi resolution and is 480 by 320 pixels, exactly one half of a VGA screen. The device can support 16 gray shades, and as I said above, is pleasantly backlit. I found that I preferred the backlighting in most ambient light settings, but this had negative impact on battery life. The stylus that comes with the MP2000 is light and uncomfortable; I suspect the aftermarket in upscale styli will be considerable if these little fellers catch on.
In addition to the PC slots, there are several I/O ports. Both a built in speaker and microphone are present. There is an infrared port for data transmission supporting IrDA and ASK modes. (IrDA is a faster, newer protocol.) The IrDA connection to my LaserJet 5MP was seamless. There is a Newton Interconnect external port that supports RS-422 serial connections, LocalTalk, serial modem connections, audio I/O, and a keyboard. Apple currently makes only a DIN-9 connector that has only one plug. However, were the connector hardware available, multiple devices (such as keyboard and printer) could be connected simultaneously. (Do I smell a third party opportunity here?) I used this port to connect to my desktop external modem, to my Performa 6200, and to my Personal LaserWriter LS, and again, there were no problems with any connection. In all, the hardware platform is high quality.
The Newton ships with both operating system and end-user application software. The software services provided by the OS (2.1 in this device) are unique and ubiquitous. Just as the Mac provides developers with multiple tools and services, so does the Newton.
Handwriting recognition is strongly associated with the Newton, and this is actually an operating system service; any application can ask for a complete set of handwriting recognition services, including delayed recognition (ink text), recognition correction systems, access to word lists, restricted input (number only, alpha only, etc.). The stylus input system includes tap keyboards such as typewriter, numeric, phone dialer, and custom constructs.
I used handwriting/stylus input extensively in my testing, and after some initial problems I was able to achieve 90 to 95% correct input. After using the MP2000 for about 2 hours I had found the areas of greatest difficulty in recognition of my handwriting, tweaked some parameters, modified how I wrote a couple of letters, and was home free. Clearly, the device learned to recognize my handwriting. Word recognition is as important as letter recognition, and I was able to add to the 93,000 word dictionary; my loaner Newton had a nice medical word list by the time I returned it. In comparison, I used an MP 100 upgraded to a 110 OS and configured for a guest user; my correct input rate was about 50% and recognition was very slow. In sum, I would not be averse to using stylus input for routine "burst" entry on the MP2000.
Communications services are also an integral part of the OS, supporting Internet protocols, serial communications, and faxes. (Tunneled AppleTalk and Ethernet are not yet available.) Again, these services are available to any application. I was able to set up the computer for my Internet account in about 10 minutes and it worked my first try.
Connectivity services are somewhat different from communications; I classify this as docking to a printer, backing up data, using the infrared port, or communicating with a running desktop application. High level interfaces are available to any client application.
Two less obvious but very important services are also generally available. The first is intelligent assistance. In some respects, this is somewhat like AppleScripting, but with a flair. When assistant services are requested, a slip (Newtonese for dialog box) comes up that allows you to write in an action request, such as "take a note." In this case, you would be presented with the note application and a fresh sheet of paper. It is also possible to create a scripted action such as "phone Bob." In this case, the request "phone Bob" triggers the script to phone Bob. It is possible to create scheduled and repetitive actions using this mechanism, which is obviously very useful.
The second important service is data storage. The Newton operating system supports a generic object oriented filing and indexing system, called soups, that tremendously simplifies data storage and retrieval. Data from an application is stored in a soup, which can be indexed, traversed, and accessed randomly. From an application development standpoint, I see this as an outstanding system service.
Of course, there are a variety of programming interfaces to GUI services and general application services, which will be described in the development section below.
The Newton MP 2000 also ships with several full fledged applications. There are a number of "PDA" level applications: Name and Address Book, Calls, Notes, and Dates. The Names application is an address book application, and the Dates application is an organizer/datebook application. Both are high end flavors of these tools. The Notes application is somewhat misleading, in that the notes can be quite sophisticated. Plain text, outline mode, and audio notes can all be maintained. The Notes application accepts stationery (more on that below) which permits specialized format notes as well.
The MP2000 will ship with a portion of Newton Works, which in some configurations will provide both basic spreadsheet and word processor capabilities. The spreadsheet is straightforward and similar to every Mac spreadsheet I've ever used, although it does not have a macro capability, and the range of functions is limited. The spreadsheet can import/export from/to Excel. The word processor has simple formatting and fonts, rulers, cut, copy, and paste, etc. The general feel is that of relatively early MacWrite applications. The word processing module does not permit stylus entry, which I find surprising. Even though sustained data entry would not be done by stylus, editing lends itself nicely to pen based input. I think this is one of the few design decisions with which I strongly disagree.
Communications applications include an e-mail client and NetHopper, a web browser. The e-mail client works directly with an application called In-Out Box, a manager for all communications and connectivity functions. Dial up is automatic when either the email client or the browser are activated. The Net browser was text and/or image based. Unfortunately, the unit froze when I was in image mode. Some of the pages I hit looked very odd; I think there is a development opportunity here that I will get to shortly. The e-mail client treats messages as notes, and worked well. Attachments are handled properly, although one would probably apply a size filter rule. The rules editor for the email client was rudimentary and must be improved substantially.
Developing Newton Applications
Custom solution applications and shrink wrapped programs with broad appeal can be developed for deployment on this platform. The Newton Toolkit is the primary means of application development on this platform. This IDE is a combination text editor, graphical GUI builder, and NewtonScript compiler engineered by Apple Computer. There is a Newton Basic software package that I did not review. I did, however, visit their web site and was impressed with what appeared to be a committed company and a vigorous user presence. Given the structure of the Newton operating system and the programming interface, however, my bias (admittedly sight unseen) would be to use the Newton Toolkit for commercial development. (Writing as an editor for a moment, we hope to review NS Basic in the relatively near future.)
The Newton API, the Toolkit, and the programming language are all closely linked. It makes the most sense to start with the language, NewtonScript.
NewtonScript is a neat language. It is an object oriented, dynamic language that uses prototype inheritance (similarity based) and parent inheritance (container based). This means that your object can inherit messages and variables from both the prototype and the parent view. It has automatic garbage collection. It is an interpreted language (although small chunks of native code can be generated by the Toolkit for performance critical portions of the code) and the Newton supplies a virtual machine byte code interpreter. These characteristics make for an extraordinarily parsimonious language with respect to system resources, particularly memory.
The syntax is a comfortable mix of (Object) Pascal, C(++), and elements native to neither language. Instead of records and fields, one refers to frames and slots. Slots may be added and deleted dynamically. One of the characteristics of prototype inheritance that is particularly appropriate for a small memory machine is that an object descended from another object makes its own copy of a slot only if the value of that slot is different from that of the inherited prototype; otherwise it simply contains a reference to the inherited prototypes.
A good variety of built-in functions are available, as are the usual control constructions, although a traditional case/switch structures is conspicuous by its absence. (As an aside, it is possible to construct a neat dynamic switch with NewtonScript.) There is obviously a learning curve to NewtonScript, but I do not think it is onerous. Full mastery of the language would probably take more work, though, than it would appear on the surface because one's programming style would have to be altered to take maximum advantage of the subtleties of this dynamic language. There is a good language reference that comes with the ToolKit, and Programming for the Newton also has a good introduction to NewtonScript.
The Newton API
NewtonScript is the means of access to the Newton API. I have alluded to some of the features already: handwriting recognition, I/O in all its permutations, and soups. Also available is a wide variety of GUI design elements that are similar to those on any GUI based platform: views (windows), slips (dialog boxes), button, menus, list pickers, and the like. Using prototype inheritance, templates and prototypes for these objects all reside in ROM; all your program does is derive its elements from preexisting prototypes. A "plain vanilla" button, therefore, would override (and therefore allocate) only a few slots and methods and get the rest of its behavior from its prototype. This saves a considerable amount of memory when you start adding up objects in a program and is achieved easily with a dynamic language.
Given the size of the unit, the device offers a strong array of programming elements. Although the computer does not support color, fairly complex graphics can be displayed in 16 grayshade depth. A variety of buttons, views, lists and menus can be displayed. There are a number of Newton specific elements, such as a typewriter keyboard that is displayed on the screen and responds to taps on its "keyboard." The unique feature here is that this is a system service, and your program simply needs to ask for the keyboard, accept the input of the typing, and then dispose of the keyboard when done. No other management is required. Similarly, an analog clock and a map picker are available. I was impressed by how easy it would be to put together a visually pleasing, functional program without having to write code for my own design elements.
The Newton Toolkit
API meets NewtonScript in the Newton Toolkit. This application is available both on the MacOS and Windows, and is the development environment for the Newton. The Toolkit permits the graphical construction of the interface (creating layouts), development of templates (your own base classes), writing and editing the program in NewtonScript, and debugging on the target device (a Newton OS based machine) by means of a serial connector cable or an AppleTalk LAN.
Figure 1. This screen shows the editor window for the Newton Toolkit. The pane in the upper right hand corner shows scripts and members of the object being edited. The lower right hand pane shows a typical NewtonScript script. The upper left hand scrolling pane is the list of editable objects in the project. Behind the editor window and partially obscured is the view building window. It is possible to preview, but not emulate function of, an application.
Figure 2. This screen shows the tool palette for building views. After selecting an element, it is dragged to the view building window, where it is sized. The view is named and given unique functionality in the editor window by setting flags, writing scripts, etc. NTK takes care of many of the details of this process for you.
While I would need a more thorough understanding of the API and NewtonScript to get any serious work done, I certainly was able to learn quickly to dabble. Program construction takes place in several steps. One first picks a screen format and then places various views from a palette on the Newton screen. These views are the application view, various slips, and other window, control, and text elements that comprise the program. Each of these objects can be manipulated to fine tune behaviors, and then one may attach a series of scripts to the object. A push button, for example may have only a "do the press" script. A text field, on the other hand, may have a set default script, tab-in script, tab-out script, and an entry validation script.
All of these are edited in the NTK text editor. Since no single script will be enormously long, the editor is comparatively lightweight compared to the Symantec, Metrowerks, and BBEdit programs, but it gets the job done nicely. It is possible to create one's own prototypes and templates as well as use those supplied by the API. The testing of the program is on the Newton; there is no Newton emulator in the Toolkit. The major debugging tool is the Inspector, which allows comprehensive program control and monitoring during development. It is possible to place debugging functions in your code, and for the bravehearted, one can modify parts of the target application on the fly to test possible fixes.
Version 2.0 of the Newton OS includes NewtApp, an application shell which can speed development. Documentation carefully describes applications for which the shell is and is not appropriate. There are a number of specialized protos for NewtApp, and like the other protos, the NewtApp shell resides in ROM.
The development files are maintained separately on your desktop's hard drive; there is no single large project file. At compilation, a Newton package is created. The package consists of the various elements necessary to run your application; the package can be run by either downloading from a host computer or coming pre-installed on a PC card.
NTK includes the Newton BookMaker. This is a streamlined means of developing large blocks of data that can be retrieved for review by the user; as the name states, BookMaker helps you create electronic books. BookMaker's appeal for a developer lies in the ability to use Newton OS services in presenting the information to the user, and developing queries about information in the book.
Finally, NTK also supports the creation of stationery. These are essentially plug in modules that extend the functionality of a base application; the audio recording note, for example, is supported as a stationery item for the Notes application. This can be a useful route to development if all you want to do is create a specialized data entry form that is then filed, for example, as a note. It also allows others to extend your base application, which can be beneficial to your marketing as well.
Apple Computer supports the Newton with a developer's program and a developer's CD. I had access to the November, 1996 mailing, and was pleased with the mix of technical information, marketing data, and (most of all, for the neophyte) sample code.
It is difficult for me to envision insurmountable obstacles to development with this system. For a C++, ANSI C, or Pascal programmer, the worst I could see would be what I call the "French-Spanish" problem; the languages are sufficiently similar to create an illusion of mastery of both, but different enough to create syntax and grammar errors regularly as one flips back and forth. It may be difficult for some to learn to write parsimoniously. Finally, it may be difficult for many to understand how to exploit the Newton market effectively.
Why Develop for the Newton?
The hardware is terrific; the OS has been souped up; the development environment is a programmer's dream. Is the Newton an answer in search of a question?
To a degree, yes. Writing miniature desktop programs is not what Newton development is all about. This is a unique technology that has just experienced a major hardware/software upgrade. The person (or company) who spends a thousand dollars or more for a Newton is fulfilling a different need from a desktop or laptop user. Successful development will hinge on recognizing the paradigm of the hand-held user and understanding his or her needs. I don't pretend to understand fully the marketplace. However, I used the Newton as an end-user for a week and let a couple of savvy friends spend some time with it. To get a flavor of the broader market, I also bought an issue of Pen Computing, which is devoted to palmtop and stylus based computers and applications.
I was struck by opportunities in both horizontal and vertical markets. There were several recurring themes in both areas. The first, for want of a better term, is hyperportability. One example of this was my professor friend who latched onto the opportunity to take the MP2000 into the stacks; she could never take her laptop into this crowded area, set up, and comfortably take notes. This on-site data collection extends to business, industry, and scientific settings as well. The second theme was that of using the instrument in a physically or psychologically uncomfortable situation: that there would be situations where stylus entry of data was simply more comfortable than using a laptop. Our professor is uncomfortable taking notes on a laptop while a student is speaking because it is intrusive; a small unit with handwriting recognition is not nearly as threatening.
Everyone, myself included, was struck by the quality of the handwriting recognition. Programs that exploit this effectively will do well. However, the key word here is effectively. Stylus entry in the hands of a good typist is still slower than typing, but stylus input in an electronic form or as an input option will be welcome. I think that my previously mentioned concept of "bursts" of data entry is a good one to keep in mind for handwriting recognition.
Particularly in the vertical market area, keep in mind that the Newton has a very powerful microprocessor and NewtonScript has a wide variety of built in functions. Developers should remember that the Newton can do some serious data crunching once it has received the data.
Intelligent Assistance services should not be overlooked; the value of your application may be well enhanced by providing a good interface to Assistance and allowing the user to experience your program and the Newton working together to make the task easier.
Finally, the Newton is an information appliance. The ability of the Newton to network is critical; this will allow it to be a front end for many data engines. Similarly, the ability to accept PC cards promotes the concept of the Newton Book, a very appealing concept in both the vertical and horizontal markets. One caveat here is to remember that the Newton, even the MP2000, is not a great graphics machine. My project manager friend was lukewarm about the MP2000 because his world of flow charts and graphs was not well supported on the small (to him, tiny) monochrome screen.
So, at the risk of incredible hubris, I would like to make some specific observations about development opportunities in both the horizontal and vertical market world. I admit they are idiosyncratic and may be wrong; I mean to stimulate thought, discourse, and more complete evaluation of opportunities by people wiser than I. Take note of the fact that some of these niches already have residents, but there is certainly room for more good programs.
I think the keys here will be connectivity, better mousetraps, and the Newton as information appliance.
Connectivity: Many users will want to tear off a chunk of a project, take it on the road, work on it, and then reintegrate it into the desktop. The user will typically be using a shrink wrapped desktop application for his or her efforts writing, number crunching, etc. There will need to be applications on the Newton and translators on the Mac (or Windows) desktop machine that can take a Word document, for example, send it off to the Newton and return the new document to Word format with formatting intact. The bright idea formulated in seat 23A on the red eye back to Boston will have to be integrated into a desktop application; the ability to pour a Newton outline or Newton sketch into PowerPoint or Canvas would be welcome. An application to take a Newton audio recording and pass it through voice recognition software on a desktop machine begs to be written. Thus, connectivity is not simply good backup; it is the ability to seamlessly integrate information developed independently on the Newton into the appropriate desktop application.
Better mousetraps: The Newton ships with a number of productivity applications. A better version of a Notes application may sell it if its price point is good and it offers more than incremental benefit from the purchase. Developer, beware: you may hit a gold mine or the La Brea tar pits. My caveat notwithstanding, good Newton organizational software that connects with existing (or new) desktop organizational software will sell.
Information Appliance: The Newton has a future as a client of information servers. In this area, the horizontal market is defined as email and Web access. Applications that provide quality access to these basic services will be welcome. In particular, I was struck by the need for two desktop-Newton interactive applications. First, an email message should be able to be rejected by the Newton if it is not appropriate for the Newton. As an example, I may want to check my mail when I am away from my desktop computer. However, I do not want to download a message that has attached a 1 meg Mac executable. Second, the Newton is not a graphics machine and it has a small screen. Most of the web pages I hit were awful looking and hard to navigate on the MP2000. I would love to see clients and hosts able to query each other as to graphics capabilities, size of screen, etc. and direct the browser to a web page that looks and feels right on the client computer. Finally, I would like to see the Newton able to interface into some common local network messaging/email systems so that an ethernet equipped Newton could tap into the corporate mail system and be an effective client.
The key concepts here are remote data collection and processing, and information appliance. There are many scenarios in business, sales, inventory management, and scientific investigation where a device such as a Newton MP2000 could be extremely useful. I showed the unit to someone who is in soils analysis, and he immediately saw utility for on-site collection of information. I can envision a route driver collecting inventory information at a convenience store, linking to the home office computer, registering the driver's sale to the store, and generating an invoice for the store. The opportunities are endless.
With respect to information appliance function, I think the Newton Book concept will be very appealing in technical and scientific fields. Medical information begs for Book format. In-house technical manuals and textual databases also are appealing targets for development. Finally, with the MP2000's ability to connect to a network, the capability to act as a smart (or dumb, as the case may be) terminal may be of significant value.
Opportunities are Endless
I hope that I have justified my enthusiasm. There is a natural affinity of Newtons for MacOS computers. This is an opportunity not only to develop successfully for the Newton, it is an opportunity to encourage connection to our favorite desktop.
The clever language, the powerful hardware platform, and the friendly development environment should support your efforts well. There is an untapped, undefined market out there. Strike while the iron is hot!
Products Reviewed in this Article
Newton MessagePad 2000, Apple Computer. Available first quarter 1997.
Multiple configurations will be available; check retailers.
Newton Toolkit, version 1.6.3. Apple Computer, 1996. Available through APDA and Developer's Depot.
The IDE will shortly be completing an upgrade to support fully the MP2000; NTK 1.6.3 still had some outstanding debugging issues which should be resolved by the time this article is in print.
Newton Programmer's Guide, Apple Computer, 1996. Addison Wesley Publishing Company. ISBN 0-201-47947-8.
The definitive guide to the OS and API.
Programming for the Newton Using Macintosh, 2nd Edition. Julie McKeehan and Neil Rhodes. Academic Press, 1996. ISBN 0-12-484832-X.
This is a terrific book for getting started. It is clear, clever, and concise. Check out the CD!
Newton Developer CD (#11) Apple Computer, November, 1996.
One piece of a variety of support programs for the Newton; any serious developer will subscribe.
http://devworld.apple.com/dev/newton/tools/ntk.html You can download a demo version of the Newton Toolkit, without documentation, from here; further up the directory is the Apple Developer World Newton site ( /dev/newton).
http://www.newton.apple.com/newton/newton.html Apple's Newton Home Page.
http://www.newton.apple.com/newton/othersites.html Links to most Newton web sites. Lots of good links here.
http://www.amug.org/amug/sigs/newton/amug_newton.html Granddaddy of the Newton users groups.
http://www.nsbasic.com/ Newton Basic Home Page.