Aos Dias Repetido

Aos dias corridos e repetidos em sequências infinitas. Ninguém parece se importar com a imensidão do clarão que a noite traz num só grito quando põe, paradoxalmente, o sol pra dormir. E quando se…

Smartphone

独家优惠奖金 100% 高达 1 BTC + 180 免费旋转




What are the biggest myths about Smalltalk?

The biggest myth is that Smalltalk is a dead or dying language. Nothing could be further from the truth.

A related myth is that Smalltalk was never popular. In fact, in the 1990s, Smalltalk became the most popular OOP language after C++. According to a 1995 IDC report, OOP language market shares were:

Here’s a page from Computerworld, November 6, 1995, showing Smalltalk and C++ duking it out:

Smalltalk was so good for business use that IBM chose it as the centrepiece of their VisualAge enterprise initiative to replace COBOL:

In the early 2000s, the U.S. joint military used Smalltalk to write a million-line battle simulation program called JWARS. It actually outperformed a similar simulation called STORM written in C++ by the U.S. Air Force. That by itself was an astonishing testament to the capabilities of the language.

Other major users include Florida Power & Light, Texas Instruments, Telecom Argentina, BMW, and Siemens AG.

In my home country, Smalltalk is used by Communications Security Establishment (CSE), Canada’s national cryptologic agency.

The second biggest myth is that Smalltalk’s system image is weird or unusual, and doesn’t play well with conventional toolchains like text editors and version control systems.

However, Smalltalk’s image is no different from the system image found in virtualization software like VMware and VirtualBox. Imagine you have Linux running in a VirtualBox image. Imagine that you’re developing Java software using Eclipse. Imagine that you run your Java software in the image. How is this different from Smalltalk?

In Smalltalk, you’re using an IDE called the System Browser. You run your Smalltalk application in the image. It’s the exact same thing.

In our hypothetical Linux image, you can use version control systems like Git, CVS, and Subversion. In Smalltalk, you use version control systems like Monticello (Pharo), ENVY (VA Smalltalk), and Store (VisualWorks). You can also use Git.

In Smalltalk, you can “File Out” your source code into a conventional text file. This allows you to use Git, Vim, Emacs, Visual Studio Code, whatever you like.

Some Smalltalk dialects even let you work entirely from the command line. GNU Smalltalk was the original, but Pharo recently provided this capability, as well.

The third biggest myth is that Smalltalk’s syntax is weird and difficult to learn. This complaint typically comes from programmers using C, C++, Java, or any other C-derived syntax language.

It is very easy to acclimate to Smalltalk syntax. I was a C developer for over 15 years. It took me less than a week to get comfortable with message passing. The parallels between Smalltalk, Python, Ruby, and C are easy to recognize.

The fourth biggest myth is that Smalltalk programs are too slow. Too slow for what? How is Smalltalk slower than other dynamically typed languages like Python, Ruby, Perl, PHP, Erlang, Racket? Python and Ruby are still quite popular; Perl and PHP used to be quite popular. In most instances, performance was not an issue for these languages.

It’s worth pointing out that some Smalltalk dialects are very fast. Pharo’s Cog VM is notably impressive. Smalltalk MT is optimized for maximum performance.

Is Smalltalk slower than C++ and Java? Unquestionably. And if for some applications, Smalltalk isn’t fast enough, then don’t use it. Always choose the right tool for the job.

The fifth biggest myth is that Smalltalk programs cannot scale. The truth is, Smalltalk may well be the only object-oriented language of note that is easily and painlessly scalable. This is because of Alan Kay’s brilliant conception of OOP. Let him explain it (starting from 2:18):

and

Languages like C++ and Java treat object-oriented programming as the application of Abstract Data Types, whereas languages like Smalltalk and Ruby view object-oriented programming as developing a network of cooperative virtual computers (objects).

All the complaints you’ve heard about object-oriented programming and inheritance and scalability issues have come from using C++, Java, C#, etc. The Abstract Data Type philosophy is detrimental to large-scale software development.

Alan Kay famously said:

Actually, I made up the term “object-oriented,” and I can tell you I did not have C++ in mind.

Said Alan Kay: “The Internet was done so well that most people think of it as a natural resource like the Pacific Ocean, rather than something that was man-made. When was the last time a technology with a scale like that was so error-free?”

Alan Kay likened his object-oriented philosphy to how the Internet was built, or how biological organisms consisting of billions of cells are built. Smalltalk is fantastic for truly scalable solutions.

Add a comment

Related posts:

The Tyranny of Decentralization

As a thought experiment, I madlibbed “The Tyranny of Structurelessness” by Jo Freeman, an essay on informal power structures in the women’s liberation movement, to see if its insights are useful to…

DIA DE SOBRECARGA DA TERRA

O termo Sobrecarga da Terra (Overshoot Day) foi criado pela ONG britânica Global Footprint Network. Calculado desde 1986, o Dia de Sobrecarga marca o dia do ano em que a demanda anual da humanidade…

The Lake

I drove slowed and pulled over near a lake,. “Lake” is published by Lila.