4 ms·
Smalltalk is a programming language (+runtime, GUI, development environment) that originated at the Xerox PARC research center in the early 1970s on the Alto co
by johndoe0815 4y ago
Smalltalk is a programming language (+runtime, GUI, development environment) that originated at the Xerox PARC research center in the early 1970s on the Alto computer. Smalltalk was one of the first object-oriented systems (along with the Norwegian Simula system), it differs from Simula/C++-style OO due to using dynamic dispatch (late binding), i.e., selecting which implementation of a polymorphic operation (method or function) to call at run time instead of at compile time.
It had significant influence on the development of the personal computer. Projects at Apple (Lisa/Mac) and Microsoft (Windows) were influenced by the Smalltalk GUI and Smalltalk was also the basis for Objective C, the language behind the NeXT/MacOS/iOS UI frameworks - now on the way to be supplanted by Swift.
More details, as usual, on Wikipedia: https://en.wikipedia.org/wiki/Smalltalk https://en.wikipedia.org/wiki/Smalltalk
- JKCalhoun 4y agoI knew of Smalltalk but was unaware it was 1) byte code rather than compiled and 2) it influences Objective C. Very cool. Seeing also Pascal, Modula, Forth, Prolog... The 70's were an innovative era for programming languages. https://en.wikipedia.org/wiki/Timeline_of_programming_languages#1970s https://en.wikipedia.org/wiki/Timeline_of_programming_langua...
- pinewurst 4y agoIt also introduced (in its later ParcPlace form) the idea of JITing interpretive languages.
- pjmlp 4y agoAll Xerox PARC environments (Interlisp, Smalltalk, Mesa, Cedar) were bytecode based, because their CISC CPUs were microcoded. So the first thing a machine would do on boot would be to load the right microcode into the CPU, and then those bytecodes were effectively the Assembly language for the CPU. They were also the genesis of the first JIT compilers, and the OpenJDK Hotspot traces back its heritage to StrongTalk JIT compiler.
- infinite8s 4y agoOne slight difference from current microcoded CPUs is that the end user could implement their own microcode. So each of the systems you mention above implemented their VMs directly in microcode, and as a result tye bytecode became the instruction set for this 'virtual' machine.
- bogomipz 4y ago>"Smalltalk is a programming language (+runtime, GUI, development environment) that originated at the Xerox PARC research center in the early 1970s ..." I'm curious was it used as a standalone OO language outside of GUI development as well or was its primary focus for building graphical UIs?
- johndoe0815 4y agoThere are definitely applications of Smalltalk outside of GUI development, e.g. in robotics: http://www.esug.org/wiki/pier/Robotics http://www.esug.org/wiki/pier/Robotics One example is NXTalk, a Smalltalk system (with its own VM implementation that differs from Smalltalk-80) developed in Robert Hirschfeld's research group (hi Michael! :)) at HPI. NXTalk runs on second generation (ARM7-based) Lego Mindstorms robots in 64kB RAM and 256kB Flash: https://www.hpi.uni-potsdam.de/hirschfeld/projects/nxtalk/index.html https://www.hpi.uni-potsdam.de/hirschfeld/projects/nxtalk/in... There's also a related discussion about Smalltalk use cases at c2.com: https://wiki.c2.com/?WhatsBeenDoneInSmalltalk https://wiki.c2.com/?WhatsBeenDoneInSmalltalk