|
NewtonScript is a prototype based programming language created to write programs for the Apple Newton. It is heavily influenced by the Self computer language, but extended to be more suited to the personal digital assistant's needs. A programming paradigm is a paradigmatic style of programming (compare with a methodology, which is a paradigmatic style of doing software engineering). ...
Prototype-based programming is a style of object-oriented programming in which classes are not present, and behaviour reuse (known as inheritance in class-based languages) is accomplished through a process of cloning existing objects which serve as prototypes. ...
1993 (MCMXCIII) was a common year starting on Friday of the Gregorian calendar and marked the Beginning of the International Decade to Combat Racism and Racial Discrimination (1993-2003). ...
A software developer is a person who is concerned with one or more facets of the software development process, a somewhat broader scope of computer programming or a specialty of project managing. ...
Apple Inc. ...
In computer science, a type system defines how a programming language classifies values and expressions into types, how it can manipulate those types and how they interact. ...
In computer science, a type system defines how a programming language classifies values and expressions into types, how it can manipulate those types and how they interact. ...
Look up Implementation in Wiktionary, the free dictionary. ...
This article or section does not cite its references or sources. ...
The Dylan programming language (pronounced , like the name) is functional, object-oriented, reflective and dynamic. ...
Wikibooks Programming has more about this subject: Io Io is a pure object-oriented programming language inspired by Smalltalk, Self, Lua, Lisp and NewtonScript. ...
Prototype-based programming is a style of object-oriented programming in which classes are not present, and inheritance is accomplished by cloning existing objects which serve as prototypes for the new ones. ...
A programming language is an artificial language that can be used to control the behavior of a machine, particularly a computer. ...
The Apple Newton MessagePad The Apple Newton, or simply Newton, is an early line of personal digital assistants developed, manufactured and marketed by Apple Computer (now Apple Inc. ...
Self is an object-oriented programming language based on the concept of prototypes. ...
Personal digital assistants (PDAs) are handheld computers that were originally designed as personal organizers, but became much more versatile over the years. ...
History
Traditional computers, at least in the desktop role, have two modes; "on" and "off". When moving from one mode to the other the state of the machine is lost from memory, and requires a sometimes lengthy "boot" process to return the machine to the "on" state. This does not suffice for a PDA type device where the user expects the machine to be available almost instantly for taking down quick notes. Yet a machine cannot be left "on" for any length of time either, as this would drain the battery too much to make it useful for carrying around. In the Newton the system had two states that were more like "on" and "sleeping". When moving to the sleeping state the memory was not lost and instead the system simply stopped working on the contents of memory, which allowed for many of the chips inside to be turned off. This greatly extended battery life, yet still allowed the machine to turn back on almost instantly. With the main memory always being kept alive, the system becomes much more amenable to use as a persistent object store. Many object-oriented systems, like Smalltalk, are based on a continually running memory image (known as a snapshot), so using the Newton with an object-oriented system seemed quite natural. For other uses, see Small Talk (disambiguation). ...
The developers then began looking for languages to use on the system. The Newton was originially going to be programmed in the new Dylan programming language, but a lengthy series of delays combined with the "Not-Invented-Here syndrome" eventually led to it being abandoned. The team had looked at Self and were very interested in it, but at the time Self was not yet ready for real-world use. The Dylan programming language (pronounced , like the name) is functional, object-oriented, reflective and dynamic. ...
Not Invented Here (NIH) is a pejorative term used to describe a persistent corporate or institutional culture that either intentionally or unintentionally avoids using previously performed research or knowledge because the research and developed knowledge was not originally executed in-house. ...
Self is an object-oriented programming language based on the concept of prototypes. ...
The result was a modified version of Self known as NewtonScript. Written primarily by Walter Smith, the language was a part of the Newton Toolkit, introduced along with the Newton on August 1993. One of the advantages of NewtonScript's prototype based inheritance was reduced memory usage, a key consideration in the 128KB 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. For example, a developer might create a new button instance. If the button uses the default font, accessing its font "slot" (i.e., property or member variable) will return a value that is actually stored in ROM; the button instance in RAM does not have a value in its own font slot, so the prototype inheritance chain is followed until a value is found. If the developer then changes the button's font, setting its font slot to a new value will override the prototype; this override value is stored in RAM. NewtonScript's "differential inheritance" therefore made efficient use of the Newton's expensive flash RAM by storing the bulk of the default data and code in the PDA's cheaper and much larger ROM. Differential Inheritance is a common inheritance model used by prototype-based programming languages such as Io and NewtonScript. ...
A USB flash drive. ...
Read-only memory (often referred to as its acronym ROM) is a class of storage media used in computers and other electronic devices. ...
NewtonScript vs. Self Changes were primarily aimed at three "problems" in Self. One is that the typical Self snapshot requires 32MB of RAM to run in, whereas the Newton had only 128kB internally to use for the system. This required some serious paring down of the engine to make it fit and still have room for applications. Random Access Memory (usually known by its acronym, RAM) is a type of data storage used in computers. ...
Another issue was performance. Since the language would be used for the entire system, as opposed to just running on an existing operating system, it needed to run as fast as possible. Finally the "inheritance" system in the normal Self engine had a single parent object, whereas GUIs typically have two — one for the objects and another for the GUI layout that is typically handled via the addition of a slot in some sort of GUI-hierarchy object (like View). GUI can refer to the following: GUI is short for graphical user interface, a term used to describe a type of interface in computing. ...
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 the Newton programs to be developed on a Macintosh running the Toolkit, where the programs would be compiled and then downloaded to the Newton for running. However this also led to what is generally considered the most serious flaw of the system. Since the code was written on one platform and run on another, it was practically impossible to debug. Better debugging code in the Newton engine would have helped offset this problem to some degree, but the limited memory made this difficult. Instead the developer would get a vague indication along with a hex code, without any ability to match it to lines in the original code.
NewtonScript vs. Io NewtonScript is also one of the conceptual ancestors (together with Smalltalk, Self, Act1, Lisp and Lua) of a recently created general-purpose programming language called Io. NewtonScript employs an inheritance model called differential inheritance where only the differences with its parent prototype are stored in a list of properties (known as slots in Io). This is a very useful feature for resource-constrained systems. The Io language implements the same differential inheritance model. Lisp is a family of computer programming languages with a long history and a distinctive fully-parenthesized syntax. ...
In computing, the Lua (pronounced LOO-ah, or in IPA) programming language is a lightweight, reflective, imperative and procedural language, designed as a scripting language with extensible semantics as a primary goal. ...
Io is a pure object-oriented programming language inspired by Smalltalk, Self, Lisp and NewtonScript. ...
Differential Inheritance is a common inheritance model used by prototype-based programming languages such as Io and NewtonScript. ...
External links - SELF and the Origins of NewtonScript, by Walter Smith, 1994.
- Using a Prototype-based Language for User Interface: The Newton Project’s Experience (PDF), by Walter Smith, 1995.
- Class-based NewtonScript Programming by Walter Smith, 1993.
- Additional Newton-related papers by Walter Smith.
- The NewtonScript Programming Language (archive.org cache; original link dead as of 10/15/04.)
|