3 ms·
> It might be easier to learn, but it's harder than ever to actually do something useful with those "toy" environments. It's hard to define 'useful,' but I'd a
by scratchateer 4y ago
> It might be easier to learn, but it's harder than ever to actually do something useful with those "toy" environments.
It's hard to define 'useful,' but I'd argue that you can make useful things in Scratch. My first language was Scratch, which I learned 14 or so years ago. Although I only stuck with it for a couple years before moving onto Python (then Scheme, then C, then OCaml),
Scratch was very formative in my development as a programmer, and there are a ton of 'useful' things you can do within Scratch itself.
I grew out of Scratch after writing a 3d rendering engine for a platformer, and a neural network that played a racing game (NEAT). Both of things are fun, and I'd argue to some extent, useful, if not only to others who are learning. It was at this point that I was recommended a book on Python and, well, the rest is history.
I realize that, for some tasks, like systems programming, Scratch would be absolutely counterproductive. (though I recently recall seeing a post about writing a Linux kernel module using the language.) Nevertheless, that doesn't mean that you can't do useful things using the language. Having later developed games in C from scratch (ha!), just trying to replicate a fairly basic Scratch program with sounds and sprites and movement requires a good working knowledge of how to type, C and its compiler, SDL and related libraries, memory management, maybe how to embed Lua for scripting, etc.
None of these things are hard, per se, and I do agree that you have to jump through a number of layers of "security" to do modern development work on most platforms, but one has to admit that the environment that Scratch provides is powerful enough to create useful things, that require a non-trivial amount of work to replicate elsewhere.