
Scratch 3.0 - tumidpandora
https://scratch.mit.edu/discuss/topic/326861/
======
unixhero
I teach kids to code on a volunteer basis. Although Scratch is very good, the
kids usually gets lost. Even when we print out the solution for them to
follow. When they don't get lost, it seems they are not having as much fun.

My experience is that it is literally 10 times more fun for the kids to learn
to code Python with [http://www.codecombat.com](http://www.codecombat.com) .
The classes gets filled with excitement when I put on the 10 hour version of
"Diablo Town Music" and tell them to log into Codecombat. Very rewarding
actually :). I register free accounts and bring these to my classes on a
printed sheet, that works great. As such I don't need to pay for the classroom
edition. I have actually let Cidecbat know about this pricing flaw, but no new
models have been introduced that fit my use case has been made available. This
is Codecombat does not have a pricing tier that fits my volunteering classes
with random participants well.

~~~
madethemcry
Scratch is a tool with the freedom of creating whatever comes to a kid's mind.
The block based programming style in Scratch relieve the kids from fighting
the keyboard and it prevents syntax errors so they can focus on programming.
You can use Scratch to build own games, stories, movies, music applications
and you can connect it easily with hardware like MakeyMakey or even Lego. It's
about producing not consuming and Scratch is the perfect tool to do so.

I don't know the platform you mention but it looks like the advanced (because
Python) version of games you find on code.org. So I expect a linear progress,
where you tackle task after task. This can be fun and also creative but in a
limited fashion. You should not withhold Scratch from the kids so they can
experience the freedom of building their very own things. Be critical and ask
yourself why the kids don't have so much fun and why they get lost.

Maybe you can start with easier exercises, try out other tasks and challenges
you never used and let the kids be creative already in the beginning: Teach
one or two new blocks, give some rough ideas and let them do whatever they
want. No blueprint or solution sheet required in this case. Coding kids have
so many ideas - they will make it fun by themselves.

I think there are many ways to do it. I just wanted to point out the
difference between Scratch and game based learning platforms. I also teach
kids in my spare time and I think we are doing something very important for
every single child. So thank you!

~~~
koheripbal
My daughter and I play Factorio together. There are a lot of emergent
properties in Factorio that are relevant to programming.

------
sephoric
Scratch is pretty great, and at least 3 of my kids constantly ask if they can
play Scratch. Unfortunately, for 2 of them it usually means just putting
characters on a stage and adding code to change their costumes when you click
the green button.

But if you have kids who want to step up their game from Scratch, check out
PICO-8 (submitted it earlier today, check my history). It's genuinely amazing,
and my oldest absolutely loves using it. He's made some awesome 2d games so
far over winter break and he's using legitimate programming concepts and
techniques like they're nothing, it's really amazing to watch.

~~~
open_bear
And if you cannot afford PICO-8, there is a free TIC-80 alternative.

~~~
jfroma
Very nice, I've been volunteering in a group, we've been teaching Scratch to
kids from 7 to 12. Can't wait until I show them this

Is there any significant difference between TIC-80 and PICO-8? both looks
awesome to me

------
DonHopkins
I just discovered this amazing classic demo by Margaret Minsky from Atari
Cambridge Research Labs, demonstrating a gestural programming system with a
button box for programming with a pressure sensitive touch screen, developed
by Margaret Minsky, Danny Hillis, Daniel Huttenlocher, David Wallace (Gumby),
and Radia Perlman at the MIT-AI Lab.

[https://www.youtube.com/watch?v=-Wq6SQTVM9M](https://www.youtube.com/watch?v=-Wq6SQTVM9M)

This is one of many amazing videos from Cynthia Solomon's treasure trove of
youtube uploads.

[https://www.youtube.com/user/cynthiaso/videos](https://www.youtube.com/user/cynthiaso/videos)

If you act now, you can be the 32nd person to watch this video of Seymour
Papert demonstrate the Logo Turtle! ;)

[https://www.youtube.com/watch?v=lDyym_9-E-g](https://www.youtube.com/watch?v=lDyym_9-E-g)

Or be the 39th person to watch this video of Seymour Papert explaining how
giraffes sleep:

[https://www.youtube.com/watch?v=ha8sTgtUejM](https://www.youtube.com/watch?v=ha8sTgtUejM)

~~~
aasasd
John Carmack has mentioned that he uses a visual Lisp environment on iPad.
Scheme-based, iirc.

It's somewhere in here, I think (but alas I'm not up to listening again
through half an hour of the old lady voice):
[https://youtube.com/watch?v=1PhArSujR_A](https://youtube.com/watch?v=1PhArSujR_A)

I feel like marrying Lisp's meta-programmable DSLs to an easy visual
environment is the ultimate cosmic dream of 'domain-centered' programming and
customization for non-coders―but it also seems to me that Lisp is rather text-
based, trading a readymade set of operations picked in the interface for
infinite extendability through text. So I'm not sure if a visual Lisp is any
convenient to use.

Also, for me the immediate downside of the Lisp environment in question is
that it's only available for iPad.

~~~
DonHopkins
I'd say Lisp is S-Expression based, and it's easier to make both text and
graphical interface to S-Expressions than to the syntax of typical text based
languages.

By Apple's decree and app store policy, any programming language on the iPad
that isn't purely based on the JavaScript interpreter in the web browser isn't
allowed to download and run executable code, much to the frustration of Alan
Kay, who is weary of people comparing the iPad to the Dynabook without
acknowledging that Apple left out and prohibited his most important idea on
purpose: user programmability.

If Carmack's visual Lisp is implemented as an iOS app with locally running
native code, and not purely in JavaScript running in the web browser, then he
has to build it himself in XCode on his own Mac for his own use with his own
Apple developer certificates, and he isn't allowed to distribute it on the app
store.

If you can implement your language purely in JavaScript, like Snap! or the web
version of Scratch 3.0, then it'll run everywhere, and isn't an iPad app, just
a web app, so it's not bound by the restrictions of Apple's app store. That's
the way to go if you can.

[https://snap.berkeley.edu/](https://snap.berkeley.edu/)

------
hjek
> Scratch Desktop on Linux is currently not supported. We are working with
> partners and the open-source community to determine if there is a way we can
> support Linux in the future. Stay tuned!

Apparently from version 3.0 Scratch is proprietary and doesn't run offline on
free operating systems[0]. That's just sad. There are some good ideas in
Scratch, but I think _Snap!_ [1] is the better one to use: It's free, and you
can create your own (recursive) blocks[2].

[0]: [https://scratch.mit.edu/download](https://scratch.mit.edu/download)

[1]: [https://snap.berkeley.edu/](https://snap.berkeley.edu/)

[2]:
[https://www.youtube.com/watch?v=rXN81Hsj_A4](https://www.youtube.com/watch?v=rXN81Hsj_A4)

~~~
Dumbdo
Where do you get the information from that it is proprietary? As far as I see
it it's licensed under BSD3-Clause [0] which is a OSS license, despite being
more permissive.

[0]: [https://github.com/LLK/scratch-gui](https://github.com/LLK/scratch-gui)

~~~
hjek
On the Scratch download site, which I quoted, I could only see binary
downloads and the information that "Scratch Desktop on Linux is currently not
supported."

That made me assume that it was proprietary, but I'm very happy to be proven
wrong about this. Furthermore it looks like unlike 2.0, Scratch no longer
depends on the proprietary Adobe Air component, so if that is the case, it's a
big improvement!

It would be less confusing if they'd replace "Linux is currently not
supported" with a link to their repository on Github. I might contact them
about that.

Can't wait to try it out!

Does anyone know whether Scratch 3 supports recursion like Snap! does?

------
gbear605
I started programming with Scratch 1.2 back in 2007. I'm now a computer
science major in college, so I'm glad to see the Scratch team at MIT
continuing to make great progress. Scratch (and similar programming
environments) is a very successful way to introduce children to programming
and I hope that it continues to do so.

~~~
mrspeaker
Now that you're a computer science major... is there anyway you could think of
making a better environment for learning? I personally really struggled with
"connector-set" style programming thing like Scratch. It always felt too
limiting, or, I don't know... forced? It's very obvious how the blocks match
to code - so it feels (to me) like it's "begging the question": to know how to
connect the blocks you need to know how to construct the code. It's like it's
missing a layer of abstraction after you figure out the very basics.

Lately I've been wondering if there is a better way that doesn't match 1-to-1
with coding constructs - something visual, but something that isn't just "a
for-loop represented as a physical block". Not sure what that would be though!

~~~
vez-
I've been wondering the same thing. I feel like there could be a more
exclusively visual programming paradigm.

I wish there was a better way to program on mobile, because typing just
doesn't feel good. Maybe a visual way to program could bridge that gap.

I also feel that kids would love to be able to create their own install-able
apps with something like Scratch. Maybe could be done with something like
PWAs?

~~~
alexis_read
Quick plug for my node red port to android (and can do ios)
[https://github.com/alexisread/noreml](https://github.com/alexisread/noreml)

It's missing a table component really for UI programming, but can support
visually programming apps on mobile devices :)

------
chaostheory
It would be cool if something evolved from Scratch to become a modern Visual
Basic, something not just for learning and play; that went mainstream for the
masses. imo the biggest problem with most programming languages is user
uncertainty of constraints. It has parallels with GUIs vs command lines.
Command lines have no visual constraints with what you could type. i.e. the
user doesn't know what they can and can't type. The GUI on the other hand
shows everything that a user can do visually. It has constraints. There are
only so many buttons and menu items. It helps limit fear and confusion. While
IDEs do help bridge this gap, they only go so far for people who aren't as
motivated as programmers. It would be nice to have a programming language with
this feature (I know they already exist) to go mainstream.

~~~
btown
It’s interesting because Apple, once upon a time, had the exact opposite
hypothesis: their language AppleScript barely had a documented syntax, and it
aimed to allow any natural language (e.g., and I likely misremember, “tell the
first application whose visibility is visible to set its visibility to
hidden”). In theory, this could let anyone script their system, even non-
programmers. In practice, it was impossible for even a seasoned programmer to
know if a program would compile. Their later Automator GUI was much more
successful, bringing visible constraints and prompts, but far less flexible.
There is so, so much space to experiment and research good interaction methods
in this space.

------
johnzim
I taught kids programming in an after school program for 4 years. Scratch was
the tool that explained a lot of concepts best (and allowed those students who
had trouble, still feel like they achieved something meaningful in the course)

I took a look around and saw some nice improvements to areas where Scratch
always seemed crufty! Plus it loaded fine in every browser I tried!

That's a great update and I can't wait to see what the extensions are like

------
madethemcry
I teach kids from 6 to 12 years with Scratch (and other tools) in my spare
time. If you are a developer you should try it out. It's amazing how creative
kids are with a tool like Scratch. My programming career started with Flash 4
and allowed me to work with sound, audio and animations together with the
possibility to program and to easily distribute it (there was a single swf
file).

Scratch is like the distilled version of it optimized for kids. I would have
loved it as a kid and I see how natural children can work with it. Mitchel
Resnick and his team did a great job with Scratch and it's amazing to finally
see it working in HTML5 - after being a Flash based application.

Teaching coding to kids is important and as a developer it's easy to say so.
Some day I made the decision to think about the why to better explain people
why I do the teaching. The end product was a 25min talk I gave at the JSConf
EU 2018 in Berlin. Maybe that's of interest for parents reading here about
Scratch and of course fellow developers interested in teaching coding to kids.

[https://youtu.be/t0m5rrKKMOA](https://youtu.be/t0m5rrKKMOA) ( _About Coding
Kids and Screaming Carrots — JSConf EU 2018_ )

Here the slides and all information I mentioned in the talk:
[https://github.com/georgiee/coding-for-
kids](https://github.com/georgiee/coding-for-kids)

My summary why a kid should learn coding:

    
    
      > It's about teaching kids to be producer instead of a consumer 
      > so they can build their own games, tell their own stories 
      > and create their own music.

~~~
RantyDave
Flash? Scratch was written in Smalltalk.

~~~
madethemcry
That's Scratch 1. Scratch 2 (2013) is based on Flash so it can be distributed
in the browser (via Flash Plugin) and as a desktop application (Adobe Air).

~~~
jecel
Note that Scratch 1 could also be distributed in the browser using the Squeak
VM plugin. Except school IT people wouldn't allow students and teachers to
install that as too dangerous (meaning, they hadn't heard of it) but they
would allow the Flash Plugin to be installed. So the rewrite was to solve a
political issue rather than a technical one. Sadly, this happened right when
some key people decided that Flash was evil, so a second rewrite became
necessary.

------
rsyring
If you are looking for the "next step" after scratch for teaching kids how to
code, I recommend:

[https://www.robomindacademy.com/](https://www.robomindacademy.com/)

It's a text based language, but you program a graphical robot to do various
tasks. I've found that it's a great combination of fun and actual coding that
helps kids transition from something like scratch to more advanced languages
and concepts. I'd say it's good for kids around 12 years old.

~~~
geomark
Thanks for that recommendation. My kid started with Scratch and then did
several of the Code.org courses and Hour of Code activities. Been wanting to
move him on to learning "real" programming. Was trying to find an easy,
online, self-paced Python course but have not found what I want. We've been
working through "Invent Your Own Computer Games with Python" book. The
programming concepts are not too advanced for him but there is a lot of
reading between each step so I have to sit with him and read through it
together or boredom and attention span become an issue.

------
Tempest1981
Scratch also has a friendly, supportive community. Kids engaging in civil
discussions, and building off other's ideas.

Lots of idea sharing, because you can click to see the "code" inside anyone's
project.

Scratch 3 is a major re-write, to eliminate Adobe Flash. It also has
extensions (the example given is to integrate with Google translate and Lego
Mindstorms).

~~~
andrewflnr
> Scratch also has a friendly, supportive community. Kids engaging in civil
> discussions, and building off other's ideas.

This makes me happy. There's hope for humanity yet.

------
keithnz
I've been playing around with the beta for a while, it is really impressive,
and my 8 year old loves it. I also got a microbit which you can bridge into
the scratch environment with their official plugin

just for peoples interest, their github is
[https://github.com/LLK/](https://github.com/LLK/)

The new 3.0 GUI is done with react.

------
zapzupnz
I'll always prefer Snap because it has so many features that allow teaching
best practice, but Scratch sets the benchmark so I'm pleased to see its
evolution continue — and hopefully some of it will make its way into Snap and
other Scratch clones.

~~~
e12e
I also like the fact that snap is Free software - I'm still not able to find
out from the scratch 3.0 website if scratch can be easily self-hosted,
modified etc?

Snap is on github:
[https://github.com/jmoenig/Snap](https://github.com/jmoenig/Snap)

It also is based around js, and can import scratch 2.0 sketches (not sure how
well that works in practice) - I wonder if there's any collaboration with MIT
scratch moving off of flash to js - or if they did everything from, well,
scratch ?

------
tmaly
I have been teaching my 5 year old daughter Scratch 3 since it was in beta. I
am slowly writing some tutorials for other parents as I have been asked how
they could teach their kids how to program. I am looking forward to some of
the new features that should come with this official release

------
wslh
If you like Scratch you will love Alice 3D:
[https://www.alice.org](https://www.alice.org)

And for younger kids Scratch Jr. is great
[https://www.scratchjr.org](https://www.scratchjr.org)

~~~
zabzonk
Everyone I have ever known that was exposed to Alice hated it into their very
bones.

------
i_feel_great
I started my son on Scratch when he was 6. He is now 9 and runs a lunchtime
coding club at his school teaching other kids to use Scratch. I have looked
around for the next step for him to improve his skills and found that Lua Löve
to be the best one.

------
andrewstuart
Hopefully this solves some core problems like being able to use it smoothy on
multiple platforms outside the browser.

I've found previous version of Scratch to be frustratingly limited
unfortunately.

I don't mind, and expect, kids software to be limited but Scratch makes it
really hard to do certain things. It's a pity because it holds the number one
place in market positioning for free software for educating kids on how to
program.

~~~
azhenley
Can you provide any examples of something that you think is difficult to do?
I’m doing research on similar languages and would like to understand barriers
people have.

~~~
andrewstuart
I wanted to make a simple game where using arrow keyws you move around a top
down map display and kill monsters and shoot arrows and find treasure, with
trees scattered about.

I didn't find this easy at all and it seems like something that shouldn't be
hard.

Also it is/was based on Adobe Flash and none of my systems or browsers have
Flash.

~~~
gbear605
The Adobe Flash issue is actually the main thing that Scratch 3.0 solved -
it's now all Javascript.

Your example project should be relatively simple in Scratch. Certainly many
users have done similar things. Perhaps you're trying to do it in ways that
work in common programming languages while it requires using different idioms
in Scratch?

------
ncmncm
Funny, I started out impressed to find, unlike in so many announcements of its
kind, a prominent "What is Scratch 3.0?" heading, I guessed for those of us
who have not been tracking Scratch from its inception.

What I found there was, basically, "This is version 3 of Scratch", i.e.
completely uninformative to anyone wondering what in blinkered hell Scratch
is, who it's for, what it's for, or why I should care that there are now three
of it. "Scratch" is a traditional epithet of Satan. So, guessing a Satan
animation for kids?

I guess they will have a chance to do better if they last to 4.0.

------
qwerty456127
I can't stop wondering if Scratch's visual block approach could be
extended/modified to fit real-world programming tasks efficiently. This can be
especially valuable to let people code on smartphones.

~~~
AshleysBrain
We build Construct 3, another web-based block programming editor, using a
different approach which we think is more powerful and can make more
sophisticated games. You can check it out at
[https://www.construct.net](https://www.construct.net)

~~~
paulolc
Construct is targeted at professional game development market. It's not
comparable with Scratch which targets the creative programming education.
Construct is a full closed source proprietary premium payed ecosystem for
professional game developers. Nothing to do with the open source, completely
free and joyful nature of Scratch which delights the young creative minds of
tommorrow (and today!). On top of that Scratch has an absolutely caring,
loving and vibrant community.

------
vanderZwan
I can't open the link, but from the main scratch site there is an example
sketch celebrating the new version, and I see a lot of complaints in the
comments about this breaking existing projects:

[https://scratch.mit.edu/projects/276660763/](https://scratch.mit.edu/projects/276660763/)

I hope that that is just due to a misunderstanding by the users (trying to
load a 2.0 sketch in 3.0 or something), and not a sign of badly handling the
upgrade?

~~~
benatkin
There are also a lot of comments that say that scratch 3 is worse than scratch
2 in general. Doesn't surprise me because scratch 3 seems ambitious, and kind
of reminds me of WordPress's Gutenberg.

Whether the big problem is that scratch 2 is arguably better or it that it
breaks scratch 2 projects, it would have been nice if they continued to fully
support scratch 2, rather than just the "offline editor". I understand if they
didn't have the resources to support it though.

~~~
em-bee
flash is dead. that makes any application built on it unsupportable. that's
not a question of not having resources, but one of not wasting them.

~~~
benatkin
They could have attached a disclaimer that said it only works on desktops, is
no longer actively maintained, yada yada yada, but kept hosting Scratch 2
projects. And depending on how the servers were set up, it might not have been
that expensive.

------
sedatk
Web archive link (because the site seems to have been slashdotted):
[http://web.archive.org/web/20190102213301/https://scratch.mi...](http://web.archive.org/web/20190102213301/https://scratch.mit.edu/discuss/topic/326861/)

------
Jemm
It took me too long to figure out how to run my scratch. A run button would be
nice for us old people.

~~~
gbear605
For reference for other people, it's the green flag button near the upper
right hand corner. There's also a tutorial that runs if you go to
[https://scratch.mit.edu/projects/editor/?tutorial=getStarted](https://scratch.mit.edu/projects/editor/?tutorial=getStarted)
that shows it.

------
guard0g
If you are encountering a server error, you can check out the wiki:
[https://en.scratch-wiki.info/wiki/Scratch_3.0](https://en.scratch-
wiki.info/wiki/Scratch_3.0)

------
KoenDG
Going to that link, AntiMalwarebytes reports it blocked 2 urls because
"spyware" and "trojan" respectively.

both from a site called "cubeupload"

------
dingdingdang
Can scratch be run offline?

~~~
gbear605
Yes! [https://scratch.mit.edu/download](https://scratch.mit.edu/download)

------
moomin
Any recommendations on tutorials suitable for 6yo for Scratch?

~~~
johnwards
[https://codeclubprojects.org/](https://codeclubprojects.org/)

------
modzu
its arbitrarily blocking opera :(

