Introduction
Introduction Statistics Contact Development Disclaimer Help
2018-03-11
__O_n__s_m_a_l_l_t_a_l_k____________________________________________
always have felt being left out of the OO programming community.
ll these pattern talks and the Java/C++ code I have to deal with at
ork made me question this programming paradigm. But I wanted to dig
little deeper and see what this is all about. So around last
ovember I started learning one of the first OO languages around:
malltalk[0]. Smalltalk is a nice little language with such little
yntax, that it fits on a postcard[1] (text preview here[10]). The
ain communication mechanism in this nice language is message passing
etween objects. Everything is an object and responds to messages.
o you get life introspection into every aspect of the system. Also
he code is executed inside a VM (one of the first around!) and so
ou can alter the system *life* and debug and change an application
hile it is running!
esides the simple language code smalltalk consists of two additional
arts: An extensive class library providing most of the functionality
hat others would count to a language itself: compiler, interpreter,
ebugger...
nd the other part is the *graphical* UI environment. All of these
un inside a VM image, which means that you can change something save
he image quit and come back later to find your envrionment just as
ou have left it. Yes smalltalk is one of these strange image base
anguages, just like the lisp tradition. A collection of these UI,
lass and language parts is called a smalltalk system. You may think
f it as a 'distribution' in the linux distro sense.
rom the 'original' smalltalk there's now a common VM implementation
hich hosts several different smalltalk systems:
pensmalltalk-vm[2]. On this VM there runs pharo[3], which
s the most complete and streamlined systems out there, squeak[4] which
s the 'original' smalltalk system comming from Xerox PARC
ewspeak which is a totally new langugage with an emphasis on
ecurity and mobile computing and my favourite: Cuis[5].
hile pharo is the most 'enterprise ready' of the whole bunch, I love
uis for its goal of being minimalistic and simple. If you want to
nderstand a smalltalk system, I'd recommend to start with cuis. It
as just ~500 classes, whereas pharo clocks in with 1500+...
f you don't care about graphical environments then there's also
NU smalltalk[6] and 'a little smalltalk'[7] both are independent
mplementations that come with their own VM and instruction set.
ost of the smalltalk books are legally available for download. I
ecommend the 'blue book'[8] written by Adele Goldberg, one of the
irst smalltalk instructors and programmers. She has also managed the
elease of the first smalltalk and designed a lot of the system
arts. The pharo book site[9] contains lots of nice stuff to read.
may tell you about my work with smalltalk in another post :)
hat I like about it so far: The codebrowser, live debugging and
rowsability. The codebrowser is the essential development tool on
malltalk. It allows editing and browsing of the classes and methods
n a system. It allows quickly searching and finding
enders/receivers of a message and is therefore the main tool to
avigate through the source code.
he debugger is invoked upon an unhandled error or user request.
ince smalltalk is run in a VM it allows you to change the faulty
ode, and rerun the message as if the error never has happened. The
hange you made is compiled and made persistent in the image.
nd since all objects adhere to an introspection protocol one can
nspect all aspects of the system life. Want to know what a
articular button does? Just click on it in a special way and open up
hat class's browser window.
s you can see this changes the way in one edits code. Also pharo and
queak contain one of the first refactoring browsers written. Want to
hange some aspect of a method? Just tell the editor and it will take
are that the whole system is consistent.
will leave you with this incomplete view for now and encourage you
o do your own exploring.
appy hacking!
__References________________________________________________________
0]: https://en.wikipedia.org/wiki/Smalltalk
1]: gopher://vernunftzentrum.de/g/ckeen/media/smalltalk-postcard.gif
2]: http://opensmalltalk.org/
3]: https://pharo.org/
4]: http://squeak.org/
5]: http://www.cuis-smalltalk.org/
6]: http://smalltalk.gnu.org/
7]: https://en.wikipedia.org/wiki/Little_Smalltalk
8]: http://sdmeta.gforge.inria.fr/FreeBooks/BlueBook/
9]: http://stephane.ducasse.free.fr/FreeBooks.html
10]: gopher://vernunftzentrum.de/0/ckeen/media/smalltalk-postcard.txt
You are viewing proxied material from vernunftzentrum.de. The copyright of proxied material belongs to its original authors. Any comments or complaints in relation to proxied material should be directed to the original authors of the content concerned. Please see the disclaimer for more details.