In Forth, you can build up your abstractions so that they’re reusable. Ditto for Smalltalk. Both languages can be used to write very compact code. Just look at Elegant Pharo Code, for example.

In fact, this is much the same in most languages. In Java, Python, C#, C++, etc., you can’t get much done with the bare language. You need the supporting libraries, esp. the “standard” libraries. These libraries represent the abstractions previously created by other developers. In programming, you always stand on the shoulders of giants.

The same applies to Smalltalk. Smalltalk is a very small, simple language, but most of its power lies in the extensive class library. Somebody had to put in the prior work to build up these powerful abstractions.

The thing is, in most other languages, a lot of the abstractions have been moved into the language itself (through features and syntax). Supposedly, this is done for convenience sake, but it only makes the language more complex. You’re not actually gaining anything.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store