tosh is the product of hundreds of hours I spent designing, coding, and testing, all in secrecy.
Here’s the intro to the guide:
Scratch is a programming language designed for beginners.
Scratch is a block-based programming language, designed for beginners. Instead of typing in code, you drag blocks around. Since the block shapes only fit fit together in certain ways, syntax errors are impossible, which is what makes it beginner-friendly.
tosh is a text-based Scratch editor: you type code using a text-based syntax which it compiles into Scratch projects, thus defeating the whole point of Scratch.
Actually, I lied about the secret part. I wrote lots of articles about its design while I was working on it. Here’s a list:
- Secret Project, in which I introduce tosh
- Scratch is cool, in which I elaborate all the reasons why this project is a good idea, and argue that Scratch is a “real programming language”
- Sniff vs. tosh, in which I compare tosh to an existing project that claims to be text-based Scratch
- Parsing is hard, in which I describe various approaches to parsing, and why they’re all terrible
- String syntax, in which I discuss language design at length, and the wisdom of quoted strings
- Status Report #1
- tosh tosh tosh –I’m not even going to try and explain this one
- How tosh is parsed, with some interesting theory
- Disadvantages of text, in which I elaborate all the reasons why this project is a bad idea, thereby shooting myself in the foot
- Status Report #2
I never got to write the really interesting posts, the ones about name restrictions, and language design, and auto-complete. But there’s always tomorrow, or next week…
If you like tosh, feel free to love and comment on this Scratch project.
Discuss tosh in this forum thread.