The Smalltalk Revolution

Birth of the Smalltalk Renaissance Program

Smalltalk has a storied legacy. Created in the 1970s at the famed institution, Xerox PARC, Smalltalk was the first popular object-oriented programming language and arguably still the best. Over the subsequent decades, it has had enormous influence in the design of programming languages, more recently such as Ruby, Groovy, Scala, and Dart. Even Apple's Objective-C, which has been used to write all of the iPhone and iPad apps, was fashioned pretty much after Smalltalk. (Clearly, Steve Jobs was very moved by Smalltalk when he visited Xerox PARC in 1979. He later adopted Objective-C for NeXTSTEP.)

Currently, there is a prevailing misconception that Smalltalk is an ailing language, rather antiquated and no longer relevant in the 21st century. Nothing could be further from the truth.

Smalltalk is used in many places, especially in the industrial and financial sectors. Vendors such as Smalltalk Cincom, Instantiations, and GemTalk are profitable businesses. A significant ecosystem of software houses revolves around Smalltalk. In recent years, Smalltalk has enjoyed something of a resurgence with the Pharo project. Pharo seeks to improve Smalltalk's prospects in the enterprise.

The Pharo community is very large and active. Pharo Smalltalk itself is constantly improving. It has such a strong presence that it's used as the reference implementation for Seaside and Amber, the premier server-side web framework for Smalltalk and the client-side JavaScript contender for programming, respectively.

Unfortunately, the message is not getting out about Smalltalk and its enormous benefits to modern software development. Up until now, it has relied on word of mouth and grassroots efforts for self-promotion, but it's not working. At the controversial TIOBE language index, Smalltalk has figuratively fallen off a cliff.

On December 17, 2014, a major new campaign was launched to promote and popularize Smalltalk. It's called the Smalltalk Renaissance Program and it seeks to make Smalltalk a marketing brand.

Why Smalltalk?

Smalltalk has two unique qualities in the world of programming languages. First, it's an incredibly simple language. The entire language specification fits on a postcard! Consequently, it is very easy to learn and to master. There is virtually no cognitive load on your brain!

The real expressive power of Smalltalk lies in its class libraries. In Smalltalk, everything is an object, right down to the core of the runtime, right down to the metadata for objects and classes. While this massive construction may appear overwhelming, it is not necessary to learn the whole thing at once. You can use the class libraries incrementally until you feel comfortable with the Smalltalk ethos.

The language is also very elegant. Through good naming conventions in the classes and methods, Smalltalk code reads almost like English. And it accomplishes this without losing any conciseness. This quality is without price because in software development, you typically write below code once but read it many times, often months or years later. Readability lends itself to comprehension.

Second, Smalltalk is also a programming environment or IDE. This environment is a world of "live" objects that you can inspect and change at real time! With the integrated debugger, you are endowed with great power to prototype your application [1]. You can use the workspace feature to experiment with Smalltalk code snippets. Unlike other language tools, Smalltalk does not hamper the natural cognitive flow of developing your application concept.

The class browser within the Smalltalk environment allows you to easily refactor the code for production usage, once the application is completed and tested. Class browser, code editor, object inspector, debugger, and workspace are an integrated whole.

You may surmise from this that there is little distinction between your application and the Smalltalk environment. And you'd be right. The seamless nature of the tools is what endows Smalltalk its super-productive capability.

The Reformation

In comparison to traditional methods of software development, the Smalltalk way must look like it comes from the future. And indeed it does. The only thing is, this future of software engineering was created 40 years in the past! At Xerox PARC. Due to unfortunate historical happenstance, the IT world glommed onto file-based, statically executed programming using text editors (such as emacs and vi), textual compilers, loose collections of tools, and isolated debugging techniques.

Since Smalltalk is a new way to view the process of software programming, it makes little sense to try to insinuate conventional file-based tooling into the Smalltalk environment. We should be advancing the new paradigm with new tooling. We should break from the old ways.

Understandably, this is a scary proposition. It sounds risky. But without risk, things will never improve. We will be held back in our technological evolution for decades more and suffer great losses in potential productivity.

Smalltalk is not the Grand Old Man of programming languages, but the future of software development created 40 years in the past.

Software developers are human. Therefore, they are also creatures of habit. Once inured to the clumsy use of files and folders and lifeless, non-dynamic programming methods, once they grow emotionally and intellectually attached to their file-based tools and infrastructure, they are incapable of appreciating any other way to do things. They've become so efficient at doing things the hard way that it seems, to them at least, the best way to write software. These are not stupid people; they are simply habituated.

Similarly, managers are only familiar with traditional software development processes. They feel comfortable with them, like old leather. Most managers are inherently risk-averse. Forward-thinking managers , however, understand when risks may pay off; they are typically the heroes of their organizations. Encouraging this line of thought is something of a challenge.

Smalltalk Renaissance seeks to persuade business decision makers and traditional software developers that there are great gains to be had by modernizing their development process. The campaign will tell success stories from many sources and provide detailed resources on how to proceed.

Da Vinci's inventions.

Join the Revolution

The world of software development is long overdue for a shakeup. For far too long, they've been mired in energy-sapping, under-productive, antediluvian methods based on ancient file systems and complicated, loosely integrated tools. The solution, the recipe for change, has been in front of them for nigh four decades.

Help create the future that was denied us long years past. "Join" us. "Like" us. "Follow" us. Offer your thoughts in our "Comments."

And above all, reinvent the future that holds us back by trying Smalltalk, or Pharo, or Amber. You may discover a hidden gem of ease and productivity never before experienced. Smalltalk's days are not past; it was simply hiding in plain sight, waiting for enlightenment. True destiny's Smalltalk is now.

Find us on WordPress.

Find us on Twitter.

Find us on Facebook.

Find us on Google+.

Find us on LinkedIn.

Find us on Tumblr.

Find us on YouTube.

[1] Not only can you inspect the execution state, edit and continue, you can also define new classes and methods in the context of a live application you are developing. You can actually program in the debugger. Start by defining just a test and continue from there.