Hi all, I’m Ben Wheeler. I work at Scratch as a de...
# thinking-together
b
Hi all, I’m Ben Wheeler. I work at Scratch as a developer and educator. Excited to hear what this community is up to!
👋 6
n
hey Ben! Just wanted to mention that Scratch got me started as a programmer and continues to inspire me in thinking about how the IDEs of the future can be made more visual 🤩
👍 1
w
I'm always first to tell educators that Scratch provides the most accessible/accurate model of real programming. (Here I mean structured, imperative, event driven programming of course.)
b
Thanks! Scratch certainly isn’t everything — its design decisions involve tradeoffs, and I’m curious about where others see those tradeoffs being the wrong decisions (I know a few that Steven Krouse would change!). But it’s amazing to here about how many people started having delightful, exciting experiences programming with Scratch. For me, the gateway drug was BASIC on the Apple II — part of the fun was that my teachers didn’t understand it, or even know it was possible to get a BASIC interpreter prompt just by hitting control-reset. But it had in common with Scratch that you could make something surprising in a minute or two. @noahtren and @wtaysom, what do you work on?
n
Beyond the design of the language itself, the social layer of Scratch kept me coming back because I could easily share projects and also look at how other projects worked. I eventually moved onto Python and JS but I thank Scratch for teaching me how to code :) Right now I'm working on a node-based editor for building neural networks, aiming for a direct mapping between the visual graph and the code that it generates. After an internship in computer vision I decided this is something that should exist, so I'm trying to build it. Besides that I'm interested in deep learning, education software, and the future of HCI.
w
What do I work on? My bread-and-butter amounts to very specialized Rails mixed with the raising of a five year old — entails a lot of picture book reading and since Christmas break at least 100 hours invested into building this together https://brickset.com/sets/42043-1/Mercedes-Benz-Arocs-3245. The programming language/environment research is a side interest. Wrote up a little bit recently https://gist.github.com/wtaysom/7e5fda6d65807073c3fa6b92b1e25a32.
o
Hi Ben, and welcome! It is good to see that a Scratch team member joins this community. 🙂
I am using Scratch for creative workshops with since 5 years and really enjoy it. I also use it to show what programming is for adults and it is a great tool for that.
Scratch is an inspiring tool for my thougts about the future of programming and how to make programming more end-user friendly.
w
@ogadaki glad to hear your story. I've always found Scratch to balance approachability with depth far better than it first appears.
o
Yes @wtaysom, when I first saw Scratch, I thought it was a toy only to have a glimpse of what programming is. I thought I will use it only for some time but will have to switch to a "real programming language" to create complex things. In fact, I discovered that the choices in the design of Scratch make it a language you can use (and enjoy using it) to seriously program. Sure I miss some programming features from Scratch, but I understand ,in regards of some of its objectives (i.e. target very young kids), it has to stay as simple as possible.
w
It’s true! The concurrency is pretty rich. For the first few years Scratch was missing a few useful things (lists, cloning sprites), but now it’s pretty feature complete. One negative thing about other programming systems that Scratch imitates is that it’s hard to see what’s going on over time. Scratch, to it’s credit, does highlight the currently running block.
o
Yes, the highlight of running blocks is great!
Even if the the features set is near complete, I miss some key features. Like custom blocks that returns values or the ability to attach some parameters to messages.
b
@ogadaki Yeah, I personally often wish Scratch had custom blocks that could return values, and be used as values (what we internally call “reporters”). I do a lot of hacking this by storing values in variables, which works ok, but it feels like a hack and it’s hard to keep track of. I also wish there were more of a “debug mode” — Bret Victor’s response to Khan Academy’s (short lived) programming environment got into one version of what this could look like. Nicolas and William, have you found that the colorful/cute design of Scratch is off-putting to older students? That’s a point Steven Krouse has made, and there’s some interest I keep hearing in having an “older” skin of the UI — maybe a dark mode, maybe a more substantial reskin.
w
I don't have students, so cannot comment on Scratch's apparence. The lack of a debug mode does make Scratch more like real programming. 😢 Likewise, the lack of return values goes along with the reality that software development involves workarounds/hacks.
o
Yes Ben, some older students (or not so old ones that want to be seen as "real" programmers) want to go away from scratch which looks childish to them and they think they can't create "serious" (i.e. complex, etc.) things with it and that they have to learn a text based language. Yes, I think having a less "childish" UI (meaning essentially, less flashy colors) can be a good thing for these cases. I am not sure a dark mode is necessary, but this could just be my personnal preference here (I prefer light mode in general).
w
I wonder what the return on investment on a ProScratch would be? One that looks more "real", features data-structure blocks, definition of new blocks, and tools for managing larger projects.
2
o
I am convinced there is value for such a thing, either ProScratch or visual programming inspired by Scratch. And it is a thing I want to work on on my experiments about future of coding/programming. In fact, as a first step, I plan (and began to work on it) to host a Scratch environment, with some slight modifications to see if there is an audience for a version of Scratch not targeted to childrens.
n
I remember hearing about "Snap!", which is heavily inspired by Scratch with support for more programming language concepts for HS or college level. Not sure if this is still an active project though, I just remember hearing about it when I used Scratch: https://snap.berkeley.edu/
n
Chiming in with props to Scratch. On the topic of a Scratch reskin: one of my future CodeCombat / Ozaria feature ideas is to make a Scratch project importer, where we could take existing Scratch projects, convert them to being hackable in Python/JS/CoffeeScript/Lua/Java/C++, increase the framerate, swap out any default sprites for stuff done in our style, and add more available APIs from our own game development track.
❤️ 1
o
Regarding Snap!, I once used it for a project were I found Scratch too limiting. In particular because I needed custom blocs with return values. It was for explaining how Kmeans algorithm works. It worked perfectly for that. But, I found that Snap! was visually far less engaging than Scratch, and the fact Snap! brings lots of advance programming features (even lambdas!) makes it significantly more complicated to use.