Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Could someone elaborate on Smalltalks supposedly killer toolchain?

Tags:

smalltalk

I've read that smalltalk is a joy to program with, because the toolset makes everything so easy. Versioning, debugging, etc..

Is this true? If so could you elaborate. What tool(s) are superior to anything that Python or Ruby might have?

like image 736
Igorio Avatar asked Feb 22 '11 06:02

Igorio


Video Answer


1 Answers

Smalltalk ties together developer tools, applications, and libraries in a single live system called the image. An image contains the state of every object in the system including the code for classes and methods which are also represented as objects. Every part of the system such as the compiler or the String class can be tweaked by the developer as easily as his own code and the state of the whole system can be saved and restored in an instant.

The fact that Smalltalk is so tightly tied to its own toolset often repel developers living in vi or emacs but it provides an unrivaled level of integration.

Code edits take effect immediately, inspector windows lets you display the state of variables in real time and you can evaluate bits of code from just about anywhere you can type.

When an error occurs you are instantly presented with a source level debugger no matter how deep in the system that error occurs. The debugger uses the same code editor component that you normally work with so you can easily make changes on the spot. Python and Ruby certainly make it easy to tweak a source file compared to compiled languages but pointing your editor to the right file still requires some work in comparison (or some additional tooling).

Another advantage of the Smalltalk toolchain is that it makes it easy to read and understand the code. The Smalltalk Browser is the central part of the IDE. As its name implies it is focused on "browsing" through the classes and methods of the system. For instance it lets you quickly find all the places where a method is called or navigate through a class inheritance hierarchy. The tools also help you dissect a running application easily by inspecting its state.

Smaltalk environments also provide good support for automated code refactoring and unit testing. In fact automated refactoring and the xUnit family of testing framework were originally developed for Smalltalk.

The Smalltalk toolchain is by far the best I have used but I must admit that its peculiarity may repel some developers. For instance because code is not stored in regular source files you can't use your own editor or version control system and have to do everything the Smalltalk way.

like image 82
Alex Jasmin Avatar answered Jan 02 '23 01:01

Alex Jasmin