Is GNU Smalltalk a complete implementation of Smalltalk?


GNU Smalltalk is a complete implementation of the Smalltalk language. In fact, it is a superset, since some features (regular expressions, streams, packages, namespaces, etc.) were absent or more limited in the original Smalltalk-80 specification (the Blue Book).

GNU Smalltalk also includes a graphical Smalltalk environment. The quality of the environment is low compared to modern IDEs (including other Smalltalk dialects); however, this does not hamper GNU Smalltalk's main intended utilization as a scripting language.

How does GNU Smalltalk compare to Python or Ruby?


Both Python and Ruby are object oriented languages meant to provide a smooth transition from procedural to OO programming styles. Smalltalk, by contrast, is object only—you can't do anything serious without understanding objects and inheritance. By providing procedural training wheels, Python and Ruby meant to ‘fix’ one of the features that may have kept Smalltalk out of the mainstream.

What else is cool about GNU Smalltalk?


First of all, it is free software. This means that you can play with it and understand how it works, break it and understand why it broke, fix it and enjoy having fixed it.

Compared to other Smalltalk implementations, GNU Smalltalk is very different in one aspect: it is pragmatically designed to be a tool rather than an environment. It complements other tools that you use in your daily work, without any pretense of completely replacing them. This also provides a smoother learning curve for people who know other scripting languages such as Python or Ruby.

What is cool about Smalltalk?


Smalltalk is an object-oriented programming language with a uniform programming model. Unlike many other languages, learning the Smalltalk programming language is easy because there are just a few concepts to grasp. Everything is an object in Smalltalk (including number, string, character, code blocks, and classes themselves), and everything is done through a single paradigm, that of sending messages from one object to another.

Syndicate content

User login