^ Dirk Deridder - Smalltalk Corner ^^^^ | [[about:members:dirkderidder|Home]] | [[about:members:dirkderidder:newsitems|News]] ^ [[about:members:dirkderidder:research|Research]] | [[about:members:dirkderidder:trivia|Trivia]] | ====== Dirk Deridder - Smalltalk Corner ====== {{about:members:dirkderidder:byte_smalltalk.jpeg?90 }} I use Smalltalk as a medium to do my research ([[http://ssel.vub.ac.be/c3|C3 website]]). This was not an ad hoc choice. I have looked into several other languages, but in the end Smalltalk was the one which was the most suited for the kind of research I am involved in. Smalltalk is a pure object-oriented, dynamically typed, reflective programming language. Even though it is a class-based language, the statement ‘everything is an object’ still holds through the existence of metaclasses. Classes, methods, and user interface specifications (to name a few) are also accessible as objects. As a result it is possible to create a class for example by sending a message to the class Class. This is similar to the way you would create an instance of a Person class. One of the inherent properties of the Smalltalk philosophy is that everything in the environment can be adapted (this is taken to the extreme in [[http://www.squeak.org/|Squeak]] and [[http://www.opencroquet.org/|Croquet]]). This means that you can alter the behavior of the language-core or the development environment from within Smalltalk itself. This is one of the main reasons why it is a great medium to perform research that is strongly biased towards programming language and software engineering. Another important aspect of Smalltalk is that you can inspect and manipulate objects in real time. Together with the fact that you can alter the language-core as if it was a normal Smalltalk program, this results in a highly intuitive and interactive way of programming which is especially suited for agile development. If you want to get to know Smalltalk, you should take a look at the following great resources: * [[http://www.smalltalk.be/|Smalltalk in Belgium]]: the entry point for getting in touch with Smalltalkers in Belgium. * [[http://www.iam.unibe.ch/~ducasse/FreeBooks.html|Free Smalltalk books]]: a great collection of Smalltalk books you can freely download. * [[http://www.esug.org/|European Smalltalk User Group]]: if Belgium is too small for you, get in touch with Smalltalkers in Europe. * [[http://www.cincomsmalltalk.com/blog/blogView?searchCategory=screencast|Smalltalk Daily Screencasts]]: a collection of short videos on how to get things done in Smalltalk by James Robertson. * [[http://planet.smalltalk.org/|Planet Smalltalk]]: a Smalltalk meta-blog if you don't worry about information overload. An interesting read is [[http://www.smalltalk.org/downloads/papers/SmalltalkHistoryHOPL.pdf|The Early History of Smalltalk]] by [[http://en.wikipedia.org/wiki/Alan_Kay|Alan Kay]], which provides some historical background. The particular Smalltalk environment I currently use is [[http://www.cincomsmalltalk.com/|VisualWorks Smalltalk]] (free non-commercial version available for download). ===== Some (VisualWorks) Smalltalk How-To's ===== Here are a number of how-to's that I found useful. Note that most of these will only work for VisualWorks Smalltalk. ---- ==== Bigger Fonts for Demonstrations ==== The standard font size of the VisualWorks environment is too small for demonstrations in a big room using a beamer. Somehow I always forget how to change this setting (out of experience I know that I am not the only one ;-)). So here is how to do it. Evaluate the following code snippet: ''NamedFontSelector open'' This will open the Named Font Selector window. {{ about:members:dirkderidder:smalltalknamedfontselector.jpg }} Select 'large' in the left list box, assign a new font size, and press the 'Assign to Named Font' button. Next open the VisualWorks system settings. {{ about:members:dirkderidder:smalltalkfontsettings.jpg }} Select the 'Tools' item in the left tree view, and select 'large' in the Text Size dropdown list. After pushing the Apply button you will get ... bigger fonts! {{ about:members:dirkderidder:smalltalkbiggerfonts.jpg }}