We talked to a lot of teachers, and it's a real problem going from block based programming to syntax heavy scripting - there's a chasm there which from a teaching standpoint is sometimes tricky to breach and keep students engaged with.<p>We've gone for a different approach with Construct 3 which is so far resonating well in education, by mixing our block based programming system with Javascript itself helping to smooth the transition:<p><a href="https://s1.construct.net/images/v721/refresh/features/learn-to-code.png" rel="nofollow">https://s1.construct.net/images/v721/refresh/features/learn-...</a><p>The above example is a mix of block based and Javascript, but it can go all the way to making games with pure Javascript in script files - we're hoping to cover the transition in education from between Scratch and other tools such as Unity. There's a big gap there.
I am divided on using Javascript as a first language to teach to children [Or second or first-and-a-half after Scratch]<p>It's extremely useful, and does contain lots of good parts. But it's at times inconsistent,requires learning its quirks and may cause more frustration than other languages.<p>I would also worry a little about pushing the students down a road of mostly frontend web development. Not that they can't escape by learning something else, but still.<p>I guess it would take studies to compare the outcome of various languages and curriculi? A lot of apps and games nowadays are data driven, to optimize for onboarding, engagement and so on. I would like to see more of that in education.
There’s also what seems to be a better scratch than scratch:<p><a href="https://snap.berkeley.edu" rel="nofollow">https://snap.berkeley.edu</a>
It's a shame they decided to involve one of the worst parts of JavaScript and hardest to explain in all the examples: "this". I've written a lot of JavaScript code that doesn't use it and it's really easy to understand.
This honestly seems like a big leap to ask kids to take from Scratch. I agree with some of the comments I'm seeing that the concept of "this" is a big one - but even other common JavaScript concepts such as callback functions seem like a stretch. What I wonder is why a variant of BASIC hasn't taken off. I think most Gen X and Millennial software professionals can point to early exposure to BASIC as an inspiration for their careers. The syntax of that language was meant to be for beginners - so why aren't we using it?
There's also <a href="https://woofjs.com/" rel="nofollow">https://woofjs.com/</a> from my friend Steve Krouse which has Scratch-like JS!
Very interesting way of trying to bridge the gap from "blocks" to code. Part of my introduction to coding was using the Starcraft and Warcraft 3 map editors. At a base level, much of the scripting in the editor is very much block-like: choose an event, add actions, and apply conditions. It wasn't block-based programming but it was point and click nonetheless. However there were essentially "blank blocks", actions which were just an input for arbitrary scripts. If I'm remembering correctly, I think WC3 editor might have used Lua (not 100% sure), but I learned a lot by going beyond what was possible with just tools the editor gave you by using these seemingly limitless windows into the world of programming that it offered.<p>Though as I recall a lot of the really advanced and customized Starcraft maps actually used, I believe, some kind of overflow bug to add all kinds of arbitrary data that you couldn't normally. Off topic now, but interesting fact nonetheless, when Blizzard remastered Starcraft they essentially re-implemented the bug so old maps would still work.
I feel that the most significant edge provided by these kinds of pedagogical languages is they bridge the years for when the hands can't use the keyboard very well -- in other words, it's not a very interesting edge.<p>I also think that typing the words out has an effect on fluency even though it seems like a menial form of practice.
It's hard to tell the home page is more than the gray field; and then "get started" skips to the end, where I'm encouraged to click on the codepen link and get a completely obtuse page. I recommend fixing that first view so there's more to see right when the page opens.
A few years ago I tried to make a project that would let kids write in a written language which would be parsed and translated into the XML Snap (a scratch alternative) uses. Then I'd embed the Snap runtime to run it. The basic parts worked, but I ended up giving up on the project.
This is great work! I’m a fan of blockp5.js’ approach to the problem: take a beginner-friendly JavaScript environment (p5.js) and add a blocks.<p><a href="https://github.com/ycatch/blockp5.js" rel="nofollow">https://github.com/ycatch/blockp5.js</a>
this reminds me of a project with similar goals (of providing learner coders with a "level-up" from Scratch) <a href="https://github.com/stevekrouse/WoofJS" rel="nofollow">https://github.com/stevekrouse/WoofJS</a>
excellent. this is a needed step.<p>the first block programming tool i used is etoys.<p>it has an interesting feature, where each piece of blocks has a direct equivalent in smalltalk, so you can compare the block version with the code version.<p>the transition is therefore much smoother as you can reuse your existing block code.<p>in that vein it would be nice if blocklike had an import function to load scratch projects.<p>at least for simpler projects this should be possible, and it would further enhance the transition.