Byob "edit elements"

If you right click on a block in Byob and click "edit elements", you get a window with blocks that look a bit like Scratch:

What is it for?

What you're looking at is the Smalltalk implementation of that block, translated into blocks. At that time Jens wanted it to be "blocks all the way down."

@bh, what do you mean?
By the way, you get a manual for that with BYOB, @donotforgetmycode_sn.

The usual thing with high-level languages is that they're implemented in lower-level languages, the way Snap! is implemented in JavaScript (and JS in the browser is probably implemented in some flavor of C).

When Xerox PARC invented Smalltalk, they wrote it in Smalltalk, except for a tiny kernel of machine language. They talked about "Smalltalk all the way down." Jens got his start programming in that Smalltalk community, so he learned the idea that a language should be implemented in itself. (It's not unusual, by the way, for the set of primitives of a language to be written in itself. Lisp people talked back in the '60s about how all you need is five primitives and all the rest could be written in Lisp itself. What was new in Smalltalk was that even things like memory management, parsing and evaluation of code, etc. were written in Smalltalk.)

BYOB was written in Smalltalk, not in BYOB, but Jens sort of faked "blocks all the way down" by creating a block notation for the Smalltalk.

I see. Sounds like something pretty interesting. :thinking: