Is Smalltalk still relevant ?

(Note:  We may earn commissions from products/services you click on.  This is at no extra cost to you.)

Table of Contents

Undoubtedly, Smalltalk is one of the oldest programming languages. Since it was developed in the 1970’s many modern programmers might term it outdated. Some programmers may term it a dying language.
But how true is this?

Smalltalk isn’t as popular as it was before. The reason is; many modern programming languages are easier to learn and use – industrial programming languages. However, that doesn’t render Smalltalk irrelevant.
Smalltalk remains one of the most potent instructional programming languages. Typical Smalltalk is a great language to teach aspiring programmers who do not have a technical background. That property makes it a superlative prototyping programming language for start-ups. Nonetheless, you can use it as an enterprise language – for big and small businesses without straining.

Most people advocate using Python, C++, or JavaScript because you can quickly get jobs related to them. But the choice of a language should be based on the need at hand. Besides, any serious programmer should learn at least more than one language. This is reason enough for anyone to begin with Smalltalk.

Keep in mind that Smalltalk isn’t static. In recent years, much has improved within this language to improve its prospects. While Smalltalk may not be an ideal option for production currently, codding in it feel much more familiar. Its object-oriented implementation is near-perfect and has since influenced the whole generation of object-oriented programming languages like C, Ruby, Python, and PHP 5.

Smalltalk is child-friendly. Ideally, the language was designed to teach children how to code. And that makes it an excellent language for beginners. Smalltalk becomes more relevant if you want to teach children or introduce new people to programming. You may think that Python or JavaScript is friendly; Smalltalk is much better because it doesn’t carry the baggage found in the languages above, which might distract beginners.

Universally, it is accepted among all programmers that the best point to start learning object-oriented programming (OOP) is Smalltalk. Remember, it was the first language back in the ’80s to popularize OOP languages. OOPs are popular throughout the entire IT industry, but most developers do not fully understand them. Using Smalltalk can help lay a stronger foundation and clear the misunderstanding about OOP. This way, programmers can move to other languages with much ease and clarity.
It isn’t easy to find jobs requiring Smalltalk knowledge. So, don’t pursue it in the hope of getting hired. Rather, Smalltalk is an excellent language for hobbyists who are looking for fun. So, if you have some personal projects, Smalltalk is the programming language to use. Otherwise, use modern languages of severe projects.

Is Smalltalk still revelant?
computer-1833058_1920

Do people use Smalltalk?

Smalltalk is currently in use, but not as much as it was in the ’80s and ’90s. During that period, Smalltalk was in its heydays; thus, a prevalent language. Many companies that wanted industrial-strength software development used it more than any other language. For this reason, Smalltalk was a stiff competitor with C++. Did you know that even IBM chose Smalltalk as the centerpiece of their VisualAge enterprise initiative to replace COBOL? 

Take your career to the next level.  Click this affiliate link to register for the Data Science Certification Training Course.  

However, Smalltalk lost its popularity due to many reasons. For instance, the creation of Java. Java came with much hype and was marketed by Sun Microsystems. Besides, it was free while Smalltalk was pricy at that moment. This drove the IBM management to switch sides – they began using Java to keep up with the trends. 

Remember, Java was web-ready, and Smalltalk wasn’t. Smalltalk was only ready for the internet in 2002 with the release of Seaside. This was pretty late for companies that were already using the worldwide web. If it could have supported the internet, perhaps it could have had much support earlier. 

Besides, if you have experience in curly bracket languages with syntax originating from C-languages, then using Smalltalk might seem pretty strange. These languages stand out as a popular option for Unix implementation. Moreover, curly bracket languages cover a wide range of programming models – concurrent (e.g., Go), machine-oriented (e.g., C), statistically object-oriented (e.g., Java), and prototype object-oriented (e.g., JavaScript). Here, the issue is not so much to do with execution semantics but with the familiarity of the source code reading process. 

Initially, Smalltalk may be hard to read for many developers. The fact is; Smalltalk’s syntax is much superior, but that isn’t apparent at first. The superiority of its syntax is seen in its simplicity and more consistency; the longer parameter lists are more understandable thanks to the keyword messages and beautiful syntax. If you started your programming with curly bracket languages, the Smalltalk syntax might seem weird. 

Currently, Smalltalk isn’t popular but still widely used. For more than three decades, the language has been in commercial use; thus, counting the major corporate companies like JPMorgan, Telecom Argentina, UBS, Florida Power & Light, Desjardins, Texas Instruments, Orient Overseas Container Lines, and Siemens AG. 

Compared to languages like Clojure, Rust, and Haskell, Smalltalk enjoys more commercial use. Smalltalk is exceptionally versatile and can be used in numerical computing and data science (PolyMath), IoT and robotics, enterprise resource planning, machine learning, natural language procession, virtual reality, and cross-platform mobile app development.

Features of Smalltalk programming language

It’s true; Smalltalk has offered much to the software industry over the past four decades. This contribution puts it as one of the most powerful languages. The features and technologies that Smalltalk has introduced include:

  • Introduction of the language virtual machine (VM) – making software platform-independent. 
  • Pioneered just-in-time (JIT) compilation – a technique for improving the performance of bytecode software like Java.
  • The first modern integrated development environment (IDE) discovery comes with a text editor, object or property inspector, system or class browser, and debugger. 
  • The closure in Smalltalk – lexically scoped first-class functions help to write much more compact and readable code.
  • First, to support “live” programming and advanced debugging techniques, e.g., on-the-fly inspection and code changes during execution. 
  • Introduced MVC (Model-View-Controller), a software architectural pattern for implementing user interfaces

Smalltalk is an utterly consistent and flexible language that eases the process of writing DSLs – of course, if you have the DSL knowledge. Look, there are no actual class syntaxes and class inheritance syntax. However, there are libraries in the standard Smalltalk VM. This makes it easy to create DSL, and many people might think that class and class inheritance is a feature of Smalltalk. 

Become an industry expert.  Click this affiliate link to register for the Data Scientist Masters Program.

The majority of features that other programming languages offer can be easily modeled in Smalltalk. This doesn’t mean Smalltalk has those features. 

Smalltalk features:

  • Simple and easy to learn syntax: the syntax is entirely based on the passing message between objects. It is tiny and straightforward, making it easy to summarize nicely in a small space. 
  • An inbuilt live coding IDE and runtime: all types of Smalltalk come with these features, and live coding is what gives Smalltalk its productivity advantage. The IDE is straightforward and easy to use. 
  • Persistent images: Smalltalk allows you to save your work and begin exactly where you left. This offers many conveniences, just like system images in VMware and VirtualBox.
  • Purity and elegance of object-oriented programming: almost all objected programming languages were modeled after Smalltalk’s implementation because it is neat and pure. 
  • First-class functions and closures (“blocks” ): these are parts that make Smalltalk a multi-paradigm language – you can comfortably do functional programming though it lacks immutability
  • Rich class library: the library is much like an ultimate standard library for a programming language. This offers programmers much flexibility without resorting to third-party libraries. Nonetheless, there are multiple third-party libraries. 
  • State of the art debugging techniques like on-the-fly code changes
  • Domain-specific languages (DSLs), allowing programmers to focus on the problem domain using a more natural language and notation to that domain

Why did Smalltalk fail?

There is so much talk about Smalltalk – some say it is dead or dying while others have a contrary opinion; it’s growing. But the common point that all can agree on is that Smalltalk isn’t a mainstream language – and it isn’t close to that. There are many reasons for this, but did you know that Smalltalk implemented some features that influenced other languages like JavaScript? 

Smalltalk has some excellent and nifty features. Sadly, they can be implemented in other programming languages. For example, Smalltalk could suspend running programs into a saved image and resume later at the saved point. This is indisputably powerful and useful because you’ll be saving the state of the entire program. As such, you don’t need any implementation efforts. 

But why did Smalltalk fail?

There various school of thoughts why Smalltalk isn’t that popular:

  • Smalltalk was not free – it had the highest license fee compared to similar companies like Microsoft, which charged $100. In the late ’90s, however, the free version was introduced. The commercial version of Smalltalk was costly; thus, only large enterprises could afford it. The creation of Java and its consequent marketing put it into the mainstream market before Smalltalk could. This made Smalltalk almost extinct. 
  • Stopping development by other license holders like Tektronix, leading to many competitors like Apple causing incompatibilities instead of a unified and robust language. This later led to the development of other languages like C++ adopting objects.

Smalltalk is an interpreted language; so, speed was a problem because all components not in the Virtual Machine are evaluated during execution. Besides, there were pauses for garbage collection – this wasn’t very pleasant for many developers. One example was the Digitalk’s Goodies code for training Neural Networks – it was painfully slow.

Not all applications can tolerate a low speed – except those humans don’t use rapidly. For instance, real-time applications require a faster rate. In this case, languages like Python with the ability to stop garbage collection are a safer choice. 

Take your career to the next level.  Click this affiliate link to register for the Data Science Certification Training Course.  

Smalltalk presents a working environment within your program (images) instead of source files. Any change you make, you can see it immediately on the screen. So, no compilations or interpretations are necessary, making the process exploratory and fluid. That notwithstanding, you cannot use a text editor of your choice or SCM. Though some text editors are available, they are very different from the common ones. 

Smalltalk’s usability is plagued with many issues due to mis-development. Self-documenting a code can be hectic because a bit copy function is a bit block transfer. Initially, Smalltalk couldn’t deliver a working app for sale by developers – developers had to sell the Smalltalk platform along with the application, leaving little profit – this was a misstep. 

Is Smalltalk popular?

Smalltalk is a pioneering language – it was developed in the 1970s by the intelligent folks at Xerox PARC in California. Realize that Smalltalk was the first significant object-oriented programming language to be developed and extensively. Though not a popular option compared to languages like Python, Java, and JavaScript, Smalltalk widely regarded as one of the best programming languages. Smalltalk has been highly influential in developing other languages, notably Objective-C, Ruby, Scala, Groovy, and Dart.

Currently, Smalltalk is widely used to write financial and industrial applications, thanks to its ability to confer competitive advantage. That makes it an emerging language for client-side web development. Smalltalk’s standout features are elegance and simplicity. But also its beauty stems from interestingly new concept of a live development environment. In such an environment, objects are active; you can examine, assess and change them when needed. That makes Smalltalk readable – almost like English but manages to remain succinct. 

Developers hold Smalltalk in high esteem for its high development power alongside extraordinary productivity. History shows that Smalltalk remains one of the most productive languages because it is expressive and straightforward with an innovative approach to the integrated development environment. 

Smalltalk can be viewed as a modern language because it is closely tied to the grand approach to an integrated development environment, i.e., its environments are typical of a ‘live.’ Keep in mind that this environment isn’t file-based. Instead, it is a system of live objects. 

While that environment should make Smalltalk popular, it has proved to be hugely unfamiliar to many developers, especially those raised in the command-line-centric development experience. It’s the Smalltalk’s environment that made IBM ditch the VisualAge’s Envy repository support.

Should you learn Smalltalk? 

There are many reasons to learn Smalltalk:

  • Its programming environment is charming. Once you wrap yourself around, it offers every good thing a coder needs. However, it will provide you with a culture shock if your background is Java or C++. 
  • History places it as one of the most productive development platforms. 
  • It features multiple mature implementations together with a large codebase. For this reason, it once a popular option in the financial market sphere offering the best productivity. 
  • Development in Smalltalk is pretty straightforward – developers only need to develop image files in an appropriate directory. 

Smalltalk isn’t much popular because it is a niche market. So, if you learn to get a job, it won’t work. However, if you are producing .com apps for your use, it is okay. Besides, Smalltalk is more of a legacy system and plays well with traditional control systems. 

Smalltalk examples

Over the past four decades, Smalltalk, a powerful object language, has stood its ground in app development circles. Though it is a simple and small language, its applications are among the most productive ones. 

There is a wide variety of Smalltalk, including the free versions. The typical examples include:

GNU Smalltalk: this is an implementation of Smalltalk by the GNU project. Unlike other Smalltalk environments, this implementation uses text files for any program inputs and interprets the content as Smalltalk code. That makes the GNU Smalltalk more of an interpreter than a programming environment like the traditional Smalltalk. GNU Smalltalk features bindings for multiple free software libraries like SQLite, libSDL, gettext, cairo, and Expat.

Amber Smalltalk: this implementation was formerly called Jtalk, and it’s an implementation of Smalltalk-80 language, which runs on the JavaScript runtime of a web browser. Its design enables client-side development using Smalltalk language. Ambers programming environments are called Helios. 

Aida/Web: this is an open-source, object-oriented Smalltalk web app server that uses MVC – model-view-controller architectural pattern. It comes with powerful features like integrated Ajax support, real-time statistics, integrated sessions and security management, and multilingual support. 

Dolphin Smalltalk: also called Dolphin, this implementation is for Microsoft Windows. There was a coincidence between the release of Dolphin 7 and the open-source program using MIT Licence. Dolphin works in an integrated development environment, and its toolset features a package browser, integrated refactoring Browser, and a WYSIWYG “view composer.” The Dolphin implementation uses a Model–view–presenter framework, which sets it apart from other Smalltalk implementations.

Little Smalltalk: this is a non-standard Smalltalk dialect, and it was the first Smalltalk interpreter generated outside Xerox PARC. The implementation lacked the multiple features of the original Smalltalk-80 system, but it aided in popularizing object-oriented programming, bytecode interpreter, and virtual machines. 

Squeak: this is a class-based, reflective, and object-oriented programming language derived from Smalltalk-80. This language runs on VM – virtual machine; thus, allowing a higher degree of portability. Its entire system has codes for generating a new VM version on which it runs together with the VM simulator. 

Visual Smalltalk Enterprise (VSE): this Smalltalk dialect runs only on Microsoft Windows, and it’s the last implementation to be produced by Digitalk.

VisualWorks: this is a cross-platform Smalltalk implementation, implemented as a development system based on images that are dynamic software collections of software objects, each within a system image. 

Smalltalk vs. Python

Python is a relatively nice, friendly programming language. Most developers describe Python as being clear and powerful compared to other languages like Ruby and Java. Again, Python is a general-purpose programming language most praised for its elegant syntax alongside readable code. That makes Python the best language for those just beginning their programming career.

By contrast, Smalltalk stands out as an object-oriented, dynamically typed, and reflective language. Its creation aimed at underpinning the new computing world, and it was created as part of teaching and learning. Both Python and Smalltalk can be categorized as language tools. 

The paramount reputation of Python is that it is elementary to learn and use, and it is also highly productive. Python looks simple on the surface; however, it has very complex syntax, half of it being syntactic sugar for accommodating those originating from C syntax languages. Smalltalk, on the other hand, has a minimal syntax. However, these two languages closely look alike in terms of pure object-oriented – procedural coding is object-oriented as procedures are objects with a single method. 

Python doesn’t beat Smalltalk when it comes to the velocity of development and productivity. Historically and scientifically, Smalltalk offers the most productive general-purpose environment. Smalltalk is about 3X more than JavaScript, about 2.5X more productive than Python, and 2X more than Ruby. 

Learning Python is easy, and that’s the reason it’s popular. However, Smalltalk is much easier – the absence of syntax is what makes it more accessible. Everything within Smalltalk is achieved via message passing. This includes control structures such as IF statements and loops. Developers can nicely summarize the Smalltalk syntax. 

Message passing in Smalltalk can be very unsettling for people moving from other programming languages. Similarly, the indentation-sensitive syntax of Python is unsettling even more, and it will get you a misaligned code, unlike Smalltalk. 

Become an industry expert.  Click this affiliate link to register for the Data Scientist Masters Program.

Conclusion 

Smalltalk is indeed robust programming, having been around for over four decades. Although currently, it is not much in use, some people still find it relevant in various operations. Newer programming languages with flashy features rendered Smalltalk quite unpopular. Besides, though it offers a productive environment, Smalltalk design is thought not to be robust enough to handle the arising programming needs. Programmers 

Far from it, Smalltalk adheres to the design principles of modern languages that are currently popular. The features within the language are Orthogonal without the unpleasant interactions. That implies that the language is designed to be easy to learn, practical and expressive for daily life applications. 

Smalltalk is comparable to Swift, Dart, and Scala – which are all recent-time programming languages. However, it’s worth noting that Smalltalk is available in multiple flavors. Choosing the right one can be vital in determining your coding experience. It’s a great idea, to begin with, open source dialects such as Pharo and Amber. Nevertheless, if you want commercial versions, then VA Smalltalk, Cincom Smalltalk, or GemStone/S might be the right point to begin. 

Programmers who began with other languages will find the Smalltalk syntax somewhat weird, making it hard to read initially. This syntax is superior because everything in it is beautiful – consistency, simplicity, concise and understandable. That makes it easier to read. However, if your background is curly bracket syntax like C, then dealing with Smalltalk at first won’t be friendly. 

The IDE is still unique and requires practice to master for programmers from command-line-centric development experience. But it isn’t much difficult to use. Keep in mind; the code is pretty easy to manage because it’s far less complex can easily integrate into the Smalltalk package managers. However, it has poor support for packaging and a lack of support for external files. 

Luis Gillman
Luis Gillman

Hi, I Am Luis Gillman CA (SA), ACMA
I am a Chartered Accountant (SA) and CIMA (SA) and author of Due Diligence: A strategic and Financial Approach.

The book was published by Lexis Nexis on 2001. In 2010, I wrote the second edition. Much of this website is derived from these two books.

In addition I have published an article entitled the Link Between Due Diligence and Valautions.

Disclaimer: Whilst every effort has been made to ensure that the information published on this website is accurate, the author and owners of this website take no responsibility  for any loss or damage suffered as a result of relience upon the information contained therein.  Furthermore the bulk of the information is derived from information in 2018 and use therefore is at your on risk. In addition you should consult professional advice if required.