Richard Kenneth Eng

Blogger. Smalltalk evangelist. Retired software engineer. Avengers fan.

Programming From 8 To 80

Is there a programming language that's good for every user from age 8 to 80? You bet! It's called Smalltalk.
Smalltalk is most versatile over a large age range because of its unique set of qualities. First, it is supremely simple and easy to learn. Smalltalk has all of six reserved words. The complete syntax fits on a post card!
In fact, you can learn Smalltalk syntax in its entirety within 15 minutes! See Learn Smalltalk with ProfStef. (Heed the instruction in line 5, "Select the text below and click on the 'DoIt' button.")
Second, Smalltalk has a built-in IDE that supports live coding. Live coding is a powerful technique that can practically eliminate the traditional edit-compile-test-debug cycle that has hampered developers for over half a century. Like the language itself, the IDE is extremely easy to use (no need to wrangle Visual Studio, Eclipse, or Xcode).
Smalltalk represents a new programming model. The language, IDE, and total system of live objects (known as the image) work together in perfect harmony. It is this synergy that imbues Smalltalk with incredible power.
The result is that Smalltalk is the most productive general-purpose programming language in the world, according to a study conducted by Namcook Analytics. Smalltalk is twice as productive as JavaScript, C++, Go, Java, PHP, Python, and C#.
Third, Smalltalk is the ideal way to learn object-oriented programming. Read The Object-Oriented Schism.
Fourth, Smalltalk has a powerful metaprogramming capability, much like Lisp. Read Lisp, Smalltalk, and the Power of Symmetry.
Fifth, despite being a pure object-oriented language, Smalltalk is also capable of functional programming. Smalltalk's "blocks" are actually lambdas. In fact, the Smalltalk class library contains many recognisable functional constructs.
See how Smalltalk serves everybody...

Age 8

A child needs a gentle way to learn how to program. Short of using MIT's Scratch, there is no easier language for a child to learn than Smalltalk.
Interesting fact: early versions of Scratch were written in Smalltalk. So Smalltalk seems like a very natural progression from Scratch once the child outgrows it.

Age 18

This person is looking to gain formal training in programming. One of the most important things to get a handle on is object-oriented programming. However, the languages traditionally used to teach OOP have been disastrous. C++ and Java represent a school of thought that raises more problems than it solves.
Smalltalk is the right way to learn OOP. With Smalltalk, software is highly maintainable and scalable. It's much easier to write.

Age 28-58

This person is either looking to enter the programming profession, or is fully engaged as a professional software developer. As a beginner, they are just as well served at 58 as at age 8 or 18.
As a Smalltalk professional, they enjoy enormous productivity. The software they write is more reliable, more maintainable, and more scalable than if they had used Java, Python, JavaScript, or C++.
"Time to market" is cut in half. Development costs are dramatically reduced. The client or employer is happy, so the developer is happy.

Age 80

Seniors typically exhibit slowing mental processes. Like the 8-year-old child above, they also seek a nice gentle way to learn how to program.
However, once they've learned how to program, they are in no way limited in what software they can write. Smalltalk is not a toy language. It is enormously versatile.

Applications

For web, use Seaside or Teapot. For front-end web, use Amber or PharoJS.
For mobile, use Amber or PharoJS in conjunction with Apache Cordova.
For desktop, use Spec.
For data science, use PolyMath, Roassal, and Moose. For machine learning, use TensorFlow (Pharo language bindings are available).
For IoT, use PharoThings.

Tags

Topics of interest