[HN Gopher] Scratch is a big deal
       ___________________________________________________________________
        
       Scratch is a big deal
        
       Author : bryanbraun
       Score  : 433 points
       Date   : 2022-07-16 18:09 UTC (4 hours ago)
        
 (HTM) web link (www.bryanbraun.com)
 (TXT) w3m dump (www.bryanbraun.com)
        
       | 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?
        
           | _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.
        
       | 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 to children using both Scratch and
         | Javascript. I can _promise_ that virtually all of them find
         | Scratch much easier.
         | 
         | 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--maybe "catch the falling objects" or "avoid the
         | moving obstacles". I think you'll find it's 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.
        
         | 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.
        
           | 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.
        
         | 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.
        
       | 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.
        
           | 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.
        
           | 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.
        
         | 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.
        
           | [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.
        
               | 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.
        
         | _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
        
         | 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?
        
           | 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.
        
         | solardev wrote:
         | Warcraft 3's map editor scratched that itch for me! I'm so glad
         | there are more accessible, and free, tools now.
        
         | 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
        
       | amelius wrote:
       | Someone should probably reinvent spreadsheets using this
       | language.
        
       | ynniv wrote:
       | Name another language where you can be productive on a mobile
       | device.
        
         | 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.
        
       | bolangi wrote:
       | So, impossible to make a syntax error.
        
       | 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.
        
         | 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.
        
           | sebastiansm wrote:
           | The first week of Harvard's CS50 involves the creation of a
           | little program in Scratch too.
        
       | 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.
        
       | 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.
        
         | 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.
        
           | _benj wrote:
           | This made me laugh! and then made me sad :')
        
         | 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
        
         | 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.
        
         | 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_.
        
         | 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
        
           | 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
        
             | 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
        
             | 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.
        
         | 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.
        
         | 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.
        
       | aceon48 wrote:
       | What age do you think I could start a gifted child with Scratch?
        
       | 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.
        
       | 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
        
         | solardev wrote:
         | Cool! It's like a homebrewed alternative to Google Data Studio.
        
       | 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 (10 years ago wow). What's amazing is it's all
       | still around and runs![1]
       | 
       | 1. https://scratch.mit.edu/users/miniman520/
        
       | 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 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 find superior 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:
           | 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.
        
       | zabzonk wrote:
       | I use it for creating interactive Xmas cards!
        
         | elteto wrote:
         | This such a neat idea to do with kids. Thanks!
        
       | 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)
        
       | 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
        
       | 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.
        
       | 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
        
         | 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.
        
         | 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.
        
       | 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:
       | Guys, when posting, why not say WHAT IT IS in the title? Being
       | obscure isn't cool, as fashionable as it seems to be on here.
       | 
       | For many people, Scratch is a well-known color-correction tool:
       | https://www.assimilateinc.com/products/
       | 
       | When posting, please shun obscurity and say WHAT IT IS.
        
       | 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!
        
       | 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.
        
       | 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-16 23:00 UTC)