I just stumbled upon an article that interested Smalltalkers may have known for weeks already. It’s part 3 of a series called Influential Programming Languages and has been published on InformIT back in January 2011. It discusses which programming languages influenced the makers of Objective-C and what concepts were taken from them.
The articles focus on Algol, Simula, Smalltalk and Lisp, and interestingly ignore C and C++ completely, although I’d say you still feel the foul smell of C in Objective-C way too often.
Maybe David wanted to focus on visionary things and concepts that were borrowed from other languages and he regards C as an implementation detail of Objective-C, which is a valid point of view. A painful one sometimes (I personally am not a big fan of pointers and zero-based lists), but one that has been put lots of nice paint over 😉
There are some nice quotes in it, but the article is (as is the whole series) definitely worth reading in hole:
Smalltalk […] was created on a bet. In this case, the bet was whether it was possible to specify a complete programming language on a single piece of paper.
Smalltalk’s development system had a lot of features in 1980 that are only just starting to make their way into mainstream integrated development environments. Automatic refactoring tools are a good example. Amusingly, you’ll often hear people defending strongly typed languages by saying that these tools require type annotations—ignoring the fact that Smalltalk had them 30 years ago.
Although Smalltalk is rarely used today, one of its descendants is popular: Objective-C was created as a hybrid language, combining C and Smalltalk. If you want to write good Objective-C code, it’s worth your time to learn both languages.
I agree on this one. It never hurts to learn Smalltalk, not only if you want to work in Objective-C.
If you want to take this advice and really have a look, there are quite a few options to start with. It’ll be best to visit world.st and find out which environments are available and where to get them.
Smalltalk is dangerous. It is a drug. My advice to you would be don’t try it; it could ruin your life. Once you take the time to learn it (to REALLY learn it) you will see that there is nothing out there (yet) to touch it. Of course, like all drugs, how dangerous it is depends on your character. It may be that once you’ve got to this stage you’ll find it difficult (if not impossible) to “go back” to other languages and, if you are forced to, you might become an embittered character constantly muttering ascerbic comments under your breath. Who knows, you may even have to quit the software industry altogether because nothing else lives up to your new expectations