Index: doc/next-tutorial.html =================================================================== diff -u -r1992fee1fc7ab0fb3e9e81f501881edc9605f2da -r2718dfea770b0e5cb0d25b4e6ae679b4ebcddec5 --- doc/next-tutorial.html (.../next-tutorial.html) (revision 1992fee1fc7ab0fb3e9e81f501881edc9605f2da) +++ doc/next-tutorial.html (.../next-tutorial.html) (revision 2718dfea770b0e5cb0d25b4e6ae679b4ebcddec5) @@ -731,28 +731,29 @@

This document provides a tutorial for the Next Scripting Language NX.

-

The Next Scripting Language (NX) is a highly flexible, Tcl -[Ousterhout 1990] based object oriented scripting language. It is a -successor of XOTcl 1 [Neumann and Zdun 2000a] and is based on 10 +

The Next Scripting Language (NX) is a highly flexible object oriented +scripting language based on Tcl [Ousterhout 1990]. NX is a successor +of XOTcl 1 [Neumann and Zdun 2000a] and was developed based on 10 years of experience with XOTcl in projects containing several hundred thousand lines of code. While XOTcl was the first language designed to provide language support for design patterns, the focus of the Next -Scripting Framework and NX are on combining this with Language +Scripting Framework and NX is on combining this with Language Oriented Programming. In many respects, NX was designed to ease the -learning of the language by novices (by using a more mainstream +learning of the language for novices (by using a more mainstream terminology, higher orthogonality of the methods, less predefined methods), to improve maintainability (remove sources of common errors) -and to encourage developer to write better structured programs (to +and to encourage developers to write better structured programs (to provide interfaces) especially for large projects, where many developers are involved.

The Next Scripting Language is based on the Next Scripting Framework (NSF) which was developed based on the notion of language oriented programming. The Next Scripting Frameworks provides C-level support for defining and hosting multiple object systems in a single Tcl interpreter. The name of the Next Scripting Framework is derived from -the universal method combinator "next" introduced in XOTcl that allows -for method combination with filters, per-object and transitive -per-class mixin classes, per-object methods and multiple inheritance.

+the universal method combinator "next", which was introduced in XOTcl. +The combinator "next" serves as a single instrument for method +combination with filters, per-object and transitive per-class mixin +classes, per-object methods and multiple inheritance.

The definition of NX is fully scripted (e.g. defined in nx.tcl). The Next Scripting Framework is shipped with three language definitions, containing NX and XOTcl 2. Most of the existing XOTcl 1 @@ -785,7 +786,7 @@ programming. The the Next Scripting Framework supports multiple object systems concurrently. Effectively, every object system has different base classes for creating objects and classes. Therefore, -these object systems can have different different interfaces and can +these object systems can have different interfaces and can follow different naming conventions for built-in methods. Currently, the Next Scripting Framework is packaged with three object systems: NX, XOTcl 2.0, and TclCool (the language introduced by TIP#279).

@@ -801,14 +802,14 @@ knowledge about Tcl. In the following sections we introduce NX by examples. In later sections we introduce the more advanced concepts of the language. Conceptually, most of the addressed concepts are very -similar in XOTcl. Concerning the differences between NX and XOTcl, +similar to XOTcl. Concerning the differences between NX and XOTcl, please refer to the "Migration Guide for the Next Scripting Language".

2. Introductory Overview Example: Stack

-

A classical programming example is an implementation of a stack, which +

A classical programming example is the implementation of a stack, which is most likely familiar to many readers from many introductory programming courses. A stack is a last-in first-out data structure which is manipulated via operations like push (add something to the @@ -823,7 +824,7 @@

In our first example, we define a class named Stack with the methods push and pop. When an instance of the stack is created (e.g. a concrete stack s1) the stack will contain an instance variable named -things initialized with the an empty list.

+things, initialized with the an empty list.

Listing 2: Class Stack