HNHacker News
TopNewBestAskShowJobs

toontalk

5 karma · joined June 29, 2019

submissionscomments
toontalk··on History of Logo
Regarding hysterical languages and aesthetics there is the school of thought that small yet very expressive kernels are the most aesthetic. I recall a discussion in the early 1980s with Alan Perlis who claimed APL was a diamond and Lisp was a ball of mud. But it is easier to make things out of mud than diamonds. I also recall a discussion with Seymour Papert (circa 2005) about the next generation Logo. He claimed that one first needs to decide if the design should be driven by engineering or mathematical aesthetics. Sadly, there never was much progress designing the next Logo.

People's taste in programming languages is coloured by their first language(s). But Logo was designed to be a first language, so it shouldn't suffer from people's expectations that it do things like other languages.

toontalk··on What Is a Logo-Like Language?
Regarding

...the elements of a language are features of a world I inhabit:

Environments are values floating above my head. I have an urge to glance up when I’m thinking about what’s in scope. A closure is a one-way tunnel or pipe or wormhole back into the function environment. But the program itself can’t flow through the pipe. Asynchronous control flow is a stream that I imagine myself floating down. I think about where the stream will take me. Functors are giant structures, like a sculpture by Richard Serra. Functor operations act like cranes, helping me to move around those structures.

27 years ago I began working on a programming language in which computational abstractions had concrete animated analogs [1]. ToonTalk was my attempt to make a Logo for the 90s. You programmed in a virtual world where you trained robots to put things in boxes, give birds messages to deliver, etc. The mappings are: computation: city, actor or process or object: house, methods: robots, method preconditions: contents of thought bubble, method actions: actions taught to robot, tuples or messages or vectors: boxes, comparison tests: scales, actor spawning: loaded trucks, actor termination: bombs, constants: numbers, text, and pictures, channel transmit capabilities: birds, channel receive capabilities: nests, program storage: notebooks.

ToonTalk became free and open source 12 years ago. 5 years ago I had time to re-implement much of it as a web app [2]. But as Don Hopkins wrote - I'm focussed now on adding AI to Snap!

[1] http://www.toontalk.com [2] https://toontalk.github.io/ToonTalk/

toontalk··on Snap! 5 is here
Scratch 3 does not enable one to define new functions only new commands. Snap! user-defined functions are first-class - they can be used to define higher-order functions.