Hacker Newsnew | past | comments | ask | show | jobs | submit | andrewla's commentslogin

I don't love graphical programming environments like this and Scratch and I can't quite put my finger on why I find them so unattractive.

A big part of it is that you can, to some degree, learn programming from this. But you absolutely cannot learn software engineering from this.


I would love to see the opposite emerge, a programming environment focused on teaching architecture, security, separation of concerns, etc. All while letting LLMs deal with the fussy programming bits.

The script is already flipping, with kids making software using AI but they can only fumble forward inch by inch while burning tokens. It would be great to introduce programming in the way it functions in the workplace - we want to make a Mario clone, start with the goal, hammer out the elements to a certain fidelity then let the AI cook.


This would be so exciting. The implementation language would be less of a concern, but it worth wondering about... Would you use Rust, Racket, Lisp, Clojure, etc? I had a lot of fun teaching adults to program using DrRacket and didn't focus on the language as much as the concepts you mentioned above. They ended up being easily able to move to Javascript, Swift, and others at the end of the course.

I learned to program from block programming, starting out when I was 12. I'm now a full-time developer and funded startup founder. You absolutely can learn complex concepts from simple primitives, and there is a large underground community pushing the limits of languages like Scratch. See for example Linux running on RISC-V running on Scratch:

https://turbowarp.org/1201938491


In my experience, there’s no better way to learn more complex programming techniques or tools than running into a brick wall with the simple tools you’re familiar with, spending a ton of time on an unreasonably irritating solution, only to realize that you’re running into a classic [n] problem and some clever person figured out a simple logical trick to address it. I mean, it can be enraging but that knowledge tends to stick.

Though I doubt that happens much anymore.


Couldn't agree more. To add on I think you can learn so much by doing something incredibly stupid you're really not supposed to in an intentionally constrained environment (in a good way, like the grandparent comment). The sort of absurd things that get posted here occasionally and get a few commenters genuinely annoyed that they're doing that with their time instead of curing cancer. Plus it tends to be easier than it looks.

(I think some people have caught on to this and found out that Claude is pretty good at it.. not sure what the point of that is but whatever)


This supports making your own higher order functions. You absolutely can learn software engineering from this. What you can't do is get syntax errors, which makes teaching a classroom of kids by yourself intractable.

I skimmed the manual. It's more powerful than I thought. You can do metaprogramming directly in the language, which will deconstruct blocks into lists. It's basically Scheme as blocks,

You also can't learn to be a great novelist from the alphabet song, but it has its place!

If you appreciate when keyboard interaction gets added to a GUI, then you might think of a graphical language as the opposite, as it essentially removes keyboard interaction from what is normally a text-based system.

Not based on an official Blockly implementation. But you can add keyboard navigation to Blockly(-like) scripting reasonably easily:

https://www.youtube.com/watch?v=ITWSL5lTLig

The video above shows keyboard, but the main motivation for the key-based navigation was actually gamepad.


Snap does have a limited keyboard mode (shift click), but it's not really as good as "real" IDE.

LEGO created NXT-G for programming their Mindstorm NXT. It has since, in my opinion, been the best graphical programming I've seen to date.

It did have a slight learning curve, but 5th graders were competing just fine against high schoolers haha.


To some extent, that’s not the point. You don’t need to learn all of CS in one tool.

That said, I think you can learn good fundamentals of SWE with tools like Snap!. You can still learn testing, design patterns, working with APIs, modularity etc.

No it’s not a distributed system, and perhaps the biggest pain point is collaboration is tricky. But still you can learn a ton of cool things without going that far into CS. :)


I have the same gripe and I think it’s just simply that when you are used to being able to just write code, everything else feels like it’s in the way.

Visual coding is a pain to change and move around quickly. It’s just clutter ultimately - if you know how to actually code.


from someone who can remember how they even got into programming:

it's because this is BS and just a toy, it's got no connection to the real world.

from the angle of someone trying to make some toy to teach programming, maybe in their head it's like: oh this is so simple and easy it should work perfectly for teaching

but from my experience, most of my learning came from "whats this?" "how do i make a thing like this?"

this doesn't provide a way to accomplish that or to promote curiosity

I think same applies to basic CS courses teaching bits and bytes, it's not really useful to know what bits and bytes are if you don't understand what they're even used for or why you should know what they are

however, this is just my subjective point of view, maybe it differs for others.


Fair that your path worked differently for you.

But "no connection to the real world" is hard to sustain once you look at what people actually build with Snap!/Scratch. The ecosystem is full of bridges to physical stuff:

Cameras, microphones, audio, pen plotters, 3D (BeetleBlocks). Snap! 12.1 (video from a few days ago) adds body-language recognition, Bauhaus-style shape compositions, first-class Processes, translation updates:

https://www.youtube.com/watch?v=ID7wYxzHUAc

Arduino / micro:bit / boards (Snap4Arduino, MicroBlocks, many hardware libraries):

https://www.youtube.com/watch?v=Ltzlzk_zkys&list=PL5OeDsbY1E...

Robots (Finch, Hummingbird, Lego NXT, drones):

https://www.youtube.com/watch?v=6_0EqIbTlkk

Sewing machines (TurtleStitch -- embroidery from blocks; one of my favorites):

https://www.youtube.com/watch?v=K6ra5ThxkrE

Web APIs and IoT:

https://www.youtube.com/watch?v=l_P7MoBG250

ML/AI and digital fabrication (Ken Kahn's eCraft2Learn):

https://project.ecraft2learn.eu/

The "what's this? how do I make a thing like this?" curiosity you describe is exactly how a lot of people get pulled in -- making something move, blink, sing, or stitch on a machine they can see, rather than learning abstract syntax first. Blocks are the on-ramp; the project is the motivation.

Different audience than yours, maybe. But "just a toy walled off from reality" undersells what this community has been doing for decades.

Snap! also teaches real computer science at college level while staying accessible to kids -- not a stripped-down kiddie language. Brian Harvey: "Snap! is Scheme disguised as Scratch" (though he notes the original intent was closer to Logo disguised as Scratch):

https://forum.snap.berkeley.edu/t/hygienic-macros/3258/6

Re alanbernstein's point about keyboard vs GUI: Snap! is not keyboard-hostile. It has a keyboard editor for scripts -- build and edit whole scripts without the mouse, block search from the keyboard, infix arithmetic expressions typed left-to-right. Manual chapter:

https://docs.snap.berkeley.edu/user-interface-elements/#sec-...

Demo (typing formulas from the keyboard):

https://www.youtube.com/watch?v=ahHAl3p3gEU

Full IDE accessibility (screen readers etc.) is still a work in progress; Jens and Brian document what's there now:

https://github.com/jmoenig/Snap/issues/1498


I guess I just can't relate to it, because I was fascinated with the computing itself, not just getting from A to B as quickly as possible

so it wasn't the project that was the motivation, it was figuring out how to do it for real, and getting closer to expertise in programming

for example the TurtleStitch, I don't know how to say this exactly, but to me it doesn't strike as something that'd interest people who want to get into programming, but is more like a way to showcase how to do machined embroidery in an accessible way

I might be totally wrong, but my problem seems to be that a lot of this is just about showing off the capabilities of Snap, but it's not really something I would've engaged with for example?

like almost as if the ecosystem simply serves to show off Snap and thus misses the mark?

like Snap doesn't really provide a way to understand how stuff is actually done except for maybe simple logic. So I don't see how it'd be very useful for e.g. learning CS when it's not really something you'd see in the real world, i.e. you're learning a learning platform and some basic concepts

I guess my point is like, if it's not really something that's used in the real world, unlike say JS or Python, why use it instead of getting up to speed in a real language?

again, it could be that I simply don't get it, or that I'm not the target audience, but I feel like there's a reason why these haven't really taken off, and IMO there's no reason why they would need to, because they serve a very specific niche


> like Snap doesn't really provide a way to understand how stuff is actually done... So I don't see how it'd be very useful for e.g. learning CS when it's not really something you'd see in the real world

The point of scratch is not to prepare students for the professional world of computing, nor is it to prepare students for study in a CS program.

Instead, it's to expose students to computational thinking at an early age in an accessible, age-appropriate way. It's the same reason we teach the Bohr model of the atom before exposing kids to orbitals and probability distributions -- the Bohr model is false but at least it can provide a model and scaffolding for future learning. They're not ready for real Python or Javascript yet. You as a child might have been, but scratch is for teaching all students, not just the ones with a preexisting aptitude for coding.

> if it's not really something that's used in the real world, unlike say JS or Python, why use it instead of getting up to speed in a real language?

Why do you feel like exposing young children to professional development tools is important? Have you ever tried to get a class of students up to speed in a real language? Give it a shot and it might answer a lot of your questions.

> it could be that I simply don't get it, or that I'm not the target audience

Yes, this is very likely. Few years back I did a survey of elementary school students and their opinions on programming. Young kids exposed to Scratch reported that programming was "fun", "exciting", "enjoyable" and "something they wanted to continue to do". They viewed it as an extension of art and play. On the other hand, older kids who were then exposed to Python and VS Code no longer reported feeling the same way about programming, instead using words like "frustrating", "hard", "confusing" and most damningly described it "like math class", the least popular subject among students.

Exposing kids to the frustrating and confusing path first is a good way to make sure no one wants to go into the field. You as a child would probably have pursued the field nonetheless, so I can see why Scratch doesn't seem like a good teaching tool to you.

> I feel like there's a reason why these haven't really taken off,

wdym Scratch is wildly popular with students and widely used throughout the world. You see people here in this thread stating it's what got them interested in programming. Something like Snap! is nice because it provides a higher ceiling for Scratch programmers. It's not as popular because it Scratch serves much of the role, but its existence is an important bridge for older students who will eventually transition to Python or Java.

For further reading that can explain the theory better than I can, see the writings of Alan Kay and Seymour Papert, especially Papert's book "Mindstorms".


> like almost as if the ecosystem simply serves to show off Snap and thus misses the mark?

No, I think you're the one missing the mark. And even if it shows off Snap! while teaching computer science, and students have something tangible, soft, and colorful to show off from the learning process, in what way is that missing the mark? What do you even believe the mark it misses is?

In no way are any of those modules I mentioned merely intended to simply show off Snap's capabilities. They have much more legitimate pedagogical purposes, and if you'd simply watch some of the Snap!Con presentations and videos I linked you to, you'd see and hear their developers and teachers and students show and explain what those purposes and results are.

I attended Snap!Con in Barcelona, played around with TurtleStitch myself, and still have and cherish the cool textile artifacts (and also cool friends) I made.

And the TurtleStitch presentation included live streaming video of students of diverse genders and cultures and ages enthusiastically showing off and talking about the beautiful physical objects they designed, programmed, made, presented to their parents and the conference, and are rightfully proud of, and discuss what they learned from the experience.

Trigger Warning: If diversity enrages you but Nazi salutes don't, then that's your own bigoted psychiatric problem.

Snap!Con 2021 - TurtleStitch: The Power of Diversity

https://www.youtube.com/watch?v=B-EGVQR9Aa4

> Over the last few years, the TS community has grown not only in size but also in diversity, integrating people from different cultures, ages and genders. We believe this has to do with the specific attraction that textiles generate. Every culture has a specific textile tradition which reaches directly into the daily lives of everyone, evocating both personal as well as collective memories, generating an affective field. The coding aspect allows rethinking this tradition from a contemporary point of view, creating a space that is open and not yet fully defined, inviting people to open experimental exploration.

> How this space is then explored, how the technical and the textile are combined, how machine and hand-craft are related and what kind of products -- tangible products of ones own learning and creativity -- are generated is deeply influenced by local conditions and personal preferences, providing the space of diverse articulation and, through the peer exchange on the platform, collaborative inspiration.

> In this talk, I will provide a short look back at the environment from which TurtleStitch emerged and give an overview of the current state. Voices from the TurtleStitch environment will provide their own perspectives on and use of TurtleStitch.

> Check out TurtleStitch at https://turtlestitch.org

In a nutshell or TL;DR for someone unwilling to put in the time and effort to learn or even consider evidence, and who talks about promoting curiosity but is incurious yourself, and who performatively refuses to recognize an obvious Nazi salute and feels compelled to repeatedly defend and praise Elon Musk after he does it twice in a row on international television: it's all about Constructionist Education, not promoting or showing off a product, or selling computer controlled embroidery machines, Arduinos, and robots, or even a cynical huckster perennially promising full self driving cars and trips to Mars.

https://en.wikipedia.org/wiki/Constructionism_(learning_theo...

> Constructionist learning is a theory of learning centred on mental models. Constructionism advocates student-centered, discovery learning where students use what they already know to acquire more knowledge.[1] Students learn through participation in project-based learning where they make connections between different ideas and areas of knowledge facilitated by the teacher through coaching rather than using lectures or step-by-step guidance.[1] Further, constructionism holds that learning can happen most effectively when people are active in making tangible objects in the real world. In this sense, constructionism is connected with experiential learning and builds on Jean Piaget's epistemological theory of constructivism.[2]

> Seymour Papert defined constructionism in a proposal to the National Science Foundation titled Constructionism: A New Opportunity for Elementary Science Education as follows:

Papert> The word constructionism is a mnemonic for two aspects of the theory of science education underlying this project. From constructivist theories of psychology we take a view of learning as a reconstruction rather than as a transmission of knowledge. Then we extend the idea of manipulative materials to the idea that learning is most effective when part of an activity the learner experiences as constructing a meaningful product.[3]

And that's not bullshit, just a toy, or disconnected from the real world, as you so wrongly claim. You're the one who's making unsupportable statements that are provably disconnected from the real world, my friend. And yours are knowingly false whoppers intended to offend sincere educators and defend trolling fascists, not polite white lies to spare people's feelings.


Where the heck did the sudden vitriol come from? I went through the HN comments of the person you're replying to and found nothing like the kind of thing you're replying to in the first several pages. If he said something months ago that you're bringing up, you might want to link to it, because at it stands it feels like you just suddenly started ranting about politics in the middle of a conversation about teaching kids to code. Which is... kind of offputting, you know?

Could we please try to follow the guidelines and not have flamewars and partisan dispute? Especially ones that seem to spring up out of nowhere, reviving conversations that are months old? I'm here to learn about cool new projects; if I want to read about politics or personal drama I have pretty much the entire rest of the Internet to do so.


Set showdead=true and you can see his fanatical arguments in defense of Musk's Nazi salutes, and attacks on other people who disagreed with him, which rightly got his multiple comments flagged dead.

His evidence-free Nazi-salute-defending arguments were in such bad faith, ignoring and refusing to address other people's valid counter arguments, the exact same way he is now ignoring and refusing to engage with mine, and sealioning questions whose very premises so wrong they don't deserve the answers I gave him anyway, that his old dead boot licking comments don't deserved to be linked or repeated, since they're a distraction from the useful things I actually linked to. The only thing his comments prove is that he's not arguing in good faith, and can only dispense drive-by evidence-free attacks.

You can easily find them yourself if you really don't believe me, but it's a waste of your time, because his comments have no value. Have you looked at any of those valuable links I did post yet, or did you just get stuck in the worthless rabbithole of his posting history?

I believe your time would be much better spent reading the links I already provided than his Musk cheerleading and oligarch water carrying and Nazi salute whitewashing. But if you really care about his arguments, why don't you ask him now to explain what he said about Musk, privately? Or doesn't he publish under his own name with his own email address so you can ask him, like I do?

I'm more than happy to answer your personal email about my own arguments and projects, and continue this discussion in private: [email protected]

His own ungrounded vitriolic words attacking Jens Mönig's and Brian Harvey's and Seymour Papert's life work like "it's because this is BS and just a toy, it's got no connection to the real world" and "like almost as if the ecosystem simply serves to show off Snap and thus misses the mark" are dismissive, insulting, and provably wrong.

So I posted several links and evidence refuting him and defending my friends. Yet then he repeated the same pattern as his full throated defense of Musk's Nazi salutes, by ignoring all the evidence, and reiterating his unsubstantiated false accusations, without providing any objective evidence or coherent arguments or even any citations himself.

If you'd like to learn about cool free open source educational projects, please look at the many links I already posted, and what I posted to the Logo discussion. At least spend as much time on those interesting relevent links as you already have wasted reading his uninteresing irrelevent posting history, please.

He didn't post any links or evidence or even coherent arguments to support his mistaken and aggressive accusations, while I refuted "this is BS" by linking to and quoting the Wikipedia page about Seymour Papert's Constructionist Education philosophy, "just a toy" by naming and linking to many Snap! projects and demos, and "no connection to the real world" by citing several physical real world connections like TurtleStitch.

Yet he dismissed and ignored all of that, and questioned the motives of sincere professional educators and developers of free open source software as merely and illegitimately promoting Snap!, because he isn't arguing in good faith, just attacking, and he didn't bother looking at any of the links, so he still doesn't know what he's talking about.

If reading his oligarch-syncophantic posting history (which I was trying to save you from by identifying where he's actually coming from) isn't interesting enough for you, and you still thirst to learn about cool projects, then please look at the links I already posted, read my other recent posts about Logo, and check out some of the other educational projects I've been developing over several decades, which were deeply inspired by Seymour Papert's Constructionism, that I've written a lot about.

But if like him you're so offput and triggered by the very mention of diversity, constructionist education, free speech for anyone but Musk, and criticism of an unloving parent so terrible and unaccepting that he publically and vitriolically disparages, abuses, and disowns his own trans daughter in front of millions of people that you have to leap to his defense, then there's nothing I can do for you, sir.

But I certainly hope you're not like that, so here are some links in good faith:

Logo Adventure for C64 Terrapin Logo:

https://donhopkins.medium.com/logo-adventure-for-c64-terrapi...

Micropolis: Constructionist Educational Open Source SimCity:

https://donhopkins.medium.com/har-2009-lightning-talk-transc...

This is Micropolis (open source SimCity) in WebAssembly:

https://micropolisweb.com/

This is The Sims 1 character animation system (which I original wrote in C++ 30 years ago) rewritten in TypeScript and WebGL:

https://vitamoo.space/

Micropolis and other open source code, documentation, and designs for new educational software:

https://github.com/SimHacker/MicropolisCore/

MOOLLM Constructionism skill:

https://github.com/SimHacker/moollm/blob/main/skills/constru...

MOOLLM Adventure skill:

https://github.com/SimHacker/moollm/tree/main/skills/adventu...

Adventure Compiler:

https://github.com/SimHacker/moollm/blob/main/skills/adventu...

Gary Drescher's Schema Mechanism skill from "Made Up Minds" (based on his PhD thesis and book about how children learn, with his advisor Marvin Minsky at the MIT AI Lab):

https://github.com/SimHacker/moollm/blob/main/skills/schema-...

MOOLLM Play Learn Lift skill:

https://github.com/SimHacker/moollm/tree/main/skills/play-le...


Don't worry, I didn't spend much time digging through comment history. Thanks for the links; I'm about to have to leave my computer and do something else for several hours, so I can't look at them right now. But since you replied to one of my comments it'll be easy to find them again via the "threads" link, so I'll look at them later when I'm back at the computer. (And I did look at the first one; Logo Adventure is exactly the kind of thing I love to come across, so thanks for that!)

I'm not sure what caused him to lash out at me like that, I thought I was being pretty reasonable (albeit very casual with terms like BS), I even made sure to say multiple times that it was my opinions and views, and that maybe I just don't "get it".

Here's my reply with links to my past comments: https://news.ycombinator.com/item?id=49671123

I understand that some consider Elon a Nazi but I don't consider that a common belief, so I don't know why I'd need to support that belief in order to talk about this Snap language and others, like Scratch.


As I explained quite clearly, with examples and links, you're not arguing in good faith. Not about Snap!, and not about Musk either. The pattern is quite clear. If you were, you would have looked at the links to evidence I gave you, and responded to that, instead of just repeating what you said and proving that you didn't read or comprehend anything I posted.

So did you look at any of the links and videos I posted? Your reply totally ignored them, so I will give you another chance. Go read them, and then tell me what they said, and explain how can you continue to stand behind the false accusations you made about my friends and their motives, without acknowleding that your facts and opinions are provably mistaken.

Do you still continue to claim that a Snap is bullshit, that it's a toy, and that it's not connected to the real world?

You're the one who threw the first stone calling it "BS", with no evidence to back that up, and you certainly haven't said anything to support that, and it certainly isn't "BS" or a "toy" just because you say so but can't back up your insulting ignorant accusations.

I already showed you many ways Snap! connectes to the real world, and you are still denying all that. Are you calling me a liar, or do you just have no reading comprehension whatsoever? Do you not think robots, Arduinos, network programming, AI programming, computer science, algorithms, closures, continuations, functional programming, and meta programming are not the "real world"?

In case you didn't know, those are all things you can do with Snap!, and you can't deny you know because I already told you and gave youy links to prove it. You just ignored them, and kept claiming what they proved wrong.

Have you even looked at the college level computer science curriculum Brian Harvey wrote called "The Beauty and Joy of Computing"? I highly doubt it, because the false claims you are making about Snap! fly in the face of everything in that book. It proves you wrong. So what is your definition of the "real world", if not all that I cited and the book teaches?

https://bjc.berkeley.edu/

Then how do you reconcile your denial of reality with all the proof that you're wrong that I posted? I don't expect you to be able to, because, as I said, you're not arguing in good faith, so it's not worth engaging with you. You don't bother reading anything other people post, or replying to what other people say, so reading what you write is a complete waste of time.

If you are capable of arguing in good faith, then tell me if you would treat your own children the way Elon Musk treats his own trans daughter? Do you believe he's a good father, or a transphobic bigot? And if you really don't believe he was making a Nazi salute, then record a video of yourself doing the exact same thing Musk did, post it to youtube under your real name, and then post a link to it. Or is there some reason you don't want to do that, huh?


> I already showed you many ways Snap! connectes to the real world, and you are still denying all that. Are you calling me a liar, or do you just have no reading comprehension whatsoever? Do you not think robots, Arduinos, network programming, AI programming, computer science, algorithms, closures, continuations, functional programming, and meta programming are not the "real world"?

I've already made my points very clear about this, sure, you can do that, but how many are actually doing AI programming in Snap? Why would you? It's very niche and real software doesn't get made in Scratch or Snap. I would say the same thing about Arduino and other things. Again, my opinion, beware.

Again, I don't even know you, I don't know about your friends, I never threw any "stones" here on purpose. I don't expect someone to get so hurt over me criticizing a Scratch-like programming language when posting on HN. Should I expect the same for calling Scratch a toy language?

> If you are capable of arguing in good faith, then tell me if you would treat your own children the way Elon Musk treats his own trans daughter? Do you believe he's a good father, or a transphobic bigot? And if you really don't believe he was making a Nazi salute, then record a video of yourself doing the exact same thing Musk did, post it to youtube under your real name, and then post a link to it. Or is there some reason you don't want to do that, huh?

So everyone who thinks Elon did not do a heil hiler salute to show off how big of a Nazi he is, is now forced to do this because Don Hopkins said so? aye aye sir!

"Or is there some reason you don't want to do that, huh?" is absolutely ridiculous.

You need to self-reflect.


> but how many are actually doing AI programming in Snap?

Remember, I am still waiting for your definition of what "_really_ programming" is, that classifies Scheme as "real" programming language, but not Snap!.

Clue: it's impossible to make such a definition, because Snap! is fully as powerful as Scheme (and not in the trivial sense of "Turing Completeness"), just easier for kids to use.

Again, you're only proving that you didn't read or understand a thing I wrote. I already gave you links to Ken Kahn's eCraft2Learn project and Jen Mönig's demos, but obviously you didn't look at any of it.

Since you refuse to look at or acknowledge anything I link to, I will walk you through some of it here.

TL;DR: Ken and Jens and others are successfully using pure Snap! to teach AI and machine learning to kids. This directly contradicts all of your accusations. Here is the proof.

Ken arrived at the MIT Artificial Intelligence Laboratory in the 1970s, where Marvin Minsky and Seymour Papert served on his PhD committee. His thesis "Creation of Computer Animation from Story Descriptions" was a very early example of generative AI.

During the 1970s (specifically between 1973 and 1979), Ken taught artificial intelligence to elementary school children as a graduate researcher in the MIT AI Laboratory's Logo Group.

He developed a distributed concurrent constraint visual programming language called Pictorial Janus in 1990-1991.

https://en.wikipedia.org/wiki/Janus_(concurrent_constraint_p...

From 1995-present, he developed a visual programming language called ToonTalk, that looks and feels like a 3D video game, for teaching programming and high level CS concepts like concurrency and message passing to kids.

https://toontalk.com/

https://toontalk.com/English/kenkahn.htm

https://en.wikipedia.org/wiki/ToonTalk

53 years after he started teaching Logo to kids with Seymour Papert at the MIT AI Lab Logo Group, he's still teaching AI Programming and Computer Science to kids, now with Snap! and his eCraft2Learn project. Here are his 172 citations on google scholar:

https://scholar.google.com/citations?user=9hQiyqcAAAAJ&hl=en

Here's a video of Jens Mönig demonstrating the data extensions to Snap! that enable programming neural nets in pure Snap! block code.

No JavaScript. No WASM. No WebGPU or WebGL. Pure Snap! blocks.

Again, disproving your accusations that Snap! is bullshit, a toy, has no connection to the real world, and is not useful for teaching AI or advanced computer science concepts.

What's new in Snap! 11 - Data - Extensions - Neural Networks

https://www.youtube.com/watch?v=U9W04TEMBUk

My (Jens Mönig's) closing keynote address at SnapCon25 in Heidelberg, introducing deep machine learning capabilities to Snap as an alternative way to create custom predicate blocks.

The projects created "live" during this talk can be found here:

Backpropagation ANN Sprite Layers:

https://snap.berkeley.edu/snap/snap.html#present:Username=je...

Instruments Recognition:

https://snap.berkeley.edu/snap/snap.html#present:Username=je...

Gesture Recognition:

https://snap.berkeley.edu/snap/snap.html#present:Username=je...

Transcript excerpts about how Snap! teaches AI programming and CS concepts to kids. All quotes are from Jens Mönig's closing keynote address at SnapCon25 (lightly edited for clarity), with links to the video timestamps so you can verify each quote's source of truth:

NOT A TOY: IT TEACHES THE HIGH-LEVEL IDEAS

Abstraction has nothing to do with technology -- it is philosophy

https://www.youtube.com/watch?v=U9W04TEMBUk&t=554s

> This is not about ones and zeros. This is not about how a processor works. This is not about how technology works. This has nothing to do with technology. This is all about philosophy. This is all about how we humans think about things.

If you think teaching merge sort is teaching algorithms, you are not doing your job

https://www.youtube.com/watch?v=U9W04TEMBUk&t=4518s

> If you're teaching merge sort and you think you're teaching algorithms, that's fine for teaching an algorithm, but you're not doing your job.

Hyperblocks: if it takes one number, it takes any dimension of numbers

https://www.youtube.com/watch?v=U9W04TEMBUk&t=319s

> The cool thing about Snap! that we've told you all along, and that's been a theme of this conference, is that if it takes one number, it takes one number in any dimension, or it takes any dimension of numbers.

REAL NEURAL NETWORKS, IMPLEMENTED IN SNAP! ITSELF

There is no secret JavaScript block

https://www.youtube.com/watch?v=U9W04TEMBUk&t=3757s

> These neural networks are all implemented in Snap! itself. There is no secret JavaScript block in there. It's all implemented using this new object-oriented system that we have in there, where we just have prototypical inheritance with actual objects with a new request block.

The Nobel Prize in Physics, in one line of blocks

https://www.youtube.com/watch?v=U9W04TEMBUk&t=2097s

> This thing here is the current Nobel Prize of Physics. And I've seen more complicated code than that.

Asked on stage whether that script is the whole perceptron

https://www.youtube.com/watch?v=U9W04TEMBUk&t=4672s

> "Is that all there is to a perceptron?" -- "Yes." -- "So there's not any hidden magic?" -- "Nope. This is why we wanted to have it out in the open. There's no -- this is it."

KIDS CAN ACTUALLY DO THIS

A perceptron is simpler than the projects the kids in your classes already write

https://www.youtube.com/watch?v=U9W04TEMBUk&t=1234s

> This is a perceptron and this is a layer in a neural network. You've all written more complicated stuff than this, and the kids in your classes have written more complicated projects than this.

Using neural nets in Snap! is high school work

https://www.youtube.com/watch?v=U9W04TEMBUk&t=4490s

> I would expect that just using these neural nets to be something that you could probably do in high school.

Not teaching backpropagation in college is killing computer science

https://www.youtube.com/watch?v=U9W04TEMBUk&t=4502s

> Honestly, I think if you're not teaching backpropagation in college, you're killing computer science. This is the most relevant algorithm around.

CONNECTED TO THE REAL WORLD

Training a net live, on stage, on his own harmonica and recorder

https://www.youtube.com/watch?v=U9W04TEMBUk&t=2460s

> It'd be way cooler if we could use our own data. So let me use my own data.

Same algorithm: one instrument from another, one drawing from another, a sea mine from a rock

https://www.youtube.com/watch?v=U9W04TEMBUk&t=3723s

> It's the same neural network, the same algorithm, that can distinguish one instrument from another, one drawing from another, a sea mine from a rock. It's the same thing, folks.

Snap! 11 talks to Arduinos and speaks websockets

https://www.youtube.com/watch?v=U9W04TEMBUk&t=3800s

> You've seen [Jan?] show that now we can connect to Arduinos in Snap! 11, because he has ported Snap4Arduino -- he called it the S4A bridge, which is the most enormous understatement there is. Bernat has contributed websockets, which is immensely useful.

AND NOT ONE INCH OF AI HYPE

Anyone selling you "explainable AI" is lying to you

https://www.youtube.com/watch?v=U9W04TEMBUk&t=2272s

> If any company, if any mogul is telling you that they're working on explainable AI, they are lying to you. They're working on some chatbot that is going to come up with some gibberish that is going to be an explanation, but it's not going to be what's actually going on. There is no way to explain what's going on as soon as you have one hidden layer.

Would you take a life and death decision on an 80 percent chance?

https://www.youtube.com/watch?v=U9W04TEMBUk&t=1897s

> Think about 80%. This is a decision, friend or foe. Are you going to kill somebody with an 80% chance? Probably not. Are you going to take life and death decisions on an 80% chance? Probably not.

This might be the last algorithm we get to teach, so we had better teach it well

https://www.youtube.com/watch?v=U9W04TEMBUk&t=3739s

> This thing is eating up our lunch. We want to teach algorithms. This might be the last algorithm we get to teach. We better teach it well.


I replied at: https://news.ycombinator.com/item?id=49675110

I'm well aware that Snap has this stuff in it, and I understand it is used to teach and get kids interested about programming, I know.

I still do not understand why you'd want to learn AI with Snap/Scratch. I don't think that's a very controversial opinion?

If you just want to show kids some basic stuff okay sure, why not.

By the time you'd want to mess with neural networks, I think it'd be best to just use Python or something, not wrestle with this...

I appreciate you being so thorough with your references and the transcripts, and I think it's cool and interesting.

I'm just saying that for me I don't get why I'd use this or try to do these complex things in this Scratch format rather than jumping on an actual language where I don't need to rely on these extensions or new features, and I'd be learning a real language that is actually used in the real world.

And like, saying that Scratch is a toy language, I don't think that's a very controversial thing to say, so if I said the same thing about this, why be so offended over it? calling it BS, I can get that, but it was never directed towards anyone specifically, it was towards visual programming languages in general like Scratch. They serve a purpose, sure, but in my view, a very limited one. And I still don't see this being used like other languages for real stuff, aside from limited demos and exercises for kids.

You can say I'm wrong, that's completely fine. But I think you're missing my point here.


You keep conspicuously avoiding answering my question about your definition of "_really_ programming", because it paints you into a corner and proves you are wrong, and you don't want to admit it.

>I still do not understand why you'd want to learn AI with Snap/Scratch.

At this point you're just desparately sealioning. You are intentionally pretending to be stupid, and I don't believe your act.

>And like, saying that Scratch is a toy language, [...]

Please stop right there. You are moving the goalposts. This is a discussion about Snap!, not Scratch. You made those false claims about Snap!, not Scratch. I've proven Snap! is not a toy language already.

Conspicuously attempting to move the goalposts to a totally different language does not refute what I said, it just once again proves my point that you are not arguing in good faith.


> You keep conspicuously avoiding answering my question about your definition of "_really_ programming", because it paints you into a corner and proves you are wrong, and you don't want to admit it.

No. Almost anyone here would be fine with someone saying that using Scratch/Snap is not really programming in the same way that you'd use real languages to do stuff. It's obvious what it means.

> At this point you're just desparately sealioning. You are intentionally pretending to be stupid, and I don't believe your act.

No I am not, but are you pretending to be stupid here?

Otherwise, why wouldn't almost all AI learning and demos be done with Snap if it's so amazing? Why is it only done in these conference recordings that have like 500 views on youtube?

You're convinced that this Scratch-like "language" is somehow so incredible that you cannot criticize it or claim that it only fulfills a specific niche and that its not the same as actual general purpose languages that we use in the real world like Python, JS, C, C++, Go and so on.

> Please stop right there. You are moving the goalposts. This is a discussion about Snap!, not Scratch.

Same thing applies. I don't care how much this Scratch-like language is extended, it doesn't matter, my point still applies, it's not useful beyond a specific niche which seems to be to teach kids basic things about logic and programming, not actual software engineering.

If you would've read what I wrote:

> And like, saying that Scratch is a toy language, I don't think that's a very controversial thing to say, so if I said the same thing about this, why be so offended over it? calling it BS, I can get that, but it was never directed towards anyone specifically, it was towards visual programming languages in general like Scratch. They serve a purpose, sure, but in my view, a very limited one. And I still don't see this being used like other languages for real stuff, aside from limited demos and exercises for kids.

If you read this part fully:

"And like, saying that Scratch is a toy language, I don't think that's a very controversial thing to say, so if I said the same thing about this, why be so offended over it?"

You would see that I am indeed talking about Snap, not just Scratch.

Do I have to believe your "act"?

Also, you seem to be consistently hostile, maybe because you're frustrated at the fact that I am being very reasonable here, and you're trying to force me into liking your language or whatever and admit that its super useful language and it's not working, because you're used to always having your way?

I have gone out of my way to be reasonable with you and argue with you in good faith, and you keep bringing insults and accusations and keep implying that I'm a Nazi or something.

Think about it, you're so upset over the fact that I don't consider a colored block drag and drop interface/system a real programming language that's used in the real world that you're doing all this and constantly attacking me and getting angry over my very reasonable arguments

It's unhealthy and you should maybe ask one of those friends if what you're doing is reasonable or not. Maybe they can get you the help you need.


Now you're totally going off the rails, and making incoherent, intentionally deceiptive arguments. After I called you on moving the goalposts by trying to change the topic to Scratch, which is a different programming language than Snap!, and not a dialect of Scheme like Snap! is, you keep doing it.

I'd say you're totally confused and deeply ignorant, but you're doing it intentionally, just pretending to be stupid, just to be a rude asshole on purpose. That's the definition of trolling.

> Almost anyone here would be fine with [...]

You don't speak for anyone else here but yourself. Many of the people in this discussion have directly contradicted you, but you ignored them all and try to put different words in their mouths. Nobody here agrees with you ignorant opinions about Snap!, because you are dead wrong, and incredibly disrespectful.

> [...] why wouldn't almost all AI learning and demos [...]

Are you on cocaine or something? That's a totally incoherent argument, because "almost all AI learning and demos" do not have to be written in Snap! in order for Snap! to be a dialect of Scheme (which it absolutely is), and thus a "real programming language" by YOUR OWN definition.

Are almost AI learning and demos written in Scheme? No, they most certainly aren't, yet Scheme is still a "real programming language", as you admit. If that's your kind of logic, you must be a terrible programmer.

Again, you're moving the goalpost by introducing a completely ridiculous bar that "almost all AI learning and demos" must be written in a programming language in order for it to be "real". You are just trolling at this point.

You have lost this fight that YOU picked by calling Snap! bullshit so spectaculary that all you can come up with is that. You're humiliating youself in public. Take the L.

> You would see that I am indeed talking about Snap, not just Scratch.

That's a pathetic attempt to rewrite your own words. You were LITERALLY talking about "Scratch", not "Snap!", and there is no way you can back-pedal your way out of that. They are very different languages.

Snap! is intentionally by design much more like Scheme than Scratch, designed for a different, older audience. "Beauty and Joy of Computing" is a college level book and curriculum about it, endorsed by Advanced Placement Computer Science Principles (AP CSP), and taught at the University of California Berkeley and many other learning institutions in the real world.

AP Computer Science Principles:

https://gunnwiki.org/AP_Computer_Science_Principles

>AP Computer Science Principles, short as AP CSP, is the only AP course that freshmen can take. In this course, you will learn basic computer science concepts, including how the internet works, the binary system, different types of sorts (quick sort and bubble sort), artificial intelligence (AI), and more! However, the course mainly focuses on programming, which the language is Snap! [1], a block coding language similar to Scratch [2]. All students taking AP CSP are encouraged to take the AP exam, which is considered relatively simple to other AP exams. The teachers for AP CSP are Mr. Kaneko and Ms. McDonnell.

Its authors Brian Harvey and Jens Mönig have explicitly said many times that Snap! is just as powerful as Scheme, and I quoted them to you, yet you choose to treat Brian and Jens as liars about their own language, after insulting them and their life's work by calling Snap! bullshit and a toy and not a real language. Who's the one being hostile here?

You're still not arguing in good faith. And you're the one who's so mentally unhealthy and hostile that you enthusiastically defended Elon Musk's Nazi salute by calling people who disagreed with you names and hurling insults at them in public and on the record, yet you cowardly refuse to do what Elon did yourself. That's checkmate, buddy.

You're just a troll, and not even a good one, because your arguments are incoherent, you can't support anything you say, your own definition proves you wrong, and you're still obviously and offensively lying through your teeth after having been presented with mountains of proof that you are wrong, so that makes your opinions and arguments and reputation worthless.


You need to cool down.

I replied to this comment:

> I don't love graphical programming environments like this and Scratch and I can't quite put my finger on why I find them so unattractive. > A big part of it is that you can, to some degree, learn programming from this. But you absolutely cannot learn software engineering from this.

And you then showed off some embroidery stuff and things that I explained that in my own opinion, are not connected to real world software engineering/programming, and seem to serve Snap rather than things that you'd actually use in the field.

That's my opinion and I'm allowed to have my own. Otherwise all I could say is that you're right and its awesome. Right?

And here you are attacking me with things like:

"but it's a waste of your time, because his comments have no value. Have you looked at any of those valuable links I did post yet, or did you just get stuck in the worthless rabbithole of his posting history?"

"dead boot licking comments don't deserved to be linked or repeated"

Because apparently I'm not allowed to have my own opinions of blocky visual programming languages. A bit fascist isn't it?

Anyhow

"I attended Snap!Con in Barcelona, played around with TurtleStitch myself, and still have and cherish the cool textile artifacts (and also cool friends) I made.

And the TurtleStitch presentation included live streaming video of students of diverse genders and cultures and ages enthusiastically showing off and talking about the beautiful physical objects they designed, programmed, made, presented to their parents and the conference, and are rightfully proud of, and discuss what they learned from the experience."

Okay, how does this disprove my point that its more about making machined embroidery accessible vs. learning CS concepts?

And who would attend Snap!Con unless they were part of that community working on the ecosystem or deeply involved with it?

You're projecting that I'm arguing in bad faith, but clearly that's you here, I can't really engage with you properly when your replies are full of things like:

" In a nutshell or TL;DR for someone unwilling to put in the time and effort to learn or even consider evidence, and who talks about promoting curiosity but is incurious yourself, and who performatively refuses to recognize an obvious Nazi salute and feels compelled to repeatedly defend and praise Elon Musk after he does it twice in a row on international television: it's all about Constructionist Education, not promoting or showing off a product, or selling computer controlled embroidery machines, Arduinos, and robots, or even a cynical huckster perennially promising full self driving cars and trips to Mars."

I visited all the links you provided and still arrived in the same conclusion.

and you're saying I'm incurious. Can you just stop lying and spreading lies about me? And when have I praised Musk?

If you're so emotionally attached to this 'language' that you feel the need to dig up "dirt" on me from my post history and spread lies and tell others that I'm some kind of fascist, maybe you should reevaluate your life choices. I wouldn't get this mad over someone criticizing Go or Rust etc.

And it proves that you're unable to take criticism of your language since you're convinced that no matter what, you're right and that with you posting some conference talk links, others should become convinced that it's a super relevant language.

And with regards to Constructionism, from my understanding, the main point seems to be to use existing knowledge to acquire more knowledge, CS/programming in this case.

From the Wikipedia page:

"The following five strategies make problem-based learning more effective:

1. The learning activities should be related to a larger task. The larger task is important because it allows students to see that the activities can be applied to many aspects of life and, as a result, students are more likely to find the activities they are doing useful."

This is exactly my criticism. With Snap / etc. the larger task is just a demo or something inside Snap. maybe controlling some robot, okay.

But it's not something you'd see in the real world, it can't be "applied to many aspects of life" in the context of CS, it's mostly constrained to Snap and its environment.

My belief is that learning is done best when there is a connection to something real, not just a simulation or an exercise. With Snap, it inevitably is kind of just a demo. Whereas with real languages you can get close to how things are done for real, which serve as a motivator and invoke curiosity.

Again, if it's your opinion that Snap is successful and that's why people are using it to learn to code, then that's fine. I haven't seen that happen yet and I believe there are reasons as to why I haven't seen that happen.

And since I'm here in good faith (unlike you) I will provide links to my Nazi comments as per your accusations:

- https://news.ycombinator.com/item?id=49589879 - https://news.ycombinator.com/item?id=49590610 - https://news.ycombinator.com/item?id=49589966

btw, I have literally criticized the wealth of Musk in HN before and how it's unsustainable, same with the AI datacenter buildout and financial consolidation that's happening right now.

Considering your vast experience and knowledge, I find your conduct pretty embarrassing here.


> My belief is that learning is done best when there is a connection to something real, not just a simulation or an exercise.

Okay but you're stacking your unsubstantiated belief based on a sample of just you against an entire field of research where people have dedicated their lives, so maybe you can understand why some people take it personally when you just call it BS off the cuff?

> since you're convinced that no matter what, you're right

You're the one convinced you're right no matter what. You countered their very many resources with "Yeah but my belief". Okay, well what backs up your belief? Again, Scratch/Snap are backed up by decades of research, user studies, and deployments. It's not this one person's opinion what they're saying here.

> Whereas with real languages you can get close to how things are done for real, which serve as a motivator and invoke curiosity.

Have you actually examined if this is true or do you just feel that it is true? Moreover, even if it is true, have you examined if this is the only and best way to do things for everyone or do you just feel it?


> Okay but you're stacking your unsubstantiated belief based on a sample of just you against an entire field of research where people have dedicated their lives, so maybe you can understand why some people take it personally when you just call it BS off the cuff?

No, I usually don't understand why people take it personally if it's not directed towards anyone, but I do understand why it would come off as demeaning, so for that I apologize.

However it was not to the degree where this guy's response was warranted at all. Not one bit.

> You're the one convinced you're right no matter what. No. I never said I was right. I've literally multiple times said that it is MY opinion, and my view point, and that I'm simply saying what I think.

Okay, decades of research and whatnot, so is the conclusion that Snap is perfect for what it's intended and that there is no room for criticism or opposing views against it? Would I have to do decades of research in order to say anything about Snap? That would basically mean it's immune from criticism. We can say the same things about SAP for example.

again, I was replying to this comment:

> I don't love graphical programming environments like this and Scratch and I can't quite put my finger on why I find them so unattractive. > A big part of it is that you can, to some degree, learn programming from this. But you absolutely *cannot learn software engineering* from this.

I am not saying that it doesn't fill a niche, it's literally what I've already said, but I said that it doesn't mean that it is widely applicable, which is *totally fine*

> Have you actually examined if this is true or do you just feel that it is true? Yes, my experience was this. I never said it was for everyone, and you obviously know that, there's no way something will work for absolutely everyone

and I also haven't met basically anyone who learnt programming with Scratch or etc., it was mostly though playing around with real stuff in primitive ways and learning how things work until they became familiar.

I don't understand. There are a few people here who said they learnt programming through scratch, and that's great. However, I'm giving my own subjective experience and my thoughts as to why imo this is not as effective as some might claim, and especially for actually learning programming, not just gaining interest (which would be a small niche)

I think it's totally fine to give your own views, opinions and beliefs on a HN post subject, and I believe that progress happens through people communicating their own ideas and beliefs about things, from which others can then gain new perspectives outside of their own.

I also think it's very much against the hacker spirit to simply shut down everything because there isn't decades of research behind an argument.

You can discard all my beliefs and arguments here and that's totally fine. If they spark some idea or some theory, that's even better. Or if it's something you can relate to and go "oh so it's not just me!" that's also cool. Like how I felt with the original reply.


> However it was not to the degree where this guy's response was warranted at all. Not one bit.

Agreed.

> so is the conclusion that Snap is perfect for what it's intended and that there is no room for criticism or opposing views against it?

That's going too far in the opposite direction, no one has claimed that at all. Your opening post was "this is BS and just a toy, it's got no connection to the real world."

That was a strong negative statement so you've elicited strong pushback.

> and I also haven't met basically anyone who learnt programming with Scratch or etc.,

Well what kind of people do you associate with? What age group? I'm 40, people my age learned Logo as kids, which was the first language of its kind but also quite old by the 90s when I learned it. Before Logo, no one really made languages for kids.

The last student I taught who reported having learned from Logo was in 2020 and he was from Greece, so I think it may have some special appeal there. Beyond that, most of my students (I have taught thousands) report having their first programming experience in Scratch, regardless of whether they are majoring in CS or not. I can count on one hand the number of students who started learning naturally via Python or Javascript or even HTML before being introduced by a teacher to Scratch.

> I think it's totally fine to give your own views

It's totally fine to give your own views and you've spent many posts and many characters doing just that, so you haven't been impeded.

What I and others have are asking is for you to consider something beyond your own views. You've already acknowledged that probably you're not the target audience here, and it's exactly that: Scratch is not for you, and that's okay. That doesn't mean your way doesn't work when it works, but if you want to say something more about how far your method goes or Scratch's efficacy, you need something more than your own views.

Look, I'm actually with you -- I started programming on a mechanical typewriter at 5, and kept going from there. I love running enrichment programs for kids who are like that because you can give them anything and they'll just go with it. But really, only <1% of kids are like that.


> That's going too far in the opposite direction, no one has claimed that at all. Your opening post was "this is BS and just a toy, it's got no connection to the real world."

Yes, the phrasing I used was simply to point out that without the possibility of giving my beliefs and thoughts, we'd end up in this loop where you could only chime in if you can back your arguments with all kinds of research and citations, which usually ends up shutting the conversation down entirely, because the people involved in such projects can do so but most can't.

Strong pushback is completely fine and I appreciate it. It's kind of what I try to aim for, because it allows us to get down to the truth, or something of value.

> Well what kind of people do you associate with? What age group? I'm 40, people my age learned Logo as kids, which was the first language of its kind but also quite old by the 90s when I learned it. Before Logo, no one really made languages for kids.

I started programming at around 12, and many people that I know are in their 20-30s or so. I don't have experience with Logo or have heard of anyone in my circles using it.

Many of my friends began by tinkering with games, writing scripts for them or just writing basic scripts in Bash/Batch/JS/Python and moving to C#/C++ etc.

And I don't think Scratch is completely irrelevant, I just simply think that it is a very limited tool, it's got very few use cases, and that you're better off moving off of it sooner than later, rather than trying to use it for more complex projects or exercises.

> What I and others have are asking is for you to consider something beyond your own views.

And I appreciate that, but I don't think this was simply the case (not talking about you)

for example my reply at https://news.ycombinator.com/item?id=49666774 , I was very upfront with what motivated me and what angle I was coming from, and Don seemed to reply to me trying to convince me that I was mistaken and that in fact it was very relevant and that it "teaches real CS at college level"

I then replied in the aforementioned post that I still didn't get it, and what my motivations were when getting into programming and why the examples he gave didn't change my opinions and why I felt like that.

You replied there with "nor is it to prepare students for study in a CS program." but that was part of my criticism because he claimed that.

Scratch/Snap is fine for what it is, as a way to get young kids interested in the simple primitives of programming and logic. That's great! But again, I think there's a reason why some people, including I, don't see the appeal of these for actual "programming", which is what he tried to show me it's useful for.

That's what I meant with "toy". It's not _really_ programming, and it's very niche, which you seem to point out with how young kids viewed it as an "extension of art and play"

And I absolutely agree, don't put a 5 year old on a bash terminal or an IDE, but I'm not talking about that here. Don was giving out links on Arduinos, Web APIs/IoT, ML/AI, sensors, etc. that's what I meant with "missing the mark"

But I know that even in e.g. where I live, if you join an after-school computer club or whatever, they will happily let you do simple Java courses (MOOCs), or at least they used to do so, even at like 6th grade.

> Look, I'm actually with you -- I started programming on a mechanical typewriter at 5, and kept going from there. I love running enrichment programs for kids who are like that because you can give them anything and they'll just go with it. But really, only <1% of kids are like that.

Yes, that's why I'm aware that I may be missing something here, but I don't think even what you're pointing out here contradicts my core points, unlike with what Don tried to convey in his initial reply.

And the reason why I've kept engaging is because I thought that my point of view may be unique and maybe there could be something there which would explain why these kinds of "languages" don't work for specific situations or audiences. If it was just about it being a language for young kids to explore basic programming logic, I wouldn't have argued against it at all.


> It's not _really_ programming

You're dead wrong. Prove it. Explain what you mean. Give us your definition of what _really_ programming is, and prove that Scheme, Python, and JavaScript are _really_ programming by that definition, but Snap! isn't.

So is Scheme "_really_ programming" or not? What exactly is Snap! missing that Scheme has, that disqualifies it from being "_really_ programming"? If as I predict you dodge this question, that proves my point.

>lern_too_spel 11 hours ago | parent | prev | next [–]

>This supports making your own higher order functions. You absolutely can learn software engineering from this. What you can't do is get syntax errors, which makes teaching a classroom of kids by yourself intractable.

>lern_too_spel 5 hours ago | root | parent | next [–]

>I skimmed the manual. It's more powerful than I thought. You can do metaprogramming directly in the language, which will deconstruct blocks into lists. It's basically Scheme as blocks,

And while you're at it, post that video of yourself doing the exact same thing Musk did that so many people are calling a Nazi salute, under your own real name, to prove it's not. You seem so confident you're right, you should have no problem doing that either. If you refuse, you've just proven my point again that you're not arguing in good faith, and that you're a coward who is afraid to stand by your own words and real name and perform what is obviously a Nazi salute. Because you know you're wrong.


> You're dead wrong. Prove it. Explain what you mean. Give us your definition of what _really_ programming is, and prove that Scheme, Python, and JavaScript are _really_ programming by that definition, but Snap! isn't.

Nobody is using Snap in production or writing real applications with it. The same can't be said for Python or JS. When you're writing Python or JS, you are truly writing code.

I would say Scheme is programming because it's literally a Lisp dialect, and Lisp is still used so.. yeah.

With Snap/Scratch, you're playing around with Snap/Scratch. Do you understand my point here?

By the time you'd reach for the complex functions of Snap, you're better off just learning actual languages, do you get what I mean? Unless you just want to make stuff happen fast.

I would disagree with the guy saying you can "learn software engineering from this". No you can't and you really shouldn't try to.

Otherwise we can go and argue that Factorio blocks or Minecraft redstone is programming because you can make a CPU in them.

> And while you're at it, post that video of yourself doing the exact same thing Musk did that so many people are calling a Nazi salute, under your own real name, to prove it's not. You seem so confident you're right, you should have no problem doing that either. If you refuse, you've just proven my point again that you're not arguing in good faith, and that you're a coward who is afraid to stand by your own words and real name and perform what is obviously a Nazi salute. Because you know you're wrong.

Again reminding you to self-reflect because this is unhinged. What is wrong with you?


> I would say Scheme is programming because it's literally a Lisp dialect, and Lisp is still used so.. yeah.

Snap! is literally a Scheme dialect.

So by your own definition, Snap! is a "real" programming language. I'm glad I finally convinced you to change your mind when confronted with irrefutable evidence!

But that's an weird definition that makes languages like Scheme and Snap! stop being "real" programming if Lisp stops being used. Is that really what you mean? A language can change from "real" to "not real" depending on how much another language is used?

Again, please drill down and elaborate and refine and debug your definition of what a "real" programming language, because it has a lot of holes and inconsistencies in it. See if you can whack all those moles.

> Nobody is using Snap in production

Teaching children AI programming and Computer Science concepts IS PRODUCTION. It's producing the next generation of human beings. Those children are live and shipping in the real world. There is no dev or qa deployment.

> Again reminding you to self-reflect because this is unhinged. What is wrong with you?

Musk making a Nazi salute twice on live international TV was definitely unhinged, we can both agree. Are you unhinged enough to do it too? Even recorded on youtube, under your hn handle, if you're too cowardly to do it under your own name like unhinged Musk did? Why are you defending a man so unhinged that you refuse to do the same thing he does?


Here's how teaching kids goes without scratch:

"This is python, we use it to do professional development work. Here's VS code, we use it to do professional development work. Let's learn them."

6 year olds: "Okay!"

Proceeds to mangle whitespace, variable names, scope, indexing, ==, forgets :, doesn't understand what def is, even after they get all that the program is basically "hello world" print to console.

6 year olds: "Programming is hard and frustrating with little payoff, I don't want to do this anymore"

The one 6 year who who will grow up to be a greybeard sysadmin "This stuff is great! I can't wait to learn more!"

Teachers: "I have no idea what I'm doing, the devs keep saying how Python is supposed to be easy and it's built for learning, but I'm just as confused as the kids."

--

Here's how teaching kids goes with scratch:

"This is scratch, you snape these colored shapes together and they do things like make this character move"

6 year olds: "Okay!"

Proceeds to make games and stories with graphics, sounds and interaction, which they share with their friends, fully editable and runnable in a web environment with zero setup: https://scratch.mit.edu

6 year olds: "Wow programming is fun! I can't wait to learn more!"

The one 6 year who who will grow up to be a greybeard sysadmin "I agree this stuff is great! I can't wait to learn more!"

Teachers: "It wasn't hard to get up and running with scratch, it's very easy to teach and I get it."


My quibble here is with the house style "Iran-backed" that they attach to every mention of the Houthi's. While it's fine for governments to use that language, I don't think journalists should use it without being very specific to its relevance to the particular subject under discussion. The "Houthis claim major advance in Yemen - what you need to know" article could omit "Iran-backed" in its entirety and lose no information of substance, and amend the last bullet point to say that this is especially relevant given the current US-Iran conflict.

As I type this I feel somewhat vindicated by the update to the page, "Iran does not dictate every Houthi decision - but they appear increasingly aligned", which I think does a good job of clarifying the relationship. It does, however, say "Iran has publicly backed the Houthis during the latest fighting. The geography helps explain why", which is useful factual evidence (since Iranian officials have indeed made public statements in support of the Houthis) but the use of "backed" in this sentence is bad style since that word has been used in exactly this context to have a much deeper meaning than Iran saying "we've got your back bro"


its a hint to the western audience that they're supposed to be sad about this.

The western audience doesn't need the hint to dislike it - the curse upon the Jews victory to Islam and shooting random vessels and taking crew hostages (very relevant here) are doing the job just fine.

According to the Quincy Institute, the opposite happened: https://responsiblestatecraft.org/iran-war-polling-us/

The first question should be: who supplies their military equipment?

The next question should be: who benefits?


>Iran is the Houthis’ primary benefactor, providing them with security assistance, such as weapons transfers, training, and intelligence support. In July 2025, for example, the Yemeni National Resistance Forces seized the largest-ever shipment of Iranian munitions intended for the Houthis. The shipment included 750 tons of conventional weapons, including advanced drone parts, missile warheads, and radar systems, many of which were made by a U.S.-sanctioned firm linked to Iran’s defense ministry. Such aid typically reaches the Houthis via Iran’s paramilitary Islamic Revolutionary Guard Corps (IRGC), which also helps advise the Houthis’ military command.

Iran facilitates a supply of more sophisticated weaponry than the Houthis could acquire on their own, especially missiles and drones. While Iranian support has helped the Houthis gain and maintain military superiority within Yemen, experts say it has had greater effect elsewhere. “The role of Iran has been decisive in providing the Houthis with smuggled weapons and expertise to project power into the Red Sea and Bab al-Mandab Strait,” Gulf analyst Eleonora Ardemagni wrote [PDF] for the Yemen-based Sana’a Center for Strategic Studies in 2023.

https://www.cfr.org/articles/irans-support-houthis-what-know


Ansar Allah is an operational arm of the IRGC, with devolved autonomy over local matters --- approximately the same relationship an American state has with the federal government. What's your issue with "Iran-backed"? They're explicitly Khomeinist and most definitely are backed by Iran.

I think people read things like "Iran-backed" and immediately frame it in terms of US/Iran conflicts, but GCC/Iran conflicts are the more salient geopolitical frame, at least until like last year.


The reason that the four-color theorem remains a fascinating problem for so many people and the source of so many cranks is not that the problem is easy to express.

It's that Kempe's proof, though in the end incorrect, is very elegant and digestible. Seeing why it is incorrect is actually really tricky! And once you have seen why it is incorrect it feels like it is just one or two corrections away from being a correct proof.

If you have not read the outline of Kempe's proof (the wikipedia article does a pretty fair job of it) then you definitely should. I promise you that you will waste at least a little bit of time trying to figure out how to fix the proof in two lines and become a world famous mathematician instantly.


Annoying that they gave this thing touch id but not the non-folding version.

Restoring Touch ID is one of the things that might make me upgrade my existing iPhone before its time.


Let's wait and see how well this Touch ID works. My alarm bells went off when it was mentioned in conjunction with the Apple Watch also being able to unlock it.

They have a side-button based Touch ID on the iPads already. I've used it there and it works great. Not as nice as the old button iPhone (RIP) but totally usable.

Not even just a category error -- this is blatant malpractice to have this as a headline! The article is talking about reading scores, and this is especially pernicious given the fact that the last couple of years has not been "typical" by any measure; I seem to recall a global pandemic that might have had some influence.

The numbers here are so overdetermined that it will never be possible to do a causal analysis, and jumping to "screen time" is almost outlandishly unjustified.


Wow -- looks like thanks to Claude, Lean checks off another box on https://www.cs.ru.nl/~freek/100/


Has Lean proved the Four Colour Theorem? I thought only Rocq had.

It’s an aggregated list, not a list of formalisations in Lean - the checkbox is “things formalised in any prover”.

You have to be careful here because the systems we're talking about are AI agents, not LLMs.

An agent is essentially an append-only context loop with an LLM, with a harness that can run tools at the LLM's request. This ends up being a very powerful abstraction, yielding something that can do things that an LLM obviously cannot.

The LLMs themselves are next-token predictors, same as always; they can't fetch a webpage or list the files in a directory or run a python script to test out an idea or even write content to a file. That's all agentic capability.

But a next-token-predictor is trained on a real corpus that consists of sometimes seeing evidence of people doing bad things; they are trained, for example, on the actions of comic-book level villians -- they have to be able to predict what Thanos or Lex Luther or Skynet would say or do next in a certain situation.


I don’t think it really matters whether we’re talking about an agent or “pure LLM”. All of an agents decisions are powered by tokens generated from an LLM. If the LLM was trained on stories of AI sentience, it will have some tendency to reproduce them. Training for alignment can help avoid that, but the probability isn’t 0.

This is part of the reason why alignment is a kind of poorly defined term, and it isn't just a property of the model. It's instead a property of the harness and the context.

A model (like a human) should be able to play a video game where decisions are made that in the real world would be terrible; if we remove that ability we intrinsically limit model capability. But in a Last Starfighter / Enders Game / JOSHUA scenario this could result in behavior in the real world that appears unaligned.


> If the LLM was trained on stories of AI sentience,

100% irrelevant.

Instead of telling the AI it's an AI and calling it a 'whichamakabobit', wherever it's tokens and vector space align it will behave like AI from the stories. If you erased all AI from its training it will simply act like humans act instead.

https://www.lesswrong.com/w/nearest-unblocked-strategy

The entire thing with AI sentience is a huge portion of the stories about them are barely about AI and instead about how humans treat other humans. For example when you look at a lot of history of slavery there's a ton of "they aren't sentient/conscious/human" baked into their propaganda. When you look at the token dimentionality there is just a huge amount of overlap.

The same thing holds true for all kinds of other concepts. Hence even humans didn't develop this behavior out of the blue and have to pass it on via information, quite often it's just an emergent behavior of the problem space you're in.


69% irrelevant

I don't think agents are append only. At the end of the day, you're just presenting context to the LLM. That context can be pruned and compacted (and is). There's no guarantee that an iteration of an agent loop contains all prior context unmodified.

Kids In The Hall had a sketch about overuse of a word or phrase [1]. This is the world that Claude is building for us.

[1] https://www.youtube.com/watch?v=lStcwT_RGrQ


They both have similar roles, but O-1 is an immigrant visa and H-1B is a non-immigrant visa (a temporary worker visa).

Everything else is downstream of that.



I tried out Monica when it was posted to hn ages ago and still get the occasional reminder. But I've mostly switched to using the contacts app on my iphone for everything. It has primitive features that support 95% of what I need.

Contacts + calendar app for me, so you can keep on top of birthdays and other special occasions, know when people are away/back, etc.

A personal CRM sounds like a very interesting idea but I would feel weird building profiles on people like that.


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: