Smalltalk [http://www.smalltalk.org/] is a pure object environment and programming language. Read the link to learn more. Smalltalk is the oldest mature pure object-oriented language. It is brilliant, simple, and has only a few keywords. It is similar t o Tcl in that the control structures are not part of language. Almost all good things known in new hype-languages come from Smalltalk. That is * virtual machine * garbage collector * reflection (introspection) * dynamic object system (obj ect can change the class, metaclasses) * Integrated Development Environment Also many popular program-techniques were developed under Smalltalk first. That is [Extreme Programming] (with Unit-tests), [Refactor]ing Tools, Visual Programming, [MVC] ([M odel / View / Controller]). Smalltalk has also well designed standard libraries (Collections, Process Control, I/O). Squeak [http://squeak.org] is a popular Smalltalk implementation with an active community, and several interesting features. If you wan t to play with Smalltalk, Squeak is a good start. - [TP], whose first OO language was Smalltalk. Why is not Smalltalk the first most popular object-oriented program language? The reasons could be: * for 30 years computers were too slow for virtu al m achines. * the first smalltalk systems was too expensive for normal folk. * smalltalk was too closed (not open) to another systems or languages. * has no types. Some managers belive that typed-languages can save them from ignorance. * it is too mature for making big money with consulting, i.e., it is on the trailing curve of the hype bandwagon. * ''[jcw] adds another - more technical - reason: deployment can be tricky...'' [XOTcl] is an object-oriented extension for Tcl that has some characteristics from Smalltalk. It is also dynamic and has metaclasses and also have the same feeling. [XOTclIDE] provide Smalltalk like IDE (Squeak, Version Control as in Envy) ---- Talking of syntax, here's a snippet from [http://www.cosc.canterbu ry.ac.nz/~wolfgang/cosc205/smalltalk1.html] - double-quoted strings are just comments: 7 "a number" $z "a character" 'colourless ideas sleep furiously' "a string" #(#tom #dick #harry) "an array of 3 components" #(# one 'should shower at least' 3 'times a week') # before a string turns it into a symbol (like quote in [LISP]); #(...) denotes what we'd call a [list]. [RS] can't help finding Tcl simpler, and better-looking... [Lars H]: Does the '''#''' work like '''/''' in [Postscript]? In that language, '''/tom''' is just a name whereas '''tom''' is a command. Anyhow I agree Tcl looks better. - [RS]: Yes, #tom is the symbol tom, 'tom' is a string constant, and tom either variable or method/keyword. ---- [[ [Category Language] | [Category Object Orientation] ]]