NewtonScript is an object-oriented programming language developed by Walter Smith for Apple for the Newton OS running on their MessagePad & eMate hardware. It borrows concepts from the Smalltalk, LISP, and Self programming languages with special consideration for a low memory footprint (esp. differential inheritance). In 2003 a NewtonScript interpreter, NEWT/0 was developed by Makoto Nukui allowing for its use on other platforms.
For assistance with programming in the NewtonScript language beyond the documentation provided here, it is suggested that you join the newtonscript-lang.slack.com Slack team (get an invite), join the #newtonscript channel on irc.freenode.net, tag a question with the 'newtonscript' tag on stackoverflow.com, or post to the NewtonTalk mailing list.
An alternate button bar, hierarchical menu, and scripting system (using NewtonScript) for Newton OS. Source available on GitHub.
A cross-platform IDE for Newton OS software development. Built on NEWT/0.
A Newton OS 2.1 emulator. It includes a “Relativity” feature that allows NewtonScript to call native methods from the parent OS from within the Newton OS.
A Newton OS Newton debugging tool modeled after the Newton Toolkit Inspector.
A multi-platform NewtonScript interpreter. Matthias Melcher has also created a modified version of NEWT/0 that compiles on 64-bit architectures.
A cross-platform Vim syntax highlighter for the NewtonScript language.
An environment for developing applications using NewtonScript and creating packages natively on a Newton OS device.
A application which can send NewtonScript commands and functions to a Newton device and then retrieve the results using a desktop or laptop computer.
An Xcode language specicification (syntax highlighter) for the NewtonScript language.
A SubEthaEdit and Coda Mode (syntax highlighter) for the NewtonScript language.
A BBEdit and TextWrangler Codeless Language Module (syntax highlighter) for the NewtonScript language.
A native implementation of the NTK Inspector window for Mac OS X.
A web server for Newton OS which can be scripted to generate dynamic content using NewtonScript.
Apple’s original IDE for Newton OS software development.
A modern replacement for Apple’s original Newton Toolkit.
A portable NewtonScript bytecode virtual machine.
An implementation of NewtonScript written in C++.
A utility for exploring the Soup contained within Newton ROM images. It can preview code, strings, pictures, sounds, and more.
A command line NewtonScript compiler and packager. Built on NEWT/0.
A live NewtonScript object browser, editor, and debugging tool.
Apple's official MacInTalk Text-to-Speech extension for Newton OS.
A port of the mbed TLS SSL/TLS library to NewtonOS, allowing for secure network communications.
Apple's Messaging Enabler "Provide[s] high-level support for a wide variety of messaging devices. Messaging devices are both one-way and two-way pagers, or more generally, any device that can receive (and maybe send) short, usually less than 5 KB, wireless messages."
An HTTP library for Newton OS. Source available on SourceForge.
A simple xUnit unit testing framework for the NewtonScript language (currently supporting NEWT/0) by Morgan Aldridge.
A port of the tox XML/HTML tokenizer.
A partial port of the zlib compression library, based on the version 1.1.4 release.
A paper explaining conventions for simulating class-based programming in NewtonScript, which is a prototype-based language, from the designer of the language.
A walk-through on setting up a Newton Toolkit development environment using Basilisk II and Einstein emulators.
Apple’s quarterly technical journal published from 1990-1997, before being pulled into MacTech magazine as a regular column. The following issues contain Newton/NewtonScript-specific articles:
Michael Swaine explored the Newton as a platform, NewtonScript as a programming language, and NTK as a development environment in 1994 & 1995 for his “Programming Paradigms” column in Dr. Dobb’s magazine.
Note: Free registration required to view more than two articles.
“Anecdotes about the development of the Newton, the world's first PDA.” The following articles cover NewtonScript:
An explanation of the frames implementation in GoLisp, including comparison to Self & NewtonScript, by which it was inspired.
Unofficial documentation of the inner workings of Newton OS as gleaned using the "Hammer" low level debugger. The following sections are NewtonScript-specific:
An example of developing with the MacInTalk Text-to-Speech extension.
An explanation of the embedded commands available in the MacInTalk Text-to-Speech extension.
Additional clarification, documentation, and examples for Newton OS 2.x development, including a section devoted to NewtonScript (though much of the rest of the documentation is relevant to developing in NewtonScript anyway). Available as a single page containing all content or multiple pages by section.
Official overview of the Newton application architecture, including the NewtonScript language, view system, object store, and communications system.
Official documentation on creating digital books and application help for the Newton, including the use of NewtonScript to customize book interaction, display, and behavior.
Unofficial documentation of the inner workings of Newton OS. The following articles are NewtonScript-specific:
Official documentation of Newton data formats and protocols.
Unofficial corrections to errors found in Apple's Newton Formats documentation.
Official documentation of changes and additions in Newton OS 2.1, including: NewtWorks, keyboard enhancements, grayscale imaging, graphics shapes, sound, dial-in networks, IrDA communications tool, and the eMate 300 multi-user environment.
A preliminary draft version of Chapter 11: Miscellaneous that appears to have been intended to be added to the Newton OS 2.1 Engineering Documents, covering additions in Newton OS 2.1 that weren't, "[L]engthy enough to warrant their own chapters."
A searchable database of Newton OS error codes gleaned from the NTK for Windows v1.6.1 help file, NIE 2.0 API documentation, and Lantern DDK documentation.
Official documentation for the Newton OS 2.0 application programming interfaces, providing an overview and conceptual information. See the Newton Programmer’s Reference for detailed reference documentation of data structures, functions, constants, and error codes.
Official documentation covering additions and changes in the Newton OS 2.1 application programming interfaces.
Official documentation of the Newton OS 2.0 protos, methods, functions, data structures, and error codes. A companion to the Newton Programmer’s Guide.
Documentation of the NewtonScript bytecode as compiled through observation.
An overview of the NewtonScript language presented at the 2008 Lightweight Language conference in Toyko, Japan.
Official introduction & reference material for the NewtonScript language under Newton OS 2.x. You’ll probably want to start here.
An unofficial Japanese translation of Apple’s NewtonScript Programming Language reference.
Apple’s Newton-specific technical journal, published six times per year from 1995-1997. The content is 70% development and 30% marketing.
Official documentation of file formats used by NTK 1.6.x for Windows and Macintosh, specifically Project files, Layout files, and native code module files.
Tips & tricks for NTK, esp. the Windows version.
Official documentation of Newton OS 2.0 user interface and how to optimize software for it, including the whys and hows.
This document covers issues related to embedding NewtonScript syntax in HTML and embedding HTML in NewtonScript.
An introduction to the paper Self: The Power of Simplicity, by Ungar and Smith, which describes the aspects of NewtonScript which were inspired by the SELF programming language.
An overview on creating and interacting with soups using NewtonScript.
An overview of NewtonScript language, illustrating the differences between object oriented programming paradigms and relating how some NewtonScript features have their own particular programatic flavor.
A supplement to Newton User Interface Guidelines which specifically covers the keyboard enhancements in Newton OS 2.1.
An explanation of how the Newton OS user interface was implemented using a prototype-based language (NewtonScript) and the advantages it has over class-based languages.
Primarily discusses writing, linking, and packaging assembly code for Newton OS, but also covers communicating between assembly code and NewtonScript code.
Sample NTK & MPW project for Newton OS 2.1 to control the internal serial port, incl. toggling channels and GPIO.
Official sample Mac OS & Windows NTK projects for Newton OS 2.x.
In 2004, Rainer Joswig spoke with Mikel Evins, a former member of Apple’s Newton group, about an early development version of Newton OS written in Lisp.