HN user

logician

14 karma
Posts0
Comments2
View on HN
No posts found.

Smalltalks usually come with some sort of graphical environment that facilitates the building of GUIs. Those environments usually also provide simpler graphical primitives you can draw with. In fact, if all you want is LOGO, you can use the Pen class (a standard ST-80 class) in Squeak or Pharo as a LOGO turtle:

p := Pen new.

360 timesRepeat: [p go: 1; turn: 1].

that will draw a circle.

4 timesRepeat: [p go: 100; turn: 90].

and that, a square.

More complicated stuff can be done with Morphic and eToys.

In the 1970s, a team of pioneering computer scientists at Xerox PARC known as the Learning Research Group investigated this very problem--that of creating a programming language suitable for children as young as five to write programs in. As part of their study, they took their computers and their language into Palo Alto schools and attempted, successfully, to teach children from different age groups how to program. The language, named Smalltalk, underwent continuous revision throughout the '70s and was finally released to the world in 1980 as Smalltalk-80.

Smalltalk is a tiny language, with the entire syntax famously fitting on an index card. It is pure in theory: everything is an object and every operation, even "1 + 2," a message sent to an object. It is also pure in implementation: except for a handful of primitive messages, Smalltalks are written almost entirely in themselves, like Lisps.

That a developer could, in 2009, be completely ignorant of the advances made in his field a quarter century earlier is simply inexcusable. To see people, in 2009, touting BASIC as a fine pedagogical tool (and not a modern incarnation, but classic line-oriented, GOTO-ridden BASIC--the very BASIC upon which Dijkstra unleashed his rancour), and to see others seriously suggesting Ruby, Python or some other overly-complex bastard child of C instead, is to observe first-hand the tribute that ignorance exacts from the ignorant. And that ignorance is not only the cause of BASIC being inflicted on yet another generation of hapless youth, but is also the reason why C#'s classes aren't real objects, why Java's "new" is a special primitive, and the source of countless over incongruities between Smalltalk and nearly every other language advertised as "object-oriented."