Discuss Scratch
- Discussion Forums
- » Advanced Topics
- » Yaron Minsky, OCaml programmer at Jane Street, criticizes Scratch on Twitter
- TheAspiringHacker
-
Scratcher
100+ posts
Yaron Minsky, OCaml programmer at Jane Street, criticizes Scratch on Twitter
- DeleteThisAcount
-
Scratcher
1000+ posts
Yaron Minsky, OCaml programmer at Jane Street, criticizes Scratch on Twitter
scratch 3 helps:
NO LONGER FLASH
EXTENSIONS COMPLETELY SUPPORTED
oh wait thats it
NO LONGER FLASH
EXTENSIONS COMPLETELY SUPPORTED
oh wait thats it
- TheUltimatum
-
Scratcher
1000+ posts
Yaron Minsky, OCaml programmer at Jane Street, criticizes Scratch on Twitter
It'd be nice if you copy and pasted the tweet here. If there is profanity just remove it and replace with derp or something.
Last edited by TheUltimatum (Feb. 23, 2018 22:43:00)
- TheAspiringHacker
-
Scratcher
100+ posts
Yaron Minsky, OCaml programmer at Jane Street, criticizes Scratch on Twitter
It'd be nice if you copy and pasted the tweet here. If there is profanity just remove it and replace with derp or something.
Scratch is a neat teaching tool, but also quite frustrating in some ways.
First of all, it seems to have a “low floor, low ceilings” approach. It just doesn't give your anywhere to go in terms of abstraction.
They've also made a poor platform choice by running on Flash, which they've been stuck on for years now.
I suspect that a lack of clearly specified semantics makes getting off of this platform hard.
In the migration from the Smalltalk version to the Flash version, execution semantics changed in lots of subtle ways that caused many projects to stop working properly. I suspect the semantics are no clearer now.
These issues make it feel like a platform that did not have the benefit of developers who are experienced in programming languages.
All this engineering stuff really does affect how good Scratch is as a teaching platform. With my kids, I felt like I had to migrate off of it fairly quickly.
More complex programs became unweildy pretty fast, both because of the inexpressive source language, and because of limitations of the implemention. The fact that you can't transition to editing text with a keyboard is a serious issue.
All in, it leaves me more excited about Racket and less about Scratch when I think about teaching platforms.
- nataIia
-
New Scratcher
26 posts
Yaron Minsky, OCaml programmer at Jane Street, criticizes Scratch on Twitter
You know what would be cool? a block-based Racket interface. Not sure how achievable that would be, though.
- TheAspiringHacker
-
Scratcher
100+ posts
Yaron Minsky, OCaml programmer at Jane Street, criticizes Scratch on Twitter
You know what would be cool? a block-based Racket interface. Not sure how achievable that would be, though.Well, Snap! is basically block-based Scheme. I wonder what Yaron Minsky would think of it.
- badatprogrammingibe
-
Scratcher
500+ posts
Yaron Minsky, OCaml programmer at Jane Street, criticizes Scratch on Twitter
Not really. It takes concepts from scheme, but it's not even close to being a true lisp.You know what would be cool? a block-based Racket interface. Not sure how achievable that would be, though.Well, Snap! is basically block-based Scheme. I wonder what Yaron Minsky would think of it.
- ScratchMan544
-
Scratcher
100+ posts
Yaron Minsky, OCaml programmer at Jane Street, criticizes Scratch on Twitter
The lack of abstraction (in particular namespaces) and a text-based interface have both been very frustrating to me (in fact, my inability to carry out my more ambitious plans was one of the main reasons I'm not as active on Scratch anymore). I have been thinking about a text-based language that transpiles to project.json and that has better support for abstraction (e.g. allow procedure return values that are transpiled to a special @RETURN variable, allow local variables in procedures that are converted to “absolute” namespaces (e.g. mainloop:renderframe:renderplayer:computedx), handle locals in recursive calls through a call-stack, etc.)
Regarding the lack of formally-defined semantics, I feel this is a nonissue. I've never had a problem with offline/online compatibility (although I did once see a project where the creator got better audio quality by importing into Scratch 1.4 and then converting to Scratch 2).
Scratch is intended to teach programming, not computer science. While Minsky's complaints are valid, I feel like he's approaching this from more of a computer science perspective (enable scalable applications with facilities for abstraction and modularity, etc.) rather than a programming perspective (just getting something that works). Given that Minsky apparently works with OCaml, this makes sense to me (from my experience with Haskell it seems like functional programming tends to attract the computer science people). As mentioned above, Snap! is an example of a similar platform with a much more computer-science-based approach. Scratch is more suited to small programs.
Then again,
Graham's argument can be made the other way as well: a language must not only be suitable for writing throwaway programs, it must allow those throwaway programs room to grow.
Regarding the lack of formally-defined semantics, I feel this is a nonissue. I've never had a problem with offline/online compatibility (although I did once see a project where the creator got better audio quality by importing into Scratch 1.4 and then converting to Scratch 2).
Scratch is intended to teach programming, not computer science. While Minsky's complaints are valid, I feel like he's approaching this from more of a computer science perspective (enable scalable applications with facilities for abstraction and modularity, etc.) rather than a programming perspective (just getting something that works). Given that Minsky apparently works with OCaml, this makes sense to me (from my experience with Haskell it seems like functional programming tends to attract the computer science people). As mentioned above, Snap! is an example of a similar platform with a much more computer-science-based approach. Scratch is more suited to small programs.
Then again,
I think if you looked around you'd find that a lot of big, serious programs started as throwaway programs. I would not be surprised if most programs started as throwaway programs. And so if you want to make a language that's good for writing software in general, it has to be good for writing throwaway programs, because that is the larval stage of most software.
Graham's argument can be made the other way as well: a language must not only be suitable for writing throwaway programs, it must allow those throwaway programs room to grow.
Last edited by ScratchMan544 (Feb. 24, 2018 05:16:53)
- MegaApuTurkUltra
-
Scratcher
1000+ posts
Yaron Minsky, OCaml programmer at Jane Street, criticizes Scratch on Twitter
You know what would be cool? a block-based Racket interface. Not sure how achievable that would be, though.If somebody starts this, I will help

- badatprogrammingibe
-
Scratcher
500+ posts
Yaron Minsky, OCaml programmer at Jane Street, criticizes Scratch on Twitter
You know what would be cool? a block-based Racket interface. Not sure how achievable that would be, though.Due to how lisp is intended to work, this would be very hard and, although possible, most likely very clunky.
It would be impossible to implement read, and the blocks being linked lists themselves will be super clunky.
- -Vuton-
-
Scratcher
1000+ posts
Yaron Minsky, OCaml programmer at Jane Street, criticizes Scratch on Twitter
They've also made a poor platform choice by running on Flash, which they've been stuck on for years now.cough cough Scratch 3.0 cough cough
- Discussion Forums
- » Advanced Topics
-
» Yaron Minsky, OCaml programmer at Jane Street, criticizes Scratch on Twitter







