*** Welcome to piglix ***

NewtonScript

NewtonScript
Paradigm Prototype Object-oriented
Designed by Walter Smith
Developer Apple Computer
First appeared 1993; 24 years ago (1993)
Typing discipline Dynamic
Influenced by
Self, Dylan
Influenced
Io

NewtonScript is a prototype-based programming language created to write programs for the Newton platform. It is heavily influenced by the Self programming language, but modified to be more suited to needs of mobile and embedded devices.

On August 3, 1993, Apple unveiled Apple Newton MessagePad. The device had 640 KB RAM and 4 MB ROM, running on 20 MHz Acorn RISC machine.

The main intention behind Newton project, was to develop a device capable of replacing a computer while being portable.With limited battery and memory, the developers were looking for programming language capable of meeting these challenges.

The developers looked at C++ language but realized that it lacked flexibility. They started focusing on prototype based languages and were impressed with Smalltalk and Self. Concurrently Apple was developing another dynamic programming language called Dylan, which was a strong candidate for Newton platform.

However, both Self and Dylan were dropped out of consideration, as they were both in nascent stage for proper integration.

Instead, a team headed by Walter R Smith, developed a new language called as NewtonScript. it was influenced by dynamic language like Smalltalk and prototype model based like Self.

Although NewtonScript was heavily influenced by Self, there were some differences in both the languages.

Differences arose due to three perceived problems with Self.

The syntax was also modified to allow a more text-based programming style, as opposed to Self's widespread use of a GUI environment for programming. This allowed Newton programs to be developed on a computer running the Toolkit, where the programs would be compiled and then downloaded to a Newton device for running.

One of the advantages of NewtonScript's prototype based inheritance was reduced memory usage, a key consideration in the 128 KB Newton. The prototype of a GUI object could actually be stored in ROM, so there was no need to copy default data or functions into working memory.

Unlike class based languages, where creation of an object involves memory being allocated to all of its attributes, NewtonScripts' use of prototype inheritance allowed it to allocated memory to few fields like _proto and _parent instead of creating whole new object. Here, _proto and _parent signifies whether the object is using prototype or parent inheritance.


...
Wikipedia

...