Language Beauty
I have programmed in several languages, not as many as most geeks, but enough to know that there are clear advantages and disadvantages depending on what task is at hand. Cobol is easy to learn, english-like, has a fairly simple syntax, and performs very well (on IBM mainframes that is). C is incredibly powerful, has an open and complex syntax, includes more solutions for one problem than you can shake a stick at, and performs very well on all platforms. Pascal is simple and fairly elegant in it’s approach to solving problems - adapts well to beginning program theory & practice. Java is very capable, widely adopted, stable, and comes with more libraries than I think just about any other language. Perl offers a wide array of functional aspects that made the first dynamic web pages possible. Lisp has a flexibility that is unmatched and a built-in invention paradigm (for lack of a better term) that has led to some of the greatest language adaptations borrowed by all the languages - you say Lambda, I say Block, Lambda, Block …
None of these languages ever really won me over though. Of the list above, I most enjoyed C & Pascal, and I thought that C would be my favorite as I pondered other careers. Then, just on my way out the door, never again to return to the world of programming, I discovered software development. I found a language that was consistent, pure, simple, concise, powerful, elegant, and fast. Yep, you guessed it, I found smalltalk.
Instantly, my world was altered. No longer were bits and bytes important. No longer was syntax important. No longer were performance and memory an all-consuming priority. Instead, I could spend my time providing my customers with software solutions, elegantly crafted, simplistic in their nature, and fully mappable to the english(business) language.
As with any language, developers with no or little regard for styling, best practices, and reusability can make some incredibly stinky code, even in smalltalk. With smalltalk, however, it’s less difficult to refactor code that stinks because the language is built right into the environment. In fact, the environment is built from the language in the first place. The debugger allows for code stepping that is still, to this day, unmatched.
Smalltalk really is an amazing language and will outlast all of the other beasts. This is an interesting prediction considering that the smalltalk following is far less than that of most other popular languages. If you look at the improvements that are being made in other languages (e.g. Groovy for Java), the features that are being added are more smalltalk like. The direction is to move to the better language design and smalltalk had the others beat back in the 80’s, even though Java, C#, and a host of other languages had not yet been invented. Smalltalk was clearly ahead of its time.
This commentary isn’t really an objective view of the language. I haven’t really demonstrated anything. I just wanted to post my love for the language and the fact that all of the other languages have some beauty about them. I hope to provide demonstrable support for the claims I make, sometime down the road.
