[HN Gopher] Scratch is a big deal
___________________________________________________________________
Scratch is a big deal
Author : bryanbraun
Score : 947 points
Date : 2022-07-16 18:09 UTC (1 days ago)
(HTM) web link (www.bryanbraun.com)
(TXT) w3m dump (www.bryanbraun.com)
| AndrewKemendo wrote:
| I search for anything I can to figure out what is happening with
| the Scratch community because my daughter, who has been a scratch
| user for 6 years has, over the last two been on there almost
| exclusively for the "community."
|
| It's super cool to see other kids remix her works and she to do
| the same.
|
| The one complaint I have is that we have run into one creep who
| was soliciting kids' info, however it was only one time and he
| disappeared pretty quickly.
| jms429 wrote:
| As a former computing teacher, I loved Scratch. I remember
| reading about it on a Thursday evening on Slashdot, maybe spring
| of '08, or 09.
|
| I had a free lesson first thing the next day, so I installed it
| on the network then had a class of 10 year olds give it a whirl.
| Had a full scheme of work written by the Monday, and was demoing
| it to other schools by the summer.
|
| Loved it, loved the scratch board addon hardware, loved the
| complimentary "makey makey" project, and the cards, and the books
| and on and on.
|
| incredible project.
| urthor wrote:
| If I may ask:
|
| Why former?
| jms429 wrote:
| Burn out. Teaching is a job that is never "done", and
| expectations from management and parents are constantly set
| higher and higher. Especially around IT. I lost count of the
| number of times I asked for help from management and got told
| "but you are so good at computers".
|
| Tried the startup thing, my product crashed and burned, work
| for a charity now.
| _benj wrote:
| Not op but maybe compensation and everything else outside of
| teaching?
|
| I used to teach computers/math to 8th graders and while
| teaching is beautiful school politics, terrible benefits,
| dealing with patents, among others things made the job of
| teaching incredibly difficult and draining
| geerlingguy wrote:
| I didn't see anyone else mention it, but I think one contributing
| factor is the inclusion of Scratch on the Raspberry Pi, which
| until the past year or so has been one of the most affordable
| ways to get kids set up with a little computer for learning.
|
| Many educational programs have a setup where each kid gets a Pi
| (well until recently since the past year they've been hard to
| get), and Scratch was the perfect companion since it didn't
| require a ton of RAM or a fast CPU to run well.
|
| At this point though I see it come with a lot of other
| educational programs on Chromebooks, too. Since the sharing is
| over that MIT site, it's perfect for those "lite" computers that
| don't store anything local.
|
| One interesting side effect of its popularity is that I've seen a
| number of kids who "know scratch" but don't really "program"
| anything with it. They just load up other people's programs and
| game with it, basically a Steam for Kids.
| [deleted]
| gmiller123456 wrote:
| Interesting that this popped up now. I had heard of Scratch but
| never really looked into it, but decided to give it a go last
| month. I decided to write a planetarium using the actual
| Hipparcos catalog, and solving Kepler's equation for the planet
| positions. I had hoped I could use it as an example to show that
| it's not really that hard to do. Unfortunately, I found it pretty
| tough to organize the code in any meaningful way. E.g. blocks
| can't have local variables, nor return values. You can't call a
| bock in another sprite, there's a workaround using "broadcast and
| wait", but it triggers a screen refresh. Just moving blocks
| around to order them in a meaningful way was quite a chore. Some
| mistakes, like making a variable global rather than sprite level,
| can't be corrected. Adding comments seems to be a bit buggy, and
| they don't move as you move the blocks around.
|
| Since I've been programming for many a decades now, it's hard for
| me to see what it'd be like for a beginner to approach the
| language. But I was left wondering if this really is any easier
| for beginners. And if it is easier, is it really better they
| learn this way since it seems to actively force some poor
| programming choices.
|
| In the end my code ended up looking way more complicated than it
| really is, and I'm not sure anyone but me could make heads or
| tails of it. (For anyone that wants to have a look:
| https://scratch.mit.edu/projects/708233643/ ).
| Wowfunhappy wrote:
| > Since I've been programming for many a decades now, it's hard
| for me to see what it'd be like for a beginner to approach the
| language. But I was left wondering if this really is any easier
| for beginners.
|
| I teach programming classes for children in both Scratch and
| Javascript. I can _promise_ Scratch is easier for beginners.
|
| You're absolutely correct that past a certain point of
| complexity, Scratch becomes kind of stupid. Most kids, however,
| are not trying to solve Kepler's equation.
|
| If you ever have the urge again, try using Scratch to make a
| simple game, something like "catch the falling objects" or
| "avoid the moving obstacles". I think you'll find the process a
| lot smoother.
| modernerd wrote:
| Is there a reason that visual programming languages haven't taken
| off for professional programming?
|
| I know of several for specific fields (Dark for backends,
| TouchDesigner for live graphics/multimedia), but none that are
| more generalised, open, or in wide use.
|
| It feels like an underdeveloped area that's ripe for exploration
| and experimentation.
| solardev wrote:
| In game dev, Unity for example uses a visual shader programmer:
| https://unity.com/features/shader-graph
|
| For serverless functions/API pipelines, check out (formerly
| Integromat): https://www.make.com/en
| LelouBil wrote:
| A lot or 3D renderers use node-based programming for shaders.
|
| Some even use it for procedural modeling ! (Houdini, Blender)
| OkayPhysicist wrote:
| As someone currently employed to port an absolutely gargantuan
| (~10,000 vi) LabVIEW project to C#, there are very good reasons
| to not use visual programming languages.
|
| 1. Writing it is a pain. This is a minor gripe, comparably, but
| if you already know what you want it is very, very hard to beat
| just typing out a word. Dragging and dropping through menus
| makes every little action take too long for comfort. You also
| miss out on the syntactic sugar that makes coding so much more
| bearable: little, everyday things, like indexing into an array,
| or incrementing a value, end up taking just as long as putting
| in any other function.
|
| 2. The information density is atrociously low. Intuitively, it
| seems like the opposite should be true, after all, in a real
| programming language you're missing out on pictures and icons
| and a whole dimension of space. But it turns out that the whole
| "function reads top-to-bottom" thing packs a lot of flow
| information.
|
| 3. Flow-based value passing robs you of variable naming. In a
| language like LabVIEW, you very rarely use typed out variable
| names. Most are replaced by unnamed wires. This subtle feature
| strips the program of a lot of contextual information, making
| it hard to read.
|
| 4. Linting. If you thought making consistent, presentable code
| is hard in 1D space, in 2D it's basically intractable. The
| amount of time I spend futzing with wire pathing is
| infuriating.
|
| If there is any chance that a project will require software
| developers some day (if you're starting a business, or
| inventing something novel, it will) just bite the bullet and
| use a real programming language. Visual programming just
| attempts to make the easiest part of programming easier, and
| makes everything else more painful in the process.
| analog31 wrote:
| I used LabVIEW quite extensively in a past job, and
| eventually switched to Visual Basic. The stuff I was doing
| didn't need the performance of LV.
|
| I found graphical programming to be physically debilitating
| due to eyestrain and wrist fatigue. Granted, this affects
| each person differently, and I also don't use CAD for the
| same reason. I can type text with my eyes closed, or while I
| shift my visual focus away from the screen.
|
| I think a reason why LV programs always seem so unreadable is
| that the sheer physical effort to clean them up gets the best
| of the people doing the programming.
|
| A general issue with graphical programming is that you're
| responsible for the developer interface, and really sweating
| the details to make it tolerably ergonomic is phenomenally
| costly in time and effort -- think of how many programmers
| are employed by Apple or Microsoft.
|
| In contrast, when experimenting with a new or improved text
| based language, you can piggyback off of existing IDE's or
| even basic text editors, and get a running head start on
| adoption by a user community. And the economics are such that
| languages and IDEs can be supported as open source projects.
|
| There are text based dataflow programming langauges, and I
| think if LV adopted one of them as an option, folks would
| stop using the graphical environment after getting over the
| initial hump of learning to program.
|
| I always show people this:
|
| https://www.ni.com/docs/en-
| US/bundle/labview/page/gmath/nonl...
| simplify wrote:
| Darklang is getting there. Functionality is limited, but feels
| great to use. Speaking as someone with 15 years experience.
| Can't wait for it to mature.
| porcc wrote:
| Probably it's just a hard problem. Max for Live is a bit more
| general purpose than TD but still has its limitations I'd
| imagine. Enso lang is the best attempt I've seen for this:
| https://enso.org/
| Wowfunhappy wrote:
| I teach Scratch to kids professionally. I _love_ it as a
| learning tool, but when I need to actually write Scratch code
| myself for whatever reason, I find the experience pretty
| aggravating. Finding the block I need from the big list and
| dragging it into place takes a _lot_ more time than just typing
| the command.
|
| Scratch programs also become messy quickly as the complexity
| increases. Normal code is more compact and easier to actually
| follow.
| philsnow wrote:
| Normal code that's compact and easy to follow is usually that
| way because it was written by somebody with a lot of
| experience. I've seen plenty of shit-piles called "code".
| Wowfunhappy wrote:
| There are better and worse programs in every language,
| including Scratch. However, Scratch blocks physically take
| up more pixels on screen, so you can't see as much
| information at once.
|
| Also, in most languages, you don't have to worry about the
| two-dimensional layout of your code.
| icedata wrote:
| We tried it the other way. I worked for a decade at Logo
| Computer Systems, where the principal designer of Scratch
| used to work. Eventually schools tired of teaching kids text-
| based coding.
| gs17 wrote:
| I work with a similar platform called NetsBlox which is based
| on Snap! (sort of Scratch + Scheme) and there's some text-
| based search/input functionality, to the point where you can
| write a decent amount of it without your mouse at all. Might
| be worth looking into, Snap! has a lot of more advanced CS
| concepts Scratch doesn't AFAIK without making the skill floor
| noticably higher. It also focuses on creating custom blocks,
| which makes organization a lot easier.
| shadowgovt wrote:
| Speed and scalability. Both problems are solvable, and I
| haven't seen anybody putting the investment to solve it in a
| grand scale on a popular, open source visual programming
| language.
|
| For speed: it's really hard to beat the speed of data entry via
| keyboard. A well-designed set of keyboard accelerators would
| cover a lot of ground on making visual programming languages
| comparable to keyboard programming speed, but I haven't seen
| anybody pull it off yet.
|
| For scalability, and in the sense I mean scalability of project
| complexity from a toy desktop project to a distributed system
| deployment or a low level embedded system: the vast bulk of
| tools that are available for supporting large projects are
| built around text and the fact that it's relatively easy to
| translate a tool working in one text-based language to another
| text-based language. Git doesn't care what language you're
| using; it's all text. Diffing tools don't care what language
| you're using; they diff lines of text. As tools like Copilot
| grow, they will start by disproportionately giving a power
| boost to text-based languages because they are built to work
| with text-based languages.
|
| Anything that's going to work with a visual programming
| language in a way that is as robust as these tools do needs to
| treat the language as an abstract syntax tree, not a collection
| of lines separated by line breaks. And the tools to do that are
| going to have to be written almost from scratch; it's simply an
| underdeveloped ecosystem because there's so much fungibility
| between different text-based languages in terms of allowing
| tools that work on one to work on another.
| zozbot234 wrote:
| > Is there a reason that visual programming languages haven't
| taken off for professional programming?
|
| Programming languages in common use are way too general to
| really benefit from a structural editing workflow as seen in
| Scratch. Meanwhile, other VPL's cannot naturally express the
| kinds of abstractions that turn out to be critical when
| programming "in the large", as often happens in professional
| settings.
| bj-rn wrote:
| > none that are more generalised
|
| Do you know vvvv gamma? It's a visual programming environment
| for .Net. Its language (called VL) combines dataflow
| programming with features known from object-oriented and
| functional programming.
|
| https://visualprogramming.net https://thegraybook.vvvv.org
| jeremyjh wrote:
| It has seen a lot usage embedded in different tools but just
| isn't a good fit for a general purpose language. It actually
| becomes much more difficult to manage as programs get larger.
| I've tried many of these tools over the past two decades and
| some are fine for what they are but none left me with hope or
| interest in seeing it replace the dominant paradigm in general.
| messe wrote:
| I sometimes wonder if they could be useful for an OS shell,
| striking a balance between the extensibility of a text-based
| shell and the discoverability of GUIs. I mean, combined with
| search/autocompletion, they're really just a slightly more
| rigid and structured version of text snippets.
| CyberDildonics wrote:
| It's a great question. TouchDesigner and similar programs have
| a limited number of data types even though touch designer does
| a great job at being a little more general than other programs.
| Also TouchDesigner and Houdini both have shader languages that
| allow someone to make nodes that do general purpose array
| transformations which ups their utility a lot.
|
| One big aspect is handling state. Connecting nodes without side
| effects is great when each frame is a cycle and all you have to
| do is transform data into a final result. When actual state is
| involved it becomes hacky or impossible to do in with only
| transformations. Other similar hurdles are branching and IO.
|
| The other is having general purpose programming underneath.
| Shader languages enable a lot, but using a real programming
| language like C++ somewhere not only opens the door to whatever
| you need, but allows you to integrate all the libraries already
| made as well as call out to OS IO APIs etc.
|
| It is amazing though how nice it is to work with an integrated
| and fluid environment where iterations are updated in real time
| and errors are narrowed down for you, not to mention profiling
| broken down by node.
| analog31 wrote:
| Oddly enough, similar story for Python: It's the community.
| SLWW wrote:
| Lego Mindstorms is probably the reason i got into programming.
|
| Moved from using the visual editor as a kid to learning that I
| could use this weird language called "C"(?) to do even more
| complex things with a few sketchy libraries.
|
| Amazing
| jawns wrote:
| One of my earliest memories of writing code was playing Gorillas,
| a QBASIC game, on my school's PC in the early 90s. My friends and
| I would tweak the source code to make the gravity stronger or
| weaker, or make other interesting mods to the projectiles.
|
| For me, it was a perfect introduction, because there was an
| already written, already playable program, and I could dive into
| the code little by little and explore.
|
| Scratch is very similar. My kids love to play games on Scratch,
| but they also enjoy taking a look under the hood to see if
| there's something simple they can modify.
| mod wrote:
| GORILLA.BAS was my intro to programming, too!
|
| In my 8th grade algebra class in a "portable."
| jonplackett wrote:
| QBASIC was also my intro to programming.
|
| I think in a way it's a shame that kids now first see visuals
| rather than code.
|
| There's something much more thrilling about seeing a bunch of
| written instructions become a game, than some sprites that
| already look a lot like the game start moving about.
|
| Another awesome QBASIC feature - the help section taught you
| everything you ever needed to know to learn every feature.
| quickthrower2 wrote:
| I was randomly messing around with a Chez Scheme REPL of all
| things recently. My 7 year old wanted to have a go. So I got
| here to do basic (+ 1 3) type stuff to add numbers. I think
| what made this work is I didn't explain anything, she did it,
| and if there was an error I would say why. She didn't
| question why the plus was at the beginning not in the middle
| like at school. I guess what I am getting the feeling of is
| "monkey see monkey do" might work better than "big tutorial-
| type explaination". Kids will understand - they have the
| intellegence to understand "the thing", but not necessarily
| will they understand the abstract dry way adults describe
| "the thing".
|
| Also applies to adults somewhat - Monad tutorial vs. just use
| a few monads and see what they do.
| Banana699 wrote:
| One-on-One learning like what you're describing is kind of
| the holy grail of all education, or the second-holy grail
| after finding ways of making students interested in things
| they don't yet know/understand (which is also the case most
| of the time in the parent-child bond, because kids are
| interested in whatever daddy and mommy do). This kind of
| enviroment takes the child from being a helpless ape to a
| functional human with intricate understanding of very
| complex rule sets (language, society, technology,...) in
| about 15 years.
|
| But learning enviroments are typically the more inferior
| Many-To-One variant, so even if your child isn't confused
| by RPN, and even if (n-1)/n children aren't confused by
| RPN, the teacher must clarify it nonetheless for the 1/n
| student who is (or appears to be) confused, a book writer
| might have even less options and more constraints.
|
| Basically, education is a very complex human-to-human
| Serialization-Deserialization problem. Knowledge isn't
| what's in the books, or the video lectures, or on github,
| all of those are just on-disk "dead" representations, the
| result of calling toString() on actual knowledge. Knowledge
| is all the intricate in-memory data structures built up in
| all the human brains that are currently living. The problem
| of teaching is : given a brain, reconstruct some of its
| internal data structures in another brain with an error not
| exceeding some threshold.
|
| It's bad enough that you have to serialize the very rich
| and graph-like patterns in your brain into flat streams
| (words, pictures,sounds) to transmit it, it gets much worse
| when you have to do it for multiple brains simultaneously,
| because each brain parses streams differently. The more
| brains and\or the less you know about each brain, the worse
| your teaching performance and the uglier the
| representations you come up with to transmit your
| knowledge.
|
| This isn't to say that teaching is easy when it's
| parent->child, just that (assuming reasonably healthy bond)
| it's as good as it ever gets. A single receiver who is
| extremely interested in whatever you have to say and will
| re-try on error a lot of times to understand it, that's the
| teaching problem on easy mode.
| zozbot234 wrote:
| I assume that Scratch is more accessible to _very_ young
| kids, who may have trouble with the ergonomics of correctly
| inputing text. Also, the whole "drag and drop" workflow can
| potentially be better suited to modern touch-based devices.
| nephanth wrote:
| There's also the fact that -let's face it- code is
| intimidating. Having a ui
|
| - that looks more like what children are used to in
| everyday UI
|
| - that is *localized*: in general programming languages are
| centered on English. Most young children in the world don't
| speak a word of English (beside "hello, what's your name?"
| If they had the luck to get English classes in grade
| school)
|
| Lowers the entry barrier by a lot
| sdenton4 wrote:
| Have you tried scratch? The blocks are written programming
| instructions, with some puzzle piece connectors which help
| avoid basic syntax errors. These instructions drive the
| sprites.
| jonplackett wrote:
| I've tried it on the iPad. Does it work the same there?
|
| I still think it's more awesome to see just a written
| sentence that I typed out become something. Once you
| introduce any form of barrier between that and output, it's
| hard for anyone to know what's really happening behind the
| scenes to help you.
|
| There's a beautiful purity to just simple text becoming
| something awesome.
| mch82 wrote:
| Typing can certainly be more productive. However, it can
| also be error prone. You might checkout Blockly (the
| lower level language used to implement the current
| version of Scratch).
|
| A lot of the stuff we type out in code is syntax and
| templates. Like this loop: for (let i =
| 0; i < cars.length; i++) {
| text += cars[i] + "<br>"; }
|
| Starting out, it's hard to tell if the program syntax is
| wrong or if the program logic is wrong (just getting the
| snippet above to look close to right on HN is a pain
| :-)). Blockly makes that easier by mistake proofing the
| syntax so the programmer can focus on the logic, variable
| names, etc.
| ryukafalz wrote:
| This is something that I think is extremely under-appreciated:
| the ability of a user to dive into the code of what they're
| using and try things out. Like the type-in games of the 8-bit
| micro era, or like Scratch, or like Emacs; each of these allows
| the user to tinker with little overhead.
|
| Modern software, by contrast, is usually too opaque - even free
| software! The barrier to entry is way too high.
| quickthrower2 wrote:
| The browser lets you do this interactively with a web page
| too in console tools.
| [deleted]
| whimsicalism wrote:
| Much of my coding was started with modifying the Minecraft &
| Wii internals and I would call that "modern software."
| bckr wrote:
| You're an outlier for sure. Wii internals sounds very hard.
| whimsicalism wrote:
| Definitely harder than Minecraft as it was in C and also
| a more adversarial environment bc Nintendo made it very
| challenging
| vintermann wrote:
| Yeah. I have a lot of respect for all the Nintendo
| emulator makers and homebrew hackers, but for the
| platforms themselves, I can't help thinking the world
| would have been better if something else won out.
| mch82 wrote:
| Wii actually had a web browser and JavaScript API for the
| Wiimote controller. This comment made me remember a basic
| website I made for it back in the day. It was cool to use
| the Wiimote to interact with the page! The web games
| didn't really take off though. I wonder if Wii emulators
| have the browser app? Video out broke on the Wii consoles
| in my family...
| ryukafalz wrote:
| Minecraft is also slightly an outlier, I would say; its
| modding community has put a lot of work into making it
| easier for people to get started. It's still a far cry
| from having a "view/edit source" button, though.
| messe wrote:
| If I remember correctly the early days were painful as
| well, with it being necessary to manually unpack the jar
| file, and work with deobfuscated decompiled code. I'm not
| sure what the state of it is nowadays, but I hope its
| more pleasant.
|
| My favourite game from a modding perspective is Kerbal
| Space Program. Just drop a Mono/.NET DLL into its
| GameData folder and you're good to go, and code
| completion works automatically during development as long
| as you have Squad's own DLLs in the right paths.
| whimsicalism wrote:
| I remember having to unpack the jar but I don't remember
| the function names being obfuscated or anything like
| that. Then again, this was a while ago.
| josephcsible wrote:
| If you used the Forge development environment, then it
| did the deobfuscation for you. They have it set up so
| well you basically don't even realize it happened.
| GranPC wrote:
| As far as I know, they've been obfuscated since, at the
| very least, the initial alpha release of survival mode
| netplay, back in 2010 or so.
| Alphaeus wrote:
| These days Mojang provides obfuscation maps, so you can
| work with proper class and method names (though no
| parameter or local variable names). There's also been a
| lot of effort been put into the tooling. Nowadays there
| exists Gradle plugins that will download the game jar,
| decompile it and deobfuscate it using the official
| mappings. You develop against the deobfuscated code, then
| the plugin will turn the unobfuscated names back into
| their obfuscated versions when you compile.
|
| There's also been technology developed that lets you
| easily modify specific parts of a method in the game, so
| you can e.g. insert calls to your own functions at
| runtime.[1] This saves from you having to modify the game
| jar itself.
|
| [1]: https://github.com/SpongePowered/Mixin
| _int3_ wrote:
| That's what I did also. I made explosions in Gorillas as I
| wanted them . I didn't know coding or language but somehow
| figured out if I change values here and there the explosion
| would be bigger.
|
| Soon after that wrote program for deleting other programs.
| actually useful because we didn't know yet how to delete from
| DOS.
|
| we were kids left with PC with no instructions at all. Parents
| were busy.
|
| Now in hindsight I see my first steps were somewhat
| destructive.
| bredren wrote:
| I too edited gorillas as one of my first programming
| endeavors.
|
| As for the other thing, there was some DOS command I learned
| that forced an immediate reboot. I realized this could be
| added to the end of an autoexec.bat and create an endless
| reboot loop.
|
| Well, I thought this was a funny prank so I edited the file
| on a display PC at Costco. Came back by it later in the trip
| and it's still booting and rebooting.
|
| I look back on that and realize it probably had to be
| replaced and sent to some other state where some tech either
| had to troubleshoot it or create a new image all together.
|
| Not the best use of value but it was amusing to exert power
| over computers at such an early age.
| Dunedan wrote:
| That brings back some very fond memories. Another game included
| in MS-DOS was Nibbles. I still remember wrapping my head around
| how Nibbles worked, as the source code didn't seem to fit the
| actual logic being run. It just looked way too short and
| simple. That's before I discovered how to view the source code
| of functions in QBasic. Then it clicked.
|
| The Internet Archive has these games available to play by the
| way:
|
| https://archive.org/details/NibblesQbasic
|
| https://archive.org/details/GorillasQbasic
| quickthrower2 wrote:
| That is brilliant, thanks. Takes me back. I didn't do much
| programming in QBasic, but I do remember that interface. I
| just now debugged Gorillas with a breakpoint and checked one
| of the values in the immediate window. It is quite a nice
| debugging interface, considering the constraints! (Actually
| it has a nice "just works" quality about it of something
| where the same people came up with the language and the ide
| and it is all designed together. Classic VS has this feeling
| too).
| HorizonXP wrote:
| Can you share some here? I'm about to get my 3 year old into
| Scratch, since it's already on his RPi.
|
| I remember doing the exact same thing in grade school with
| Gorillas and QBASIC. I actually want to download it now and
| play it again.
| qbasic_forever wrote:
| You can play it in your browser right now:
| https://archive.org/details/GorillasQbasic
| koverda wrote:
| Can he read yet?
| HorizonXP wrote:
| Yes
| tartoran wrote:
| I have a 4 year old and I find that he's not ready to be
| exposed to computers let alone programming languages yet.
| There are so many things to learn at that age that sitting in
| front of a screen for too long may be a disadvantage. Im
| thinking a starting age is more like 6-8, of course depending
| on other factors as well. I find that 3-4 may be a good time
| to start reading though
| mattkevan wrote:
| Our (then) 4 year old got the hang of Scratch Jr on the
| iPad really quickly. It's great and gets kids used to
| sequencing, basic logic, loops, control flow and more
| without needing to be a confident reader.
|
| She loved, and still does love, drawing her own sprites and
| recording sound effects to create interactive stories.
| hansoolo wrote:
| 3 year old? Why?
| HorizonXP wrote:
| He's pretty advanced for his age, so just want to expose
| him to all things, let him decide what he likes.
| solardev wrote:
| Warcraft 3's map editor scratched that itch for me! I'm so glad
| there are more accessible, and free, tools now.
| nicoco wrote:
| Modifying gorillas? You and your and friends were rockstar
| programmers already. I remember looking at the source code and
| thinking "this must be black magic".
|
| Thanks for bringing back the memories though. I looooved
| playing gorillas!
| isoprophlex wrote:
| I remember actually crying from frustration because I
| couldn't figure out where the bananas were drawn. I
| desperately wanted to change it into something else.
|
| Great preparation for a career in software haha
| Ozzie_osman wrote:
| I also started learning Qbasic from Gorillas.
|
| This path of playing a game, wanting to learn more, then
| getting into computers and coding is actually really common in
| parts of the world where computers and computer-based
| educations aren't as wide spread.
|
| I hire a bunch in Latin America, Middle East, etc, and every
| interview my first question is always "why did you get into
| software?" and I'd say more than half of people I interview got
| into coding in one of two ways, either gaming, or building
| websites. I'm interviewing people who learned to code more than
| ten years ago, when websites were HTML with some PHP and gamed
| were much more accessible. I'm not sure what the corresponding
| path would be these days.
| conradev wrote:
| > Most importantly, browsing projects shows you what's possible.
| A kid begins by playing games, starts to get curious, and next
| thing you know, they're changing the code to give themselves
| extra lives.
|
| This is actually the driver for a lot of kids to learn
| programming. Neopets and Myspace allowed you to customize your
| profile with HTML, Minecraft allows you to make mods in Java,
| Roblox has an entire game studio that leverages Lua. Kids see
| something they want to be able to do, and they do it!
|
| The steepness of the learning curve does matter, but searching
| "how to make a roblox game" into YouTube goes quite a long ways
| these days
| haunter wrote:
| Google Game Builder what I really like to use to teach because
| it's using JS. Not that I used it many times but it's really
| engaging and at least you interact with a "real" language.
|
| It was killed by Google (ofc) but still available and works
| perfectly https://github.com/googlearchive/gamebuilder
|
| The last full build (binary release) is here
| https://github.com/googlearchive/gamebuilder/tree/master/bui...
|
| Here is the original trailer https://youtu.be/l9Mf_XEZq-A
|
| And some of the tutorial videos are also available
| https://youtube.com/playlist?list=PLuYHfxlxFzb25nWnevSN5wQVO...
| amelius wrote:
| Someone should probably reinvent spreadsheets using this
| language.
| ynniv wrote:
| Name another language where you can be productive on a mobile
| device.
| Wowfunhappy wrote:
| Scratch is pretty awful on mobile, actually.
| ynniv wrote:
| Kids don't have a problem using a tablet
| Wowfunhappy wrote:
| Tablets are mostly fine, just not phones. Plenty of people
| do webdev on iPads too.
| easrng wrote:
| JavaScript? I have written things on my phone before though
| it's kinda a pain. (https://jsconsole.com/ is your friend.) The
| Scratch editor doesn't work on phones really at all though it's
| fine on tablets.
| georgia_peach wrote:
| Scratch is overrated. The color blocks are a fantastic draw for
| getting a nonprofit funded, but for the children actually using
| it, the they're just an obstacle. Even at the youngest school
| ages, children grasp the grammatical concepts of programming
| effortlessly. It's the math that's the kicker--explaining modulus
| when they haven't gotten to division yet, binary & hex before
| they've fully grasped decimal, coordinate systems before they've
| learned negative numbers, etc...
|
| IMHO, best modern tools for _lern2code_ would be a tie between
| Lua /Love2d & p5.js.
|
| And for 3rd place... you're going to think this is WAY OUT
| THERE... C--spare them the gcc esoterica of course--with sample
| project they can use as a scratchpad. Having types, but without
| all of the meta complexity of anonymous funcs, OOP, closures,
| dynamic typing, etc, takes a lot of the complexity ( _and
| frustration!_ ) out of learning to program.
|
| At the older & more social ages, the old web APIs were a
| wonderful stomping-ground. That avenue has since been narrowed-
| down & greatly so, for obvious reasons.
|
| The Papert/LOGO/PARC stuff should be thrown into the fire. A
| military-industrial experiment on children; how quickly can we
| transform the random prole into a technician? Not that any of the
| researchers were "bad people" or even aware of it. It was a
| simple necessity of the times & typical " _forest for the trees_
| " situation. I think the numerical/visual/spatial primacy of this
| branch--trying to give kids a visual "feel" for mathematical
| representations before their brains are ready for the "real deal"
| --diverts focus away from many of the more "human" uses of the
| technology.
| bolangi wrote:
| So, impossible to make a syntax error.
| jecel wrote:
| It is great that Scratch can be used as an introduction to
| programming, but that is not why it was created. It was part of
| the MIT MediaLab "Computer Clubhouse"[1] project where it would
| be used to enable a remix culture of cute animations and even
| simple games. Scratch's implementer, John Maloney, had already
| helped create a programming environment for kids called EToys[2]
| using Squeak Smalltalk, just as in the first versions of Scratch
| (later rewritten in Flash and then in Javascript).
|
| So the comments about how it is hard to do in Scratch something
| that would be trivial in Basic or some other language are not
| surprising. It is an animation system that allows you to use
| programming to increment that.
|
| As others have pointed out, a system with the same visual as
| Scratch but design for actually programming is Snap![3] so it is
| just a matter of using the tools for what they were created to
| do.
|
| [1]
| https://web.media.mit.edu/~mres/papers/Clubhouse/Clubhouse.h...
|
| [2] http://squeakland.org/
|
| [3] https://snap.berkeley.edu/
| antiterra wrote:
| > that is not why it was created. It was part of the MIT
| MediaLab "Computer Clubhouse"[1] project
|
| > so it is just a matter of using the tools for what they were
| created to do.
|
| Ah yes, the vaunted historic MIT culture of 'using things for
| what they were created to do.'
| ElemenoPicuares wrote:
| I'm not really sure what you're pushing back against here --
| are you taking issue with the terminology? Or are you saying
| that scratch should not be used as an intro to programming
| logic because it was originally designed to control visual
| components fairly superficially?
| bowsamic wrote:
| He's explaining the origins of why it's bad at certain
| things: because it wasn't originally designed as a general
| purpose tool. That's the whole point of his comment, nothing
| else is implied
| lupire wrote:
| zzixp wrote:
| College student here. Scratch was my first real introduction to
| programming. It's an amazing tool, and a great way to get anybody
| started with programming
| chkas wrote:
| For beginners up to about 12 years old, Scratch is optimal. For
| older ones I think a text-based language is better. In the past,
| that was BASIC. Today it can be Python, with which beginners have
| some problems in my experience. And now comes the shameless self-
| promotion: I have developed something that can fill this gap. By
| the way, it is open source.
|
| https://easylang.online/ide/
| ksaj wrote:
| I like how under the (more) menu, you can step through the
| code. It not only teaches kids how their code works, it also
| indirectly teaches them how a debugger works.
|
| Where the trace shows, it would be even better if the variables
| could be edited, which brings it even closer to debugging, and
| also expands on how the program logic works.
| empressplay wrote:
| Logo can also fill that gap, as it has for a very long time:
|
| https://turtlespaces.org/weblogo/
| Wowfunhappy wrote:
| I've seen Scratch described as "learning how to talk before
| learning how to spell".
|
| For beginning programmers, memorizing syntax is a major source
| of cognitive load. As a result, it's harder for them to
| practice the computational thinking skills that coding is
| really about. Scratch removes this barrier.
|
| I actually think Scratch is a good tool for beginners of any
| age, including adults.
| Retr0id wrote:
| A fun statistic is that Scratch now has over 100 million projects
| published by users on their website[1].
|
| GitHub only reached 100m repos in 2018[2] - I can't find any more
| up-to-date numbers, but it's probably around 150m today.
|
| It's crazy to think that Scratch and GitHub operate on similar
| orders of magnitude.
|
| [1] https://scratch.mit.edu/statistics/
|
| [2] https://github.blog/2018-11-08-100m-repos/
| fillskills wrote:
| Maybe one of the reasons for sudden increase in the projects
| are companies such as Whitehat Jr. Whitehat incorporates and
| leverages Scratch in their lesson plans. For each lesson kids
| may be creating 1-3 Scratch programs. You can read more about
| Whitehat Jr, their approach to sales etc by doing a little
| googling. And am sure there are other companies who follow the
| same practice of leveraging Scratch in tutorials. (edit) Not
| condoning this, just adding more information.
| nitwit005 wrote:
| That's also where many github repos come from. I've seen the
| instructions to fork the teacher's repo when doing searches.
| AviationAtom wrote:
| Pretty sure they're owned by BYJU'S now, an Indian Edutech
| firm. Lookup some of the horrible reviews about how they run
| business.
| sebastiansm wrote:
| The first week of Harvard's CS50 involves the creation of a
| little program in Scratch too.
| wiradikusuma wrote:
| I can't get my son to get excited with Scratch :(
|
| Every time we open RPi, and I start opening Scratch, he will say,
| "Daddy, how about we do this" while taking over the mouse and
| opening a game.
|
| When I'm not looking he'll open Chrome and play YouTube.
|
| To be fair, once we're in Scratch, I don't even know what to do
| with it.
| askvictor wrote:
| Try the Minecraft Education Edition coding tools (uses
| Make:code, which is much like scratch, but a lot higher
| ceiling). There's other cool make:code options too, or there's
| straight minecraft command mode...
| astrobe_ wrote:
| I am not a parent, by I think there are kids that are
| interested in computers and programming, and kids that are not.
| That's the divide between users and makers. That does not mean
| they can't be creative with something else.
|
| So it's a good thing to try to show them how the magic happens,
| but being too persistent is pointless.
| unixhero wrote:
| For teaching kids (school classes) to code, I have had better
| success with https://www.codecombat.com than MIT Scratch.
|
| Kids had more fun than with scratch and learnt programming actual
| language.
| emacsen wrote:
| It looks really cool, but I don't see a way to easily self-host
| despite:
|
| https://blog.codecombat.com/we-have-open-sourced-everything/
|
| Did you run your own environment?
| dzdt wrote:
| The great: Scratch has some hugely good things going for it. The
| community sharing model is ridiculously good. The ease of being
| able to jump in, put up a sprite and make it do something is
| super. It is so easy to go from kid-style ideas to something that
| happens on screen: "there is a castle, and a dragon, and it flies
| over and makes a noise...". They did a great job of making the
| sprite actors easy to use with a small number of programming
| blocks. The actor/message model is nice. Importing images and
| making them into objects is easy, and there is a big enough
| library of built-in actors to get you started.
|
| The not-so-great: if you try to do something outside of the range
| of what Scratch really tried to make easy, it quickly gets hard.
| Moving 2d sprites around in simple patterns using built-in
| collision detection: peachy. Pretty much anything else: not so
| much. And as projects get large the block-based visual
| programming is a frustration. There is no text mode.
|
| My wish: It would be great if someone would make a one-level-up
| version of scratch, with great community sharing features and
| sprite/object/message based library with super-easy graphics
| programming but text-based source code and with the ability for
| add-on libraries to be part of the ecosytem.
| [deleted]
| notsound wrote:
| I think that tools like scratch and code.org really need to
| expand their ability to interact with 3rd party services.
| Code.org has a very limited http request API, but it is locked
| down to a couple APIs (I've looked at this feature, and I
| have... concerns over API key security) while scratch has no
| such capability. I really think that this type of thing helps
| ease the transition between block coding and using a written
| language. I do understand that there are some concerns with
| abuse, but I think that many of those concerns have effective
| mitigations.
| r3trohack3r wrote:
| I started something like this for a local hackathon to teach
| kids programming, but then COVID hit, the hackathon was
| canceled, and the project stalled.
|
| It's like scratch, but it generates a node script to drive a
| parrot drone: https://github.com/retrohacker/takeoff
| kelseyfrog wrote:
| The annual variation shown in the graph immediately says tells me
| that a large portion of use is driven by academic forces. That
| can be a problem, but can also be an opportunity.
|
| If the institutions driving Scratch adoption decide to switch
| away from Scratch, the community will be on much more unstable
| foundations. The opportunity here is finding non-education modes
| of engagement. Social engagements, viral engagements, or non-
| academic partnerships are all ways Scratch could strengthen its
| community.
|
| Wishing them luck - it looks like this brings joy to a lot of
| kids.
| itronitron wrote:
| There is an integrated Minecraft 'Scratch' code editor now
| (https://minecraft.makecode.com/#editor) although that is
| probably targeting middle-schoolers. In my experience most
| teenagers coding for MC (not driven by academic forces) are
| just using Java directly.
| hmahncke wrote:
| A lot of discussion here about the limitations of Scratch as a
| programming language.
|
| But the magic of Scratch is the community. My daughter learned
| Scratch, and she joined multiple teams of 10-year olds making all
| kind of interactive stories and games. And virtually every
| interaction she had was positive, uplifting, and helped her
| construct her identity as a programmer.
|
| She now teaches Scratch for kids and programs in Java and Python.
| But making those friends and doing those team projects was
| invaluable - and nearly unreplicable in another language/
| environment.
| electriclove wrote:
| How did she get involved with joining those teams? Is that
| something she sought out herself? Are there programs that
| facilitate this?
| andrewstuart wrote:
| Whilst I totally agree with you, on the other hand, a child's
| first introduction to programming should be _easy_ , intuitive
| and powerful.
|
| What could be worse than an introduction to programming that
| puts a certain number of children off because it's not those
| things?
|
| Clearly alot of kids manage to drive it enough to their
| satisfaction, but the failings of Scratch must leave many
| children behind.
|
| I know my son gave Scratch a go and gave up.
| vxNsr wrote:
| I have trouble understanding how another language is more
| intuitive than scratch, indeed you don't provide any examples
| of more child friendly languages, just that it didn't work
| for your son.... which could just be because your son doesn't
| wanna program.
| piceas wrote:
| I would like a physical version made of blocks that can be
| arranged rather than dragging boxes on the screen. Not
| another language as such but I suspect would be more
| intuitive.
| normac2 wrote:
| I've heard the exact opposite, that the online community is
| toxic and one of the main downsides.
|
| I assume both are true in different cases, and you just have to
| be careful what part of the community you get involved in.
| spankalee wrote:
| I like Scratch - my kid uses it and I worked briefly with the guy
| who made Blockly, the underlying visual programming toolkit - but
| the programming environment makes many things far too complicated
| with its singular focus on sprites.
|
| It's very, very difficult to do things as simple as display a
| number on screen. My 7yo was making a number guessing game, and
| to display a two-digit number we had to make two sprites that had
| 10 "costumes" (0-9) then do modular math to select the costume
| for each digit. Sprites also have their own code, and if you
| duplicate one and edit the code the edits don't apply to the
| duplicate - so there's no user library or abstraction power at
| all.
|
| This made dealing with Scratch far more complex and time-
| consuming than the logic of the game my kid was making, which is
| the exact opposite of what you want in a learning environment. I
| don't really want to focus on the idiosyncrasies of Scratch when
| teaching programming.
|
| Some simple text and drawing commands, user-defined functions,
| and a library would go a huge way towards making Scratch simpler.
| There are some other Blockly-based environments that may have
| this... but they're not as popular.
| ianbicking wrote:
| There were a couple ways you could have made it easier, but
| Scratch's constraints and abilities can be hard to navigate or
| understand. Like you can use Say, or a visible variable, and I
| think the drawing extension would work too.
|
| I tried to do a different guessing game, not much more
| complicated, but it does get hard... I wrote up some thoughts
| in a thread:
| https://twitter.com/ianbicking/status/1546207554665172992
|
| It's good that Scratch doesn't change that much, there's lots
| of books and traded wisdom that retains its value as a result,
| but there's also some big missing pieces that make some things
| very hard to write in Scratch, and they could be improved upon
| but they aren't
| dtagames wrote:
| If I recall correctly, Scratch existed before Blockly, which
| was developed by Google. The excellent Microsoft MakeCode
| environment also uses Blockly and looks like Scratch with the
| important distinction that you can switch back and forth
| between blocks and Typescript anytime.
|
| Even with that feature, there is no "UI" capability. Getting
| stuff on the screen still consists of putting up sprites with
| words over their heads! I ran into this while developing two
| games on the platform, like this one: Mathtown Alley[0]. It's a
| crippling limitation even for me, and I write TS
| professionally.
|
| [0] https://arcade.makecode.com/59845-44370-91548-60605
| mmoskal wrote:
| At least in TypeScript there are hooks in the game loop that
| let you write pixels on the screen.
| kazinator wrote:
| > _My 7yo was making a number guessing game, and to display a
| two-digit number we had to make two sprites that had 10
| "costumes" (0-9) then do modular math to select the costume for
| each digit_
|
| So if your kid is cool with this kind of clever workaround for
| the limitations of some piece of crap, you have a future
| software engineer.
| glenngillen wrote:
| Exactly! I think the value of these programming environments
| is in helping you find new ways to think about problems.
| Having constraints/limitations can be one way to force that
| creative rethinking to happen sooner rather than later.
| Obviously you need to find a good balance though as causing
| frustration and helplessness would have the opposite effect.
|
| I've an anecdote of my own that I still think about semi-
| regularly:
|
| I was volunteering at a school for a year or so helping them
| teach 9-11 year olds Scratch. Most of the kids spent the term
| trying to move sprites across a canvas and making basic
| platformer style games. It was a heap of fun while also
| challenging at times.
|
| One day one of the students grabbed my attention and asked
| for some help making something work. She'd decided to build a
| trivia game, and was having an issue working out how to make
| the text for the previous question disappear. When I looked
| at what she'd built I was blown away. She'd basically built a
| fully recursive function in Scratch that would iterate
| through a collection of questions & answers. It was built
| almost exactly like I'd expect a professional developer to
| build something. A simple reusable function. I didn't teach
| that. She'd never used Scratch before. She'd not done any
| programming before. It was just the most intuitive way for
| her to do it.
| andrepd wrote:
| Seriously, I remember programming in constrained
| environments, for example in a calculator, and how that
| seemed to boost my creativity. I wonder if something is not
| lost (in terms of learning) by having such hugely powerful
| systems with any non-trivial functionality a simple library
| download away.
| kazinator wrote:
| Or, as another example, try processing a file of
| hexadecimal numbers in POSIX standard Awk.
|
| Another one: a few months ago I wrote an Awk function
| which can increment an alphanumeric string, like "A0Z" ->
| "A1A" -> "A1B" ...
|
| I had to write a BEGIN block which populates global
| hashes for looking up the successor of a character, and
| whether it wraps around in its class. By character, I
| mean string of length 1, of course; there are no
| characters in Awk.
| _benj wrote:
| This made me laugh! and then made me sad :')
| ace2358 wrote:
| I thought it telegraphed that maybe the kid is ready for the
| next level up?
| SoftTalker wrote:
| Or it's a good lesson on knowing when you're using the wrong
| tool for the job.
| [deleted]
| mabbo wrote:
| Yeah seriously, is this kid looking for work?
| lolinder wrote:
| I've always thought that number-guessing games were a first
| choice for introductory coding primarily because they're well
| suited to the standard library of most programming languages.
| Once you have standard I/O, you can write a number-guessing
| game.
|
| Scratch has different constraints than most languages, but I
| don't view that as a bad thing. Scratch takes what is normally
| a huge undertaking--sprites--and makes them as much a first-
| class primitive as stdin/stdout are in most languages. Yeah,
| this makes the number-guessing and text-adventure games we
| usually use as teaching projects harder, but it makes it a lot
| quicker to build visual games. I don't think Scratch needs to
| change, I think we need to recognize that kids in this
| generation won't be building the same starter projects that we
| did growing up.
| swayvil wrote:
| Back on my good ol C64 Basic I started with art. With the
| poke function you could put characters on the screen, change
| colors, etc. Put that in a goto loop and you've got a cool
| modern art machine.
|
| The sound generator was quite rad too. 3-voice chords. Sines,
| triangle, etc waveforms.
|
| My 12 year old self liked it a lot.
| seldomI wrote:
| Shameless plug: we're running a Scratch-like site, but for
| terminal programs (among other runtimes). A number guessing
| game is one of our example programs. It's about 20 statement
| blocks: https://app.code-it-studio.de/project/303
| xcambar wrote:
| Vert Nice!
| nicoburns wrote:
| If you're willing to pay then give gamemaker studio a go. It
| has a similar logic block based model (you can also progress
| into a full ECMAscript based language once you get more
| advanced), but is a lot more flexible about what you can
| display.
|
| Not 100% sure it's still beginner friendly as I used it over a
| decade ago, but I'm pretty sure there's a free trial, so you
| could find out.
| pronlover723 wrote:
| > a full ECMAscript based language
|
| Wat? Really. I thought it just has GML which is one of the
| shittiest languages I've ever used. It's really and seriously
| crap. On par with trying to write real programs in sh.
| nicoburns wrote:
| GML is an ECMAscript dialect. It's not the best, buts it's
| a lot more powerful than dragging boxes around, and IMO a
| step above bash too.
| Sirened wrote:
| >7yo was making a number guessing game, and to display a two-
| digit number we had to make two sprites that had 10 "costumes"
| (0-9) then do modular math to select the costume for each digit
|
| This, imo, is what makes Scratch a _great_ education platform.
| It has a couple of very easy to use primitives (such as
| displaying and moving sprites) and leaves you to build whatever
| else you need by abstracting things on top of it. This teaches
| you one of the most foundational programming skills: how to do
| something complicated with only weird, rudimentary tools.
| Wowfunhappy wrote:
| This is also a good point. Scratch isn't designed to make
| coding _easy_ so much as _conceptually understandable_.
| pishpash wrote:
| That's not it, otherwise you'd make the little ones play
| with a Turing machine.
| space_fountain wrote:
| Turing machines are about being mathematically tractable
| right not about understanding right?
| tmaly wrote:
| I just think there are so many other forms of distraction
| today. Young kids are carrying around cell phones, texting
| their friends. It's that or they are doing something on
| Tiktok.
|
| They don't have time to hack like that anymore.
| BenHerbst wrote:
| Yes true for most people ( I am 13, Started programming in
| Java with 10 ) but some also do this other stuff. Like I
| installed ubports on my second phone today ( Writing this
| on it )
| megous wrote:
| postmarket OS is also fun, and a bit more Linuxy...
| tmaly wrote:
| I think you are the exception, not the rule. I teach
| Scratch, MakeCode, and Microbit to kids at my daughters
| school. Only a small fraction take it serious and get
| into tinkering and making stuff.
| herewulf wrote:
| Never heard of ubports. Looks interesting. A 40 year old
| just learned something from a 13 year old. If this is how
| you're spending your free time, then you have a bright
| future ahead of you. Keep it up!
| koide wrote:
| You should consider this interaction as an opportunity to
| also revisit your ageism. I'm all for encouraging young
| people, and OP seems a really bright 13 years old person,
| for sure. But try to keep condescension out of the way.
| As anybody with children can tell you, we all learn from
| them all the time. It's not something surprising.
| andybak wrote:
| Maybe don't throw -isms around so lightly, eh?
| koide wrote:
| I find hard to interpret "A 40 yo learned something from
| a 13 yo" in a non ageist way. Seems that people disagree,
| but nobody has provided a counterpoint.
|
| Actually, the comment in question would have been perfect
| encouragement in my view just by removing that phrase.
| andybak wrote:
| Just felt like a bit of an overreaction to me.
| hammerheadtech wrote:
| I agree, my 7 year old is into maths at the moment and he found
| it easier to just use PHP to do basic maths.
|
| I sat down with him for about an hour and I printed a "cheat
| sheet" for the various arithmetic operators (just the basic
| ones) and he's now quite able to just whack a simple script
| together and execute it on the command line.
|
| Having said that, he wasn't entering the situation completely
| blind. He's been using a PC with Linux (Ubuntu) since he was 3
| years old. He's been playing Minecraft for 4 years (which is
| excellent for younger kids to learn mouse skills).
|
| I also started him out on GCompris on a laptop. Then we both
| built a PC for him when he was 5. I got a load of cheap second
| parts during the early part of the pandemic and I let him do it
| himself (while observing and guiding).
|
| I started him early because I started early too and I started
| him off on PHP because I remember it being relatively easy to
| learn when I was a kid because it isn't a particularly strict
| language which means a young mind doesn't have to perform a
| huge amount of translation in their own head, they can almost
| type exactly what they're thinking and run it.
|
| The command line I introduced almost immediately. It was a way
| easier method of teaching him to launch apps without my
| help...I just set the terminal to load on startup and printed
| him another "cheatsheet" of basic stuff that he needed (no rm
| -rf * just yet).
|
| If he's in an exploratory mood he will use the menus and UI but
| if he just wants to get straight into Minecraft or write a
| script he can just get stuck in!
|
| I can see scratch becoming more interesting to him further down
| the line but for now, certain things are easy enough.
|
| Typing is an interesting one though...I spent a fair bit of
| time working on his typing because his handwriting at school
| wasn't up to par (he's fine now, but his crap handwriting was
| holding his spelling back a bit). As soon as he became somewhat
| proficient at typing his spelling improved no end.
| Unfortunately though, his teacher won't let him do spelling
| tests on a laptop. Which I think in 2022 is the dumbest thing
| ever. They've only just started teaching typing and basic
| computer skills in his class (as of about 6 mo this ago). I had
| his teacher take me aside and ask me exactly what the hell I
| did to get him so far ahead. They measured his typing speed at
| 60wpm!
|
| This all said though, I am an IT guy...so parents with little
| to no tech skills might not have the smooth ride I had, which
| is probably where tools like scratch come in...I think it's a
| tool for non-technical parents as well as kids.
|
| Before scratch though, I'd highly recommend GCompris...but be
| warned, you need to do it short sessions (20 minutes or so)
| because kids get bored of it fast.
|
| My youngest is 3 and he's getting second knowledge from my
| oldest right now as well as the same stuff I did with my
| oldest...so maybe he'll learn even quicker?? We'll have to wait
| and see.
| ajdegol wrote:
| I think there is great value in being able to write symbols
| with your own hand. It's more powerful to us subconsciously
| to use extra muscles and see something which is distinctly
| recognisable as our own making. We are losing a lot of
| enactive cognition by being on screens in chairs; to societal
| detriment I would wager.
| falcor84 wrote:
| > It's very, very difficult to do things as simple as display a
| number on screen.
|
| I suppose I might be missing something, but if you just care
| about displaying the number, rather than any particular
| styling, you can just show the variable, right?
| ryankrage77 wrote:
| Just have a sprite 'say' the variable
| dtagames wrote:
| You cannot. A sprite can "say" a value by showing it near
| them, bit that's it. There's no place to write anything or
| create a UI, hence the complaint.
| yCombLinks wrote:
| Show the variable how? There's not a console, there's not a
| way to simply display a string or character. Scratch revolves
| around programming sprites to do things
| tmaly wrote:
| You could also display it with a say or think block.
| djsrv wrote:
| Tick the checkbox next to the variable in the block
| palette. That creates a variable watcher on the stage. You
| can also right-click the watcher to change it to a large
| readout, displaying the variable contents within a minimal
| frame.
| easrng wrote:
| Also if you get Scratch Addons
| (https://scratchaddons.com/) and enable the Debugger
| addon it adds a console and blocks to log to it.
| AzzieElbab wrote:
| Something as simple as this should not require add-ons.
| This isnt js and `leftPad` you know
| mynameisvlad wrote:
| Why would kids need a full debugger with console? That's
| far from "simple".
| Snild wrote:
| Every variable has a checkbox they makes it show on screen:
| https://en.scratch-
| wiki.info/wiki/File:Checkbox_to_show_or_h...
|
| There is also a command block to show or hide it
| dynamically.
| easrng wrote:
| For the editing and duplicating stuff, keep in mind you can
| drag blocks into other sprites.
| vnorilo wrote:
| Since it is from the constructionist tradition, I believe it is
| intended as a "microworld" [1] so being powerful and general
| purpose is an anti-goal. It is optimized for trial-and-error
| exploration, which works best when the functionality is reduced
| and there are not too many tools in the shed.
|
| Producing text and formatting strings is likely deemed out of
| scope for that reason. People figuring out clever workarounds
| is a bonus!
|
| 1: https://edutechwiki.unige.ch/en/Microworld
|
| edit: better link
| szundi wrote:
| Missing these abstract features mean lower barrier to entry, so
| good for kids
| avgcorrection wrote:
| Displaying a number sounds like some hello world popup exercise
| that you would do in Rust or Go. I don't see why one not just
| jump right to the game-making, which Scratch is good at.
|
| > This made dealing with Scratch far more complex and time-
| consuming than the logic of the game my kid was making, which
| is the exact opposite of what you want in a learning
| environment. I don't really want to focus on the idiosyncrasies
| of Scratch when teaching programming.
|
| Printing "Hello World" and displaying a number is easy in
| languages like Java. Making a top-down shooter is not. So why
| does one usually do the print stuff rather than the top-down
| shooter stuff? Ain't that also because of the idiosyncracies of
| your run of the mill general purpose programming languages?
| enragedcacti wrote:
| Probably because his kid wanted to make a number guessing
| game? I feel like the last thing you would want from a
| children's programming language is "why would you want to do
| that? Go learn Java if that's the type of thing you want to
| make"
| avgcorrection wrote:
| They just said that the kid was making it. Not whose idea
| it was.
| hooande wrote:
| It seems like Scratch is made specifically for game
| development, since everything revolves around the concept
| of manipulating sprites. "Guess the number" is a game, but
| not the kind of game that this tool was made to create.
| pmontra wrote:
| Hiscore tables in games are full of numbers.
| Wowfunhappy wrote:
| Those are easy to make in Scratch via lists.
| tylorr wrote:
| Using text in games is incredibly common
| [deleted]
| twobitshifter wrote:
| look at the taco burp game. There's a scope there, hence ya
| need numbers.
| mbrodersen wrote:
| Look I was teaching myself Z80 machine code on a ZX-Spectrum
| when I was 11. No internet to help me out and nobody I knew
| could help me. Just one book. And yet I learned how to hand
| compile Z80 assembler to machine code and make fun little
| games. So don't underestimate the capabilities of kids to solve
| hard problems :)
| sfjailbird wrote:
| That's different. You were learning from first principles,
| using the lowest level primitives, and how putting them
| together made it possible to do an almost infinite number of
| things. That is powerful and intoxicating.
|
| With Scratch you are given a limited set of blocks that are
| designed for a limited set of solutions. It is at the same
| time not particularly powerful nor does it feel like you can
| grow your solutions to anything you have in mind.
|
| I have three kids and have taught (or attempted to teach)
| each of them programming. I started with Scratch every time,
| but it never piqued their interest, although they understood
| it. I have since started them on Javascript from the very
| basics (Khan academy) and they are very curious about each
| new lesson and the weird powers it brings. YMMV but people
| should not assume Scratch or Mindstorms and so on are
| necessarily better learning environments, just because they
| are 'friendly' - it can be quite the contrary.
| lowwave wrote:
| Have not used Scratch, but on first loook it seems very similar
| to scheme-bricks: https://github.com/nebogeo/scheme-bricks
| Wowfunhappy wrote:
| Did you try using the "Say" blocks? I know they don't look
| quite as nice, but this is what I use when I'm building
| something "text based".
| spankalee wrote:
| We ended up redesigning the app to be better for "say" and
| "prompts", but our original design just had a couple of big
| number displays on the screen and a button - something he
| literally drew out first on paper. We had to basically fail
| at that before making it more text based.
| mynameisvlad wrote:
| Why wouldn't you lead with this? Even the limitations you
| called out seemed to be fairly easily worked around.
| bob1029 wrote:
| Constraints are the entire point. Being forced to do things a
| crappy way is where many lessons are learned.
| avodonosov wrote:
| I've spent a fair amount of time with Scratch, enough to say I
| understand the language pretty well.
|
| The primary game I've created during this study:
| https://scratch.mit.edu/projects/575241838/fullscreen/ Here you
| can design a level and let a friend pass it - destroy all the
| bricks.
|
| In Scrath you hit language limitations all the time. The Scratch
| designers say it is so to be friendly to beginners, however the
| need to invent crazy tricks to achieve simple things is not
| actually friendly.
|
| IMHO, it is better and simpler to teach children using more
| normal languages, consisting of a small set of well composable
| elements.
|
| The Snap! is an extended reimplementation of Scratch, but prvides
| power approximately equal to Scheme: https://snap.berkeley.edu/
| However, I haven't used it much since I need development support
| on tablet, which is not complete in Snap.
|
| I also tried Lego Boost and Lego Technics - the coding experience
| is basically the same as in Scratch, but for teaching programming
| Scratch is better I think, because you can create interesting
| things without the need to connect to devices. And not much you
| can build from lego motors and sensors.
|
| And the last I explored was the Castle mobile app. A couple of
| games I created:
|
| https://castle.xyz/d/l-_oFKrf5?cxshid=yjIUmDcFo
| https://s.castle.xyz/qZbz0u2nK10
|
| The coding experience is worse then Scratch in my opinion
| (especially on Android were the Castle app has a redraw bug, so
| that the menus you invoke are not visible until you manually
| initiate a redraw by switching to Android app list and back to
| the Castle app). But the advantage is 2d physics support - they
| wrap the Box2D engine.
|
| Also, I think the Elevator Saga is a good idea for learning. And
| it's just javascript. https://play.elevatorsaga.com/
| MetaWhirledPeas wrote:
| This Scratch thing reminds me of Authorware. Fun and powerful
| if you are still at a point in life where you are terrified of
| coding with text. But after you outgrow it you regret not using
| those brain cells to learn conventional programming. (At least,
| I did.) I'm not saying it's without value, but I am saying it
| can lead to disappointment.
| Closi wrote:
| One thing to remember is that Scratch can 'kickstart' the
| learning process.
|
| For kids being able to quickly display graphics and move them
| around offers a big buzz and gratification very quickly. With
| a lot of other programming languages the gratification is
| greatly delayed which can make people quickly abandon them
| unless they already have some experience in programming.
|
| Not sure I can name another programming language that you
| could give a 12 year old and they would be able to self-start
| and would not be likely to abandon learning it if they follow
| the standard 'get started' guide for the language. Unity is
| possibly the next closest, although it is much more complex
| to learn.
| aceon48 wrote:
| What age do you think I could start a gifted child with Scratch?
| hsm3 wrote:
| Gifted kids are all really different in their specific
| strengths. That said, for one with a well-expressed nerd gene,
| we started at age 6. I would start with an iPad app (slightly
| simpler container than a browser), maybe that gamifies the
| whole thing a bit with some easy on-ramps. For us that was
| Tynker and a bit of Hopscotch. It's pretty easy to tell whether
| you've got any sparks of interest on your hands, else no point
| in pushing it.
| gbear605 wrote:
| I personally started at age 8, back in the late 2000s. I had
| fun but it was perhaps a little too much for me. By age 10, it
| definitely clicked though.
| ozim wrote:
| Unfortunately I think making "games, animations, stories" is not
| that big of a deal.
|
| Even though it is nice to get kids into programming - it is not
| what business development will be.
| sva_ wrote:
| I have to say that I used this back in school many years ago, and
| I absolutely hated it. But I realize that other people might feel
| different about it.
|
| I much preferred just being able to write text characters, I felt
| like it gave me a lot more freedom in what I can achieve, but
| also how I achieve those things.
|
| I might be an outlier in that though.
| joaofiliperocha wrote:
| Scratch became part of teaching program for k-12 kids, here in
| Portugal
| misterdata wrote:
| At work we built a BI tool around Scratch (Blockly) back in 2013.
| It's still seeing daily use: https://www.dialogic.nl/wp-
| content/uploads/2018/02/demo1.gif
| alonmln wrote:
| Awesome!
| anyfactor wrote:
| This is the coolest thing I have seen this week! Is the program
| open sourced?
|
| I firmly believe Scratch should be taught at university level
| for business students. We studied C, C++, VB and MS Access. We
| didn't understand crap, nor the instructors had any interest in
| teaching that crap.
|
| Scratch is a wonderful tool for any people to dip their toes in
| programming. And stuff like this makes me double down on this
| idea. Scratch should be the first thing to be taught to teach
| programming regardless of education level. BI tool and database
| interaction is the perfect and practical application of
| Scratch.
| cphoover wrote:
| Very cool
| tayloramurphy wrote:
| This is genuinely amazing - I'd love to give it a try. Any
| chance any of the work your team put into it is open source?
| misterdata wrote:
| This was actually built between 2012-2013 - it is quite a
| tangle of old and rusty (but very reliable) PHP code and
| IE9-era, 'jQuery-esque' JavaScript. Realistically this can't
| be usefully made open source (and if it were it would
| probably have to be rewritten in order to be more generally
| useful). That said I would be very interested in an open
| source re-implementation of this using modern techniques!
| raydiatian wrote:
| Blockly is great. We were able to deploy it as an interface for
| managing complex business rule configuration files, for non-cs
| types.
| tomthe wrote:
| Please post this gif as a show hn, so it gets some attention
| and maybe someone builds on top of this idea!
| misterdata wrote:
| See here: https://news.ycombinator.com/item?id=32130444 (not
| Show HN, but as it is not that new I thought a retrospective
| blog post would be more interesting)
| solardev wrote:
| Cool! It's like a homebrewed alternative to Google Data Studio.
| sagaro wrote:
| this is pretty amazing
| system16 wrote:
| Having already known how to code, I gave Scratch a shot after
| hearing about it. I know I'm not the target audience, but despite
| "looking" friendly I found it very complex and not very intuitive
| at all. If the goal is to ultimately learn programming with
| industry standard tools, I think the time would be better spent
| learning those tools and fundamentals rather than becoming
| comfortable with Scratch and trying to transition to them.
| Snild wrote:
| It is definitely a hard switch to make when you're used to
| being able to just _write_ what you want, rather than having to
| go look for the block and drag it into place. :)
|
| > If the goal is to ultimately learn programming with industry
| standard tools
|
| It has variables, if, else, different kinds of loops, event
| handlers... Of course it still isn't "real" programming, but it
| does teach some basic concepts of it, while still being
| relatively easy for a child to use.
| tokamak-teapot wrote:
| I found the same. Then I watched kids using it by following
| instruction sheets, picking up the concepts, tweaking, making
| their own projects, and moving on to Python.
|
| I got to understand Scratch by learning how kids use it. It's
| just a mindset and expectation shift that is similar to that I
| experience when learning anything new. When I first learned a
| proper functional language after years of imperative. When I
| used a game dev environment that does lots for you.
| bredren wrote:
| Has anyone had experience teaching using this and Swift
| Playgrounds? Is there any comparison?
| ManuelKiessling wrote:
| I never find the time to dive into it, but for years I carry the
| thought that somewhere in the general direction of "take the
| visual programming module of Scratch and make it talk to a
| cleanly designed high-level API of our business application" lies
| the key for tremendous feature development productivity, at least
| for some kinds of features -- where from then on, our Product
| Managers simply go like "oh I know, let's just put this block
| into that IF block and thus add another step to the user
| registration", without the need to use precious dev resources.
| skaul wrote:
| I thought this was what MuleSoft was designed to be, though I
| haven't kept track of what it looks like now
| zozbot234 wrote:
| The visual block design of Scratch could be directly applied to
| any programming language AST. And the programming model
| involving independent "characters" each running its own logic
| could translate directly to a model of distributed systems.
| easrng wrote:
| You can use Blockly (Scratch uses a fork of it for the block
| editor) to do that.
| pipeline_peak wrote:
| I have yet to see a visual programming language that looks any
| easier than something like JS or Python, Scratch is no exception.
|
| I still think Scratch's interactive environment is impressive.
| shadowgovt wrote:
| One thing I really appreciate about visual programming
| languages, especially as I watch the sorts of challenges
| students encounters wrapping their heads around the concepts in
| programming, is that the development environment and the nature
| of the visual language make it very hard to build syntactically
| incorrect programs. In contrast, text-based languages sample
| from the sea of all possible strings of characters, and except
| a vastly tiny subset of that sea as valid input; the rest are
| just rejected programs.
|
| I think there's a lot of meat on the bones of creating tools
| that make it structurally impossible to write statically
| invalid programs. Consider how much time the average developer
| consumes in a simple iterative process of writing a program,
| discovering they have made a simple syntax error, and
| correcting it. IDEs have come a long way in shortening that
| loop by providing interactive feedback that the current program
| is invalid, but if the static analysis rules of the language
| move all the way into the development tooling, you're compiler
| doesn't even need a static analysis step!
| wl wrote:
| LabVIEW and Simulink are pretty easy if your problem makes
| sense as data flow.
| 42jd wrote:
| Scratch was how I got started in programming back in elementary
| school. It was taught in our computer classes. Everything this
| article says is spot on, the social aspect is amazing. I made a
| few programs and got comments on it and stars which hooked me.
| Side note hearing griffpatch is still around amazes me, I
| remember playing his scratch programs and wishing I could
| eventually do that. What's amazing is it's all still around and
| runs![1]
|
| 1. https://scratch.mit.edu/users/miniman520/
| ezfe wrote:
| I used Scratch in middle school, my first exposure to
| programming. Graduated two years ago and I'm a full time Software
| Engineer now.
| joshfreedman wrote:
| Scratch is awesome! I used it in high school for some small,
| silly games. It was fun :)
|
| As for "next steps" from Scratch: I think micro:bit [0] can fill
| that gap. Several of my coworkers were part of an event that used
| it to teach a group of middle-schoolers about programming. It
| uses block-based programming (supporting even Scratch I think?)
| and lets you move to and from a text-based language (Python and
| JS IIRC). I'm not sure if micro:bit has the same social component
| that the Scratch site does, but it seems like it could at least
| kids "hey, this is what my code looks like in Python!" Then, they
| may go and download Python and start hacking away on that.
|
| 0: https://www.microbit.org/
| andrewstuart wrote:
| Scratch has succeeded in the way that counts most - building
| community.
|
| However I tried to help my son to write some stuff with it and
| found it very hard and unintuitive to get stuff done.
|
| There are other, similar systems that are MUCH better for
| programming, such as Construct3 https://www.construct.net/ and
| Snap https://snap.berkeley.edu/
|
| In a way it's very disappointing that such a difficult to program
| system has become the default tool for teaching kids to program.
|
| Also a shout out to CodeCombat - that's also a great way to teach
| kids very advanced underlying programming concepts whilst
| completely hiding all the complexity.
|
| Also try https://www.microstudio.dev
| Wowfunhappy wrote:
| What do you like better about Snap? At a quick glance, it looks
| almost exactly like Scratch 2.0 (an older version).
| Retr0id wrote:
| The "killer feature" of Snap is the ability to define
| functions that return a value. In Scratch, you can't do that.
|
| Functions ("custom blocks") are just procedures that may-or-
| may-not mutate global state - This makes it hard to build up
| abstractions, etc.
|
| Scratch effectively mandates that you write spaghetti code.
| Wowfunhappy wrote:
| > The "killer feature" of Snap is the ability to define
| functions that return a value. In Scratch, you can't do
| that.
|
| Ah, I see now.
|
| Yeah, Scratch really should let you make custom "oval
| blocks" that return values...
| andrewstuart wrote:
| My vague recollection is there was alot more advantages
| too.
| andrewstuart wrote:
| Snap is the closest conceptually to Scratch.
|
| I can't recall why I thought it was much better but that was
| the conclusion I came to when I reviewed them both a few
| years back.
| TomGullen wrote:
| I'm one of the founders of Construct 3 - thanks for mentioning
| us! We see that after scratch lots of schools go straight to
| coding raw python, we feel Construct 3 can more naturally
| provide the transition from Scratch to coding and are having a
| lot of success in schools for this reason.
|
| Construct 3 allows you to write Javascript files, but also
| uniquely write lines of Javascript into event blocks so you get
| to write your first lines of Javascript in a more familiar
| environment.
| andrewstuart wrote:
| Construct3 isn't just for kids - it's capable of making
| "real" games.
|
| I did a little fun coding on it and it's really great - I
| recommend Construct3 to anyone wanting to make a simple game
| with kids or a sophisticated game.
|
| Construct 3 is miles ahead of Scratch - really not even a
| comparison.
| drpixie wrote:
| There's a similar project at MIT call _App Inventor_
| http://www.appinventor.mit.edu/ which uses a graphical Scratch-
| like environment to build Android apps. I can't tell if the two
| projects share code, but they certainly share philosophy and
| approach.
|
| I found App Inventor actually quite a practical way to write
| small useful Android apps. Certainly better than loading
| squigabytes of IDE/library/emulator/etc and fighting with the
| Android build system. (This from someone with plenty of code-
| cutting history!)
|
| I wouldn't use App Inventor for anything big, but for small
| projects, have a look.
| raydiatian wrote:
| Has anybody ported Doom to Scratch yet?
| zabzonk wrote:
| I use it for creating interactive Xmas cards!
| elteto wrote:
| This such a neat idea to do with kids. Thanks!
| whoomp12342 wrote:
| that terraria clone is fantastic
| hirundo wrote:
| From a quick look it doesn't seem that the graphical elements are
| inherent to the language. It could be expressed in a text syntax,
| and with more or less difficultly other languages could get a
| similar graphical overlay.
|
| If the graphics are useful training wheels to new programmers of
| scratch, the same is probably true for the text languages. And
| from time to time even a super cyclist can find a use for
| training wheels.
|
| For one thing, a language expressed in a common graphical form
| could help communicate with non-coder domain experts, quality
| assurance teams, customers, etc. This is kind of an argument to
| publish the latin bible in the vulgar argot, less exclusive to
| the priesthood.
| lidavidm wrote:
| In undergrad I worked with this group for a while:
| http://www.cs.cornell.edu/andru/papers/reduct-chi17/
|
| They took the basic idea of Scratch, then made it into more of
| a game with levels, each level being a puzzle to (implicitly)
| teach or test programming concepts. As you progressed it'd
| introduce new syntax, while slowly "fading" more familiar
| syntax towards actual JavaScript code (though retaining the
| block/GUI-based interface).
|
| We did some more work on further iterations but I'm not sure
| what became of it all.
| sgt101 wrote:
| Resnick and co were very structured and evidence lead with the
| graphical design; nothing in the visual language is accidental.
| The structure of the language is also very carefully designed
| in conjunction with the graphical mechanisms.
| jameshart wrote:
| There's a common fallacy that the technically minded are
| prone to, of assuming that since two different things are
| 'essentially' the same, the differences between them are
| superficial and unimportant.
|
| So, for. example, since Scratch. and a text-based language
| with similar structures (Python, say), are 'essentially' the
| same, the graphical elements. of Scratch are just sugar, or
| fluff, and should be ignored.
|
| It's the same mindset that says since anybody can get an FTP
| account, mount it locally with curlftpfs, and then use SVN or
| CVS on the mounted filesystem to version control it, there's
| no need for such a thing as DropBox.
|
| Advice for the terminally reductionist-minded: _Maybe_ the
| things that make Scratch different from Python are actually
| the _most_ interesting thing about Scratch.
| sgt101 wrote:
| Totally agree - the details are critical. There are a
| thousand details that can derail a child from understanding
| programming, if you deal with 999 there's still one that
| will get them.
|
| Kudos to the scratch team.
| kelseyfrog wrote:
| The same mixed media programming existing in the Lego
| Mindstorms platform when I was a kid.
|
| A bunch of my peers where using the visual editor, but I took
| the plunge and learned NQC to do my programming. Having
| multiple paths available to users helped the platform and
| broadened its accessibility.
|
| I'll never forget the instructor teaching me to always make
| sure my curly-braces matched up. :)
| dunham wrote:
| > It could be expressed in a text syntax, and with more or less
| difficultly, other languages could get a similar graphical
| overlay.
|
| Yeah, Makecode Arcade has a similar UI with mappings to and
| from both Python and Javascript.
|
| https://arcade.makecode.com/
| easrng wrote:
| There's http://tosh.blob.codes/ but it hasn't been updated in a
| while. (It generates Scratch 2 projects but they can still be
| imported into Scratch 3)
| pleb_nz wrote:
| Ok. Someone must have done doom in this thing by now.
| BrandoElFollito wrote:
| My children did not like scratch (it is taught at school in
| France). They had much less problems to understand Python which
| seems more natural in the interactions (displaying things,
| especially).
|
| They are unfortunately not interested in programming but when
| they have to do something at school they catch up with Python
| quickly. With scratch not that much.
| tartoran wrote:
| Python is a bit more advanced in the sense that it's a more
| general purpose and you have to know how to type on the
| keyboard well enough. I started with basic and logo back in the
| 80s but if scratch were a thing back then I'd have probably
| benefitted from it quite a bit. I see scratch as a first ramp
| into programming for tots and am glad it exists but also hope
| it won't become a thing to handicap adoption of other
| programming languages
| BrandoElFollito wrote:
| I did not mention that my children were early teenagers when
| they had scratch at school.
|
| I also started with BASIC in the 80's and scratch would
| probably have helped with some general concepts, especially
| loops and variables. But in my experience (of two data points
| :)) it is quickly left on the side for more effective
| languages (more effective because they can be typed and
| easily moved around, copied etc.). Vscode hints also help a
| lot.
| elangoc wrote:
| The simplicity of the visual language that Scratch provides
| inherits from the simplicity of Lisp, via Logo. The Logo language
| (& the Mindstorms pedagogical philosophy), which is what Scratch
| builds off of in a visual way, was implemented as a dialect of
| Lisp.
|
| From anecdotal experience, I do believe that the choice of a Lisp
| for Logo was an important criterion in the simplicity of the
| language, and thus the high impact of the learning impact.
|
| I do think that if we find Scratch useful and powerful, then we
| should really re-/consider Clojure as an important language for
| _real_ general purpose programming work, for many reasons:
| https://www.youtube.com/watch?v=Y3-53JoGPE4
| raylennon wrote:
| I just tried Scratch to make a quick little animation and I must
| say that it's actually pretty amazing. I've known about it for
| close to a decade but never really tried it out. I just spent a
| few minutes playing around and I was amazed by how easy it was to
| program a simple little animation.
| dpcan wrote:
| " Most importantly, browsing projects shows you what's possible.
| A kid begins by playing games, starts to get curious, and next
| thing you know, they're changing the code to give themselves
| extra lives."
|
| Gorillas.bas anyone?
|
| My programming life started the same way about 30 years ago.
|
| I love to hear this is still happening.
| herf wrote:
| I love what they've done and how my kids have taken to it. The
| combination of design tools and code reminds me of the "golden
| age" of Flash in some ways. Vector graphics editor, sound editor,
| code, it all works together - this is pretty special to see in
| one tool that kids can use.
|
| The games are actually getting quite _good_ on the platform, and
| that means it 's hard for a lot of parents to understand how much
| time is gaming vs. coding.
| bryanbraun wrote:
| I've never made the Flash connection but I totally agree.
|
| On my end, I try not to worry too much on the gaming vs coding
| thing. I'd rather have my kids playing games on Scratch then
| some other place where they can't view source.
|
| I figure, if they have some basic skills and know what's
| possible, they'll eventually get curious and poke around. I
| think that's more true for some kids then others though (even
| in my own house).
| user3939382 wrote:
| I discovered the existence of, and taught myself, BASIC on my
| Apple IIc when I was about 8. My first program was an
| implementation of Mad Libs. Surely we could just take that
| concept and make it even easier for kids.
| szundi wrote:
| More and more very advanced projects by these celeb leaders
| emerge and suddenly beginners feel they are noobs after a year of
| scratching.
| MarcScott wrote:
| Scratch project I reviewed last year which in my opinion was
| amazing.
|
| https://scratch.mit.edu/projects/524709085/editor/
|
| 1,2,3 and 4 to change ghosts and r to randomise colour.
| ModernMech wrote:
| Scratch is great, but the problem is: where do kids go after
| scratch? Often they are transitioned directly to professional-
| grade languages and developer tools, which has the effect of
| turning what was once fun to something scary and frustrating.
| Many kids stop their PL development right then and there, writing
| it off as something "not for me".
|
| I find this sad, as it means a lot of people who might otherwise
| benefit from programming in their daily lives never pick it up
| again. Just as not everyone who can cook needs to be a chef with
| professional grade equipment to benefit from the activity, not
| everyone who programs needs to be a software developer with all
| the incidental complexity that entails.
|
| We start teaching Java to kids as early as 8th/9th grade when the
| vast majority aren't ready for it. Even my sophomore students in
| college regularly struggle with the language.
|
| There's a huge gap between scratch and Java that is begging to be
| filled by innovative language design. Or better yet, a language
| that can a student can stick with from early age all the way
| through adulthood. Imagine if students who started at 11 actually
| stuck with it through 18 and beyond, instead of giving up at
| 13/14. Scratch has a perception problem as being something
| exclusively for kids; I don't know how it can shed that
| reputation.
|
| We need to stop treating early childhood programming education as
| the first stage of the funnel into corporate tech jobs. Not
| everyone wants to end up there, and we shouldn't design their
| education with that goal in mind. Programming literacy is too
| important in the 21st century to reserve the skill for would-be
| devs.
| ebresafegaga wrote:
| Something like https://www.pyret.org/index.html with
| https://dcic-world.org/ maybe
| wrycoder wrote:
| > _Scratch is great, but the problem is: where do kids go after
| scratch?_
|
| Sadly, they often move on to real computing. They are taught
| how to use Word and Excel.
| TomGullen wrote:
| We're trying to solve that problem with Construct 3:
| https://www.construct.net
|
| We find a lot of schools go straight to python coding after
| scratch, but our block based system is a powerful and allows
| students to write their first lines of Javascript inside the
| blocks themselves - and they can then go all the way to writing
| full Javascript files inside Construct 3.
|
| There is a big gap here and after speaking to a lot of teachers
| it's a big problem and we're hoping Construct 3 helps smooth
| this gap out for both the students and the teachers.
| ModernMech wrote:
| This is cool, it reminds me of a program I used to use from
| Corel called Click n Create. Definitely got me into coding so
| I like the direction you're heading!
| omnibrain wrote:
| PICO-8 could be a next step.
| https://en.wikipedia.org/wiki/PICO-8 A "real" programming
| language, but still focused on game making, all wrapped into a
| neat package.
| HanClinto wrote:
| I've been asking myself the same thing recently, and recently
| ran across LeopardJS -- it's meant to bridge the gap between
| Scratch and JavaScript, and I think it does a really excellent
| job of it: https://leopardjs.com/
|
| You can paste a link to a Scratch URL into the page and it
| automatically translates it to equivalent JavaScript that can
| then be edited in the browser or downloaded and edited locally.
| It's got an impressive and intuitive library behind it and I
| think it's fantastic.
| gs17 wrote:
| Another student in the lab I'm in has been working on something
| [0] to bridge between a Snap!-like environment (so, very
| similar to Scratch) to Python, complete with retaining the
| concept of sprites having separate code with event handlers and
| using blocks they'll recognize for sniplets they can drag in to
| get code that implements the same functionality. I believe it
| also allows importing of projects made with blocks. It's still
| very WIP but we're hoping it helps students smooth the
| transition from blocks.
|
| [0] https://github.com/dragazo/PyBlox
| jackbravo wrote:
| maybe Pharo or Squeak would be better alternatives as a follow
| up to Scratch?
|
| I think python is also a great candidate.
| gnramires wrote:
| > Scratch is great, but the problem is: where do kids go after
| scratch?
|
| Good question, I personally think p5.js is a great option. JS
| is very flexible, and the live environment (at editor.p5js.org)
| is I suppose very similar to scratch. Drawing elements like
| squares and circles is as simple as square(), circle(), etc.
| (with parameters). It's very easy to share an publish (could be
| on github[1], or just link directly from the editor!). Highly
| recommended for beginners and any quick interactive work
| really.
|
| It would be great to have a community page like Scratch though.
|
| [1] See a little procedural tree: https://gustavo-
| nramires.github.io/ :)
| timbit42 wrote:
| Perhaps SNAP!
|
| https://snap.berkeley.edu/
| vincent-manis wrote:
| I was planning on providing a pointer to Snap!, so I'm glad
| timbit did it. Snap! behaves similarly to Scratch, but its
| underlying language is more powerful (it's essentially a
| visual Scheme). Were I still teaching university CS, I would
| be advocating for the use of Snap! in the introductory
| course.
|
| And yes, I find the exclamation point annoying.
| capncleaver wrote:
| My lad has been learning Python in Replit. It looks like they
| are trying to introduce community feedback loops.
|
| For making games, Roblox is perhaps a good choice. You can post
| a modded example game and get your friends playing it very
| quickly, then iterate rapidly.
| bckr wrote:
| A few ideas:
|
| * Processing
|
| * Love2D
|
| * Unity / Godot
|
| * Pygame
|
| In the past, Flash filled this niche, I think (although I never
| programmed in it). Looking at my own list above, and others'
| responses, I don't think this niche has truly been filled,
| alas.
|
| Maybe a startup idea?
| yrandom wrote:
| I agree and it's one of the reasons I built https://akedo.app
|
| It's a text based programming platform centred around creating
| games and can be used from a young age and into adulthood.
| Wowfunhappy wrote:
| > Scratch is great, but the problem is: where do kids go after
| scratch? Often they are transitioned directly to professional-
| grade languages and developer tools, which has the effect of
| turning what was once fun to something scary and frustrating.
| Many kids stop their PL development right then and there,
| writing it off as something "not for me".
|
| I work at a company that runs coding classes for children.
|
| We created https://woofjs.com/ explicitly for the purpose of
| transitioning students from Scratch to a text based language.
| It's not perfect, but worth a look!
| bryanbraun wrote:
| I wonder if there's a way to smooth out the transition into
| modding "real" games that teenagers are already playing with
| their friends. I'll bet it would be pretty motivating to have
| that kind of power in these online spaces where a bunch of your
| friends hang out.
|
| Minecraft and Roblox support mods written in Java and Lua
| respectively but it's a pretty big leap from Scratch to
| Minecraft mods.
|
| I was recently discovered a dedicated editor for Minecraft
| modding (https://bridge-core.app) and that seems pretty cool. A
| lot more could be done in this space though.
| monkeydust wrote:
| Curious as to the application of Scratch into enterprise
| software, specifically to develop low-code applications.
| loganc2342 wrote:
| > It was the community aspects that really drew in my kids. They
| would get really excited whenever somebody followed them or
| "loved" one of their projects. It gave them the motivation to
| build more ambitious things.
|
| This is really what sparked my love of coding and, more broadly,
| creating things when I made projects in Scratch as a kid in the
| early 2010s. Seeing all of the positive feedback on stuff I
| posted as well as seeing the awesome stuff other people posted
| motivated me to keep one-upping myself with cooler and cooler
| projects. Those who downplay the positive effect Scratch can have
| on kids tend to overlook this part of the equation.
| [deleted]
| ssivark wrote:
| This is extremely heartening. I can't wait for the day we get
| popular Smalltalk apps that users can easily inspect and modify!
| Seems like it's actually a great platform on which to bootstrap a
| free software ecosystem more effective (for remixing) than
| GitHub.
| leotaku wrote:
| I remember introducing a middle schooler to programming using
| Scratch at my highschool's open day. I had spent a few hours
| making a simple two player shooting game and a maze generator for
| the IT class display. Most kids just wanted to play the games,
| but seeing just one of them be genuinely excited about the
| possibility of creating his own interactive experiences, asking
| questions about how certain mechanics were implemented, what I
| did to get to this point, if I thought he would be able to create
| similar things, was really encouraging. Probably didn't make a
| difference in the long run, but still a treasured memory for me.
| ptudan wrote:
| Scratch was my introduction to programming. I was already a
| computer nerd, but had never programmed before. This was in the
| mid 2000s.
|
| Now I'm in the industry and so are 15% of my classmates from that
| time.
| tengbretson wrote:
| One of the coolest things about scratch that I've seen from using
| it and being an instructor is that it teaches the user how to
| work in event based systems. I've seen children with better
| intuitions for event based architectures than some veteran
| developers.
| dpeck wrote:
| There is no better way for people to show that they understand
| message passing and the actor model than to have them implement a
| simple scene in Scratch.
| throwaway14356 wrote:
| When launched the community made me laugh. Every lang has its own
| community, this one is hilarious. They can code but dont bother a
| 12 year old with your doctrine of copyright. I MADE THIS!
| NonNefarious wrote:
| NonNefarious wrote:
| NylaTheWolf wrote:
| I used Scratch ALL THE TIME as a kid. I'd always play other
| people's projects and I made several of my own. I think in the
| long run it did help me; it was definitely fostered my interest
| in coding and game dev. And it probably did help me understand
| concepts in coding like variables.
|
| I remember browsing Github several months ago and seeing that
| there was a repo for a Scratch plugin. That really surprised me,
| I didn't even know it allowed plugins. I'm surprised that there
| were people willing to make them too! That's awesome!
| jtbayly wrote:
| Code available is awesome for simple games.
|
| I think it was a Q-basic game called worm or nibbles or something
| that I first "programmed" on. Wanted infinite lives or a very
| short maximum length. Just had to change a variable.
| MarcScott wrote:
| A good place to start if you want your kids to pick up Scratch
| and programming.
|
| https://projects.raspberrypi.org/en/paths
|
| Disclosure I work for RPF.
| bakpakin wrote:
| I learned to program on scratch in the 6th grade when it was very
| new, circa 2008. In many ways, it is more real than other
| learning languages.
|
| In retrospect, the smalltalk influence of scratch I think left
| such an impression on me that I continue to love dynamic, always
| live environments to this day. The broadcast system is
| surprisingly powerful and forward thinking. I do recall it being
| a bit difficult to build up your own abstractions, but such
| guardrails I think are useful for learning and I usedd Scratch
| before custom blocks were available.
| jmugan wrote:
| One problem I've seen with Scratch is that schools rely on it for
| too long. Kids get into high school and the school is still
| teaching with Scratch.
| ksaj wrote:
| We definitely moved on faster than that back in the 80's. We
| started with LOGO (which some people know as Turtle Graphics)
| and BASIC, but pretty much immediately went into other
| historical languages (prolog, pascal, cobol) and then to C,
| within a single semester. And through all that, we were always
| presented with the binary code (in Hex) so we were fully aware
| of how registers and boolean math worked.
| hsm3 wrote:
| My son and I got a lot out of a similar iPad app called Tynker,
| which we both ended up liking better than Scratch, which he used
| at school. Tynker has a physics engine, which opens up all sort
| of great game possibilities (we made a cheapo Angry Birds). Also
| as referenced above, Tynker has a slightly richer language that
| gets rid of the need for some bad practices (e.g., functions can
| return values, you can declare local vars vs all-globals-all-the-
| time, etc). Having the tool work well on a tablet also travels
| really well, and is a simpler container than a browser window for
| a really young kid.
| mdwagner wrote:
| I believe it. Back in college we started out with this visual
| tool called Raptor and it was a great introduction to programming
| before diving into more complicated languages like Java. While
| Raptor was fun, clearly Scratch would have been nicer.
| tmaly wrote:
| FYI There is a free online Scratch Conference July 21, 2022
|
| https://www.scratchfoundation.org/scratch-conference
| bryanbraun wrote:
| Oh wow, great find! Gonna put this on the calendar.
|
| That "Hacking apps with Makey Makey & Scratch" session looks
| particularly interesting.
___________________________________________________________________
(page generated 2022-07-17 23:02 UTC)