15 ms·
Kids don't need tools for kids
- martyalain 5y agoThis is not a statement, but a question. And yes, I love SCRATCH and I admire its creators. I'm just saying that there can be another way, just as accessible, with minimalist tools, including the one I use, but not only. I am interested in your opinion.
- mavhc 5y agoI find the real advantage for 5-8 year olds is it's much easier to avoid typing/spelling mistakes with a drag and drop language. And if the output is also graphical, much easier to write simple games
- eddieroger 5y agoI agree with this, and was challenged by the presentation of "cutesy tools are dumb, write words." Some people are visual learners, some prefer reading/writing, others have other preferences. My buddy's kid is an 8 year old native programmer who has really taken to the blocky style of coding, and it's acting as a natural gateway to more traditional styles. On the contrary, my cousin learned some basic Python at 12 without any flashy tools, or even a good IDE. Lots of ways to learn in the world.
- xyzzy123 5y agoI think it depends on age, motivation and a few other factors. Scratch being embedded in an environment with graphics and sound provides motivation, reward and problems to solve that are relatable and interesting to many children e.g. "how do I get the monkey to chase the rabbit". The block "affordances" mean kids can get to the part where they make things without needing to learn any formal syntax. A lot of young children who are not ready to reason about syntax can nonetheless handle the ideas of events, conditionals etc. Many young children have difficulty with the motor control required to use a mouse (mostly mitigated on tablets / touch screens). However, many adults also underestimate is how much "implicit" knowledge is involved in using a text editor. I think anyone who tries to teach something "new" to kids will understand the experience of having it not go as planned. Scratch looks weird partly because it's the result of people doing actual "user testing" with kids.
- schwartzworld 5y agoYour programming language sounds great, and very accessible. But I don't feel that you actually back up your own point in the article. What makes your tool better for children in the age range that scratch is targeting? Have you actually tested it in any way with children in that age range? I know kids who learned scratch and it's definitely "real" programming. I think you're missing the major point of scratch. The main obstacle in learning to program for an 8-year-old is not going to be learning the concepts, which are no harder for them than anyone else I think, but the typing is a problem. How many times have any of us (especially early in our programming development) gotten hung up on misspelled variable names? There's no inherent advantage to typing every keyword vs dragging blocks. Additionally, the scratch ecosystem is designed around creating games and animations. As it turns out, young kids like games and animations, and it's a very rewarding experience to make something that you actually want to share with your friends and family. Even if your language is a better choice for a child that age, which I kind of doubt it is, it doesn't matter if the kids aren't interested in what they're making. Again, I think your language looks great. Just not sure it's good for the same target market as scratch.
- martyalain 5y agoI agree with you, it's a little "provocative", but you could have a look to this page: http://lambdaway.free.fr/lambdaspeech/?view=teaching http://lambdaway.free.fr/lambdaspeech/?view=teaching
- mwcampbell 5y ago> The main obstacle in learning to program for an 8-year-old is not going to be learning the concepts, which are no harder for them than anyone else I think, but the typing is a problem. I was already touch-typing fairly proficiently at age 8, in the 80s, and I'm visually impaired as well. I started learning to program in Applesoft BASIC shortly after I turned 8, and the typing was never a barrier. Edit: The teacher of the visually impaired who taught me to touch-type when I was 7 might have been unusually forward-thinking, but still, my experience shows what's possible. I hope the next generation of kids all learn to touch-type just as early.
- 5y ago
- II2II 5y agoI don't really look at Scratch as a visual programming language. For the most part, it represents programs as text and using syntax similar to common programming languages. Yes, there are other visual cues and yes, it is drag and drop. Those are better thought of as learning aides and an alternative input method. Where Scratch shines is in the removal of frustrations. Rather than dealing with broken programs due to a misspelled variable, misplaced parenthesis, or syntax errors the learner has the opportunity to focus upon how the program works. That is far more valuable in the early stages.
- gus_massa 5y agoThis code is indented incorrectly: {{lambda {:a :b} bla bla bla :b :a bla bla bla} hello world} It should be: {{lambda {:a :b} bla bla bla :b :a bla bla bla} hello world}
- martyalain 5y agoI agree with you, the lambda is applied to the two words which should be aligned with the second curly brace. Here my choice was to mimick the find & replace request of which it was a rewrite. It's a matter of choice. I hope you have gone a little further ...
- gus_massa 5y agoI read the full article, but I use Racket most of the time so to understand the code I secretly ignore the parenthesis and use the indentation instead. I like Scratch for kids for very small programs, and perhaps for programs with some easy to encapsulate subparts, but my feeling is that once you need to use recursion the friendly part of Scratch is a problem. My daughter used it for a month or two, but she preferred to go back to a language with text representation that makes cut&paste easy. About the rest of the article: Does the compiler use some trick to make arithmetic operations faster under the hood or you are using just the unary/binary representation in lists?
- martyalain 5y agoThank you for reading. In this page everything is evaluated using the minimal toolkit, lambadas & defs. And as usual with numbers as lists evaaluations are slow and limited to small numbers. You could have a look to this page http://lambdaway.free.fr/lambdawalks/?view=oops6 http://lambdaway.free.fr/lambdawalks/?view=oops6 to see how (very) big numbers can computed at the lambda-calculus level, and to http://lambdaway.free.fr/lambdawalks/?view=coding http://lambdaway.free.fr/lambdawalks/?view=coding for a general introduction to this project.
- 5y ago
- masters3d 5y agoI hope to teach my kids programming so I started with the older on learning algebra. I have been using the tablet app called dragonbox algebra (which is amazing!). The issue I am facing now is that my kid knows visually/mechanically what to do in the app but they don’t understand why they have to do some things. We have been moving to the whiteboard so they have to translate swipes and taps to regular algebra notation. They literary think in terms of the app. What has helped a lot is to do a problem on the app then do the same problem on the board. Their eyes light up when they see the connection. I think I will have the same translation dilema if I start with scratch. At some point we will need to get writing textual based code but I am not confident that I can get my kids exited about programming without graphical tools like scratch/dragonbox. In classroom setting most teachers could not teach the textual form of programming but something like scratch allows kids to explore and build the vocabulary to be able to translate to a textual representation.
- martyalain 5y agoThank you. You could have a look to this page http://lambdaway.free.fr/lambdaspeech/?view=teaching http://lambdaway.free.fr/lambdaspeech/?view=teaching
- masters3d 5y agoAh cool. I will check it out. Thanks!
- Zachsa999 5y agoCheck out Sonic pi, an programming language for musicians. It includes all the complex features of software, a great tool for teachers Imo.
- troupe 5y agoMy experience with using Dragon Box with my children was that it gave them a way of thinking about Algebra patterns even without knowing all the details of what they are doing. When they actually studied Algebra, they would often look at the explanation of a new concept. Struggle with it for a bit and then a lightbulb would go off and they would say, "Oh I see. This is like what we ere doing in Dragon Box."
- ermir 5y agoAs a child I got my hands on the StarCraft map editor, a reasonably complex tool that allowed me to create all sorts of scenarios. Similarly, an older cousin of mine had access to Worldcraft (now known as Valve Hammer) and Flash, all of these tools are complete in the sense that the end product is not a kid's throwaway project but a complete experience, equal to official offerings. Unfortunately such tools don't really exist nowadays, maybe Roblox, but nothing outside of that.
- danuker 5y agoThere are plenty of "game maker" software. Even open source ones. Check out Godot, which has tutorials for creating a game: https://docs.godotengine.org/en/stable/getting_started/first_2d_game/index.html https://docs.godotengine.org/en/stable/getting_started/first... There is also the Blender Game Engine, which got split from Blender, but has a visual logic editor: https://upbge.org/#/documentation/docs/latest/manual/manual/tutorials/introducing_logic_bricks/move_object.html https://upbge.org/#/documentation/docs/latest/manual/manual/...
- watwut 5y agoMost of that game maker software is not all that great for a small kid that is just learning that something like iteration exists.
- ermir 5y agoMost of these tools are too open-ended and pull the users in the minute details. I've been developing software for over 10 years now and I can handle it without any issue, but there are not many kids who could handle the extreme frustration that software developments sometimes causes. Kids tools should be far more limited, it's useful both for creativity and to stop most crazy ideas, since they would be impossible. Finally, it's a giant pain to get anyone to actually play what you make. How is a kid going to handle compilation, executable distribution, and much more. If you send an exe via email, the spam filters will catch it, if you find another way, the operating system will yell at you for starting an unsigned executable. If you want to make a web game, you'll have to figure out hosting, design, JavaScript, and all the rest. Sure, you could teach a kid this, but it would take months and any one impediment can stop the whole process cold. The fact that I was able to figure out most of this stuff on my own, much of it without internet, goes to show that the tools I used had the perfect balance of complexity and limitations for my age. Of course nowadays I've moved way past them, but I can clearly see there's a gap in the mid-level tools that sit somewhere between a full programming language and Scratch which is too simplistic. Interestingly enough, Arduino fills a bit of this niche. It's relatively easy but quite deep, perfect for a gifted child. The limitations of the electronic components also force you to push the limits of your capabilities in a way that a blank canvas just overwhelms you with possibilities.
- nicoburns 5y agoAs a kid I had a great time with Game Maker (now Game Maker Studio https://www.yoyogames.com/en/showcase https://www.yoyogames.com/en/showcase). It's great in that you can start with drag-and-drop game logic like "When right arrow key is pressed, move characters right" and simple 2d graphics, and then move on to a full programming language "GML" which is an ECMAScript (JavaScript) variant and full 3d if you want it. And it can compile for desktop / mobile and web.
- clownpenis_fart 5y ago
- Steltek 5y agoWhile I agree that Scratch quickly runs out of gas as kids get older, I don't think a Lisp shell is the next best step. The number of kids who are going to find recursion and math intrinsically fascinating is small. It seemed kind of obvious to me that something that runs in the browser is the best followup. Instant gratification, an absurdly powerful platform, and they can share it with their friends like they share anything else. If this language worked like ClojureScript, it'd have broader appeal.
- rapind 5y agoI think Racket is a good option, and what I'm planning to introduce my kids to fairly soon. Specifically DrRacket.
- troupe 5y agoAgreed. You have to be able to type, but Dr. Racket makes it easy to create, import, and manipulate images without dumbing down the coding process. This seems to be the best of giving good fun visual feedback while still letting kids experience the need to write syntactically correct code.
- deleted 5y ago[deleted]
- martyalain 5y agoThank you. You could have a look to this page http://lambdaway.free.fr/lambdawalks/?view=coding http://lambdaway.free.fr/lambdawalks/?view=coding and the two following pages.
- fullstop 5y agoSnap [1] goes a bit beyond Scratch. 1. https://snap.berkeley.edu/ https://snap.berkeley.edu/
- zozbot234 5y agoLOGO was essentially a Lisp shell with fewer parens, and plenty of kids used it for all sorts of things including math. The actual historical LOGO had a few pitfalls such as using dynamic scope for all variables, but nothing that could not be addressed.
- devmor 5y agoWhat exactly is the point the author is trying to make? From the title, I expected a coherent argument but what I've read therein sounds more like "As an adult, I do not enjoy this thing meant for children." with little substance to why that matters to children.
- moltke 5y agoI learned to program when I was pretty young, the only time stuff like scratch makes sense is kindergarden when you're still learning to read (for me it was the mindstorms stuff.) I was using Turbo Pascal when I was 11. Many children are way more interested in "adult" conversations and tools than educators give them credit for.
- darkwater 5y ago> I learned to program when I was pretty young, the only time stuff like scratch makes sense is kindergarden when you're still learning to read (for me it was the mindstorms stuff.) > I was using Turbo Pascal when I was 11. Ignoring the fact that the whole stack was way much easier back in the day (I was a Turbo Pascal user as well at more or less your age), to me it's also a pretty clear case of survivorship bias. There will be kids that will find their way into no matter what, but we should also give tools/resources to help other kids without the same level of interest+capabilities to at least scratch the surface.
- Macha 5y agoWhen is "the day"? I was using Java and PHP as a 12 year old in the 00s. Honestly with the likes of WSL and (hated as they are), curl | sh installers or exes that don't require pissing about with the environment variables window, it's arguably easier to get started with a real programming language now than the 00s.
- walnutclosefarm 5y agoWhen is the day, indeed? I learned programming using Kemeny and Kurtz BASIC in the late 1960s. I have long since lost count of the number of languages I've learned well enough to write production code in, but it's somewhere North of 2 dozen. All built on the basic mental equipment I developed with that primitive BASIC - a sense for the relationship and interaction of three basic elements: symbolic code expressing structure and control; algorithm; and data, in and out. This is what a children's language should aim for - making the onramp to that mental landscape as accessible and responsive as possible. You don't need lambda calculus for that, any more than you need group theory or complex analysis to bring the joy and power of arithmetic and math to young minds. The superstructure will follow, if you get the foundation right.
- skadamat 5y agoThe whole movement around "teaching kids to code" has been interesting to watch. Multiple goals seem to be conflated together (which isn't uncommon in education): - Helping kids think in new ways - Building skills for "the future" / "jobs" - Encouraging kids to create their own things, instead of just consuming - Probably some others I'm not thinking about! (e.g. improving odds of getting into an "elite" college) Each tool, whether it's C or Scratch, should be evaluated against the design goals as well as the embedded context / environment that children are introduced to programming in. This is a rich topic undoubtedly. My 2 favorite starting resources are: - Learnable Programming by Bret Victor: http://worrydream.com/LearnableProgramming/ http://worrydream.com/LearnableProgramming/ - Mindstorms by Seymour Papert: https://www.amazon.com/Mindstorms-Children-Computers-Powerful-Ideas/dp/0465046746 https://www.amazon.com/Mindstorms-Children-Computers-Powerfu...
- eterpstra 5y agoThis conflation is unfortunate. The push towards teaching critical thinking and creative problem solving is the right direction, IMO, and introducing some basic programming tools can help with that. Unfortunately there are a lot of parents that don't see the value and just want their kids to "get good at computers" so they can find a good job in "the future." They badger the schools to crank up the "STEM stuff" so kiddo can grow up and nab one of those obscene starting salaries and be the next [insert infamous tech CEO here].
- Tams80 5y agoIt's (unsurprisingly) met all the same barriers that other subjects have met in education. The notion that there are visual learners etc. now doesn't seem to true (and possibly even a bit of a scam). But different approaches do appeal to different people and like any subject, teachers and students need to work together to find the ones that fit.
- goodpoint 5y agoAnd: - Encouraging parents to buy very overpriced toys
- Biganon 5y ago
- duxup 5y agoThe title says "Kids don't need tools for kids" but is this about kids or just the author? Different people learn differently, if a tool or method doesn't work for someone that's on them to find another tool or method. Scratch for example is great for visual learners who haven't mastered what it is there to teach. It will work for some, not for others. I’m always a bit wary of folks who just “get it” telling everyone about how they should or should not learn something. I remember a teacher who in my first programming class read from a book about C, and told us to now go complete a task. He wanted everyone to understand ALL the details for every line of code as we wrote it. Took me 20 years before I seriously tried coding again.
- troupe 5y agoThe How to Design Programs with Racket seems to be a very good balance of letting kids work with picture and things that are visually rewarding while not insulating them from writing code. Our family avoided Scratch for many of the same reasons the author gave. Instead we focused on typing and math and introduced programming when typing out all of your code wasn't going to be frustrated by their typing speed. How to Code: Simple Data with EdX is a very nice introduction to that approach of teaching programming.
- erwincoumans 5y agoOur kids love Roblox and Minecraft. Its educational edition has Python 101, programming robots. Those are tools suitable for kids, but also fun for some grownups.
- bla3 5y agoWhen I was a kid, I wanted to write games. I wanted to use the same techniques that "real" games used, not some dumbed down "for kids" thing. I disliked everything that stressed ease-of-use and instant gratification and I liked everything that looked like it was written for professional use. In hindsight, this probably wasn't the smartest decision. But it did lead to me learning C++, DirectX, OpenGL, 3d math, and so on. And I did end up in a place where I'm more or less paid to do what I did for fun back then. Also, the learning process taught me frustration tolerance, which is a very useful skill to have in the industry, and which many others seem to lack.
- sitkack 5y ago> taught me frustration tolerance You made it through. Many kids don't. I too wanted the "real" stuff, but so much so I didn't embrace the medium I had before me. One could make Battle Zone in Logo or Flappy Bird in QBasic.
- sitkack 5y agoFrustration Tolerance should be its own area of study. It is the demarcation line between quitting and enjoyment.
- TillE 5y agoI basically did the same things for the same reasons as a kid. I'm very glad to have learned C++, but I bounced off DirectX pretty hard. The API wasn't great (this was DirectX 7), and the tools available for free were mostly nonexistent. So I never made much progress there. I'm really glad that kids today can build games with real-world professional tools that are much more friendly, like Unity or Godot.
- mwcampbell 5y agoI learned C without too much difficulty as a teenager, and also began to learn C++ at that point (I doubt anyone ever finishes learning C++), but I abandoned Win32 and MFC in disgust when I briefly tried to learn them at age 18 in the late 90s. Maybe I would have gotten further if I had started younger, or if I hadn't been spoiled by Java first. As it happened, I didn't really master Windows programming until my 20s when I had to do so for a paid job.
- CJefferson 5y agoWhat's great for kids, in my experience, is with scratch they can "see things happening", making simple animations and games, and exploring. Also, scratch isn't (to me) missing anything -- it's a full programming language, the plugable blocks just ensure you build "by AST" instead of by text, which honestly is a feature I've heard language designers suggest we should move to (it would once and for all get rid of formatting questions if everyone could do AST -> On-screen visualisation themselves). With this language they can... implement functions like reverse, append and length by themselves? I don't mind people exploring options, but please don't insult Scratch, then make up something for kids which (as far as I can tell) has never been shown to a kid.
- Retr0id 5y agoTo nitpick, the block code screenshot at the top of the post is not actually Scratch, it's Snap![1] - which is essentially a superset of Scratch[2] Scratch itself has no concept of "custom reporters" - i.e. functions that return a value. If you want a function to return something, the closest approximation is to assign the result to a global variable. But you can't do recursion like that, so you'd need to use a "List" variable to emulate a stack. If you wanted to write a recursive factorial function in "pure" Scratch, it would be significantly more convoluted than the one shown. Scratch cannot elegantly express the concept of recursion, so if you want to teach it, you probably shouldn't be using Scratch to do so. I suppose this means I agree with the author in general, but I do think that Scratch is great for teaching the concepts that it can express well - i.e. very basic imperative programming, with sprite-based graphics. [1] https://snap.berkeley.edu/ https://snap.berkeley.edu/ [2] https://cseducators.stackexchange.com/questions/112/what-can-snap-do-that-scratch-cannot https://cseducators.stackexchange.com/questions/112/what-can...
- ethbr0 5y agoThat's a great illustration of where "kids tools" tend to break down: on the top end. They over-focus on the onboarding and initial experience, but then forget to provide an escape hatch into more powerful concepts and methods (that all already exist!). IMHO, we'd do kids a better service by just wrapping adult tools with "first steps" guidance, and then allowing them to click through to the full mode + additional docs when they're ready.
- sitkack 5y agoThat escape hatch is just the rest of computing. Onboarding is always the hard part. How many people get started just fine with the language and then can't figure out how to compile and link their program? I think you underestimate how needlessly complex and also boring many parts of computing are.
- ethbr0 5y agoIt is. But there's a difference between "more of a tool you're familiar with" and "an entirely new tool," especially for kids who don't have a boss breathing down their neck, and have endless attention distractions a click away.
- AmosLightnin 5y ago
- kahrl 5y agoYou went so woke you became ageist, racist, and sexist! You literally could have stated: "There's more than one way to learn something. The older generation who grew up learning machine language think only way to get where they are is to walk in their shoes (uphill both ways)." But no. You brought up age, race, and sex out of nowhere.
- Bancakes 5y agoIt's pretty offensive to make up this ageist, racist, sexist projection out of thin air. Who hurt you, who was this older white male programmer?
- mahathu 5y agoI totally agree with the sentiment of this comment, but what does skin color have to do with it?
- kahrl 5y agoSome people need to inject race, gender, sex, age... into literally everything. It is the only lens with which they can see the world.
- martyalain 5y agoI am an old man coming back to childhood and I am an amateur, not a smart coder. I just want to understand in deep and I discovered that lambda-calculus helped me better than Scratch. I just try to share this experience. Maybe I'm not alone in this case. You could have a look at this page http://lambdaway.free.fr/lambdaspeech/?view=teaching http://lambdaway.free.fr/lambdaspeech/?view=teaching, it was a good experience with a few children (and students in architecture) who where proud to build their own web page and play with their colorized names. In don't say "It's the way!" I just say there are several ways to learn code.
- wizee 5y ago
- scotty79 5y agoI think the most inportant thing kids need is things to be discoverable. So good, concise, contextual documentation with plenty of examples for anything kid touches. So like Delphi F1 or PHP online docs. Scratch doesn't have anything like that I think. Many tools for kids don't give the kid ability to learn without direct adult instruction or watching long tutorial on something that's not the thing the kid wants to do at the moment.
- RajT88 5y agoNot just discoverable. Have enough modules available they can start making stuff they want to actually use. Help them find opportunities to solve problems that matter to them using code. Your average kid would much prefer to write a Twitter bot than a car parts inventory system or calendar app. (The latter being a typical CS assignment)
- Retr0id 5y agoScratch has a very comprehensive wiki[1], which contains detailed explanations of even the most basic of concepts, along with example code. Now it also has built-in tutorials. However, the real strength of Scratch is that it doesn't need any documentation or instruction. A sufficiently curious mind can learn it simply by clicking around and trying things out. The blocks only click together in valid combinations (which you can infer from the shape of the blocks), so it's literally impossible to create a syntax error. [1] https://en.scratch-wiki.info/ https://en.scratch-wiki.info/
- scotty79 5y agoRight. But when I'm in Scratch the wiki is nowhere to be found. Everything needs documentation for a kid. Even a fork or a spoon. Without ample examples of what you can do with the things you are just touching you make way slower progress and require much more motivation.
- kyawzazaw 5y agoJust curious who would be reading that documentation. The kid?
- npteljes 5y agoWhy not have all kinds of tools? I began my career with a "for kids" software creator tool called Klik and Play[0] and I loved it. I also liked typing into the DOS console, creating simple games with batch files and the CHOICE command, but having a nice GUI to create graphical games was really fun and as it turned out, educational. I have no experience with Scratch, but looking at how widespread it is, and how people create projects to help learners transition from Scratch to other languages, I think it's a fine starting point IF someone is interested in it. [0] https://duckduckgo.com/?t=ffcm&q=Klik+And+Play&iax=images&ia=images https://duckduckgo.com/?t=ffcm&q=Klik+And+Play&iax=images&ia...
- paulryanrogers 5y agoSame here. Batch programming was life if you wanted to play some games by Origin Systems. It was a chore. Klik n Play was delightful. Afterward I was able to get back to text coding and make a career of it.
- frashpikass 5y agoThinking back at my childhood, I think I was lucky enough to have a father who could program Basic on a ZX Spectrum (which stated all the important keywords on its rubbery keycaps!), but not lucky enough to have a parent who knew how to answer questions such as "How do you make a program on a computer from the '90s?". Maybe, these were some things I lacked the most in my early training: - Documentation: in the second half of the '90s the Web was too young to provide docs or even answers to my doubts. The open source community was confined to universities and there was little chance for my parents to know how to access a BBS. - Tools that give a child agency without the need to read documentation: most things I could do as a child were because I either had clear examples of how to do them, or because the tools themselves used visual UX paradigms that any curious human could grow their skills by experimenting. Kids can devour technical manuals, but keep in mind that not all kids (nor their parents) speak English, and this can seriously limit their agency. - Free (or even just accessible) professional tools to move on once I had mastered their watered-down for-kids cousins. Dad knew about interpreted programming languages, but had he known the word "compiler" (or "synthesizer" for that matter), I could have mastered them much earlier. - More guidance. Curious kids can do anything, but if there's someone leading the way or offering a benchmark, they can really bloom early. A young cousin of mine, displaying surprising sauvant traits, is lucky enough to have artsy and technical parents, and I can see how far he's going!! Speaking of the proposed language, I'm not sure kids would particularly like LISP like languages. But when I was a kid I wouldn't have cared, had I known someone knowledgeable.
- shadowgovt 5y agoPersonally, I think tools should go the other way. The beauty of scratch is that it makes most syntax errors impossible to construct in the tool and provides immediate feedback on how far away the program is from being an acceptable program. Only recently have the tools I use regularly as a professional started to adopt that approach. How much time has our industry lost in change / compile / error / change cycles? How much in typo-chasing because most languages are represented as strings, not things? I think Scratch points the way to what professional tooling could be. It lacks polish, there's a lot of accelerators that would need to be added before it could match the development speed of typing lines and lines of text... But there's meat on those bones for an intrepid researcher to pursue.
- disembiggen 5y agoI disagree fairly fundamentally with this, I've been a club teacher in primary schools, and scratch is such a good teaching tool for kids that to this day I marvel at it. I want to evaluate lamdatalk against scratch on the principals on which scratch was built, low floor, high ceiling, wide walls: Low Floor: I can show a child the program "when space key pressed, Move 10 steps" they'll need to be able to read, and they'll need to know what the "space key" is (they've been weaned on touch screens remember), and then they'll understand it. further, they can then hit the space key and immediately see state change. They can use scratch on any computer they have access to at home from a browser. Lambdatalk will also require them to know how to read, and I'll need to explain what "lambda" means to a young child, and probably how to pronounce it. I'll need to say what the arguments to a function are, and what "argument" means, and what way round they should go. I'll need to explain to them why they should care, a moving character is immediately interesting to a child, this lambda has limited use to them. if they want to type it out I'll need to show them how to type a curly bracket. They'll need to download and run a program to use lambdatalk, on a PC they probably don't own. (or use this inscrutable sandbox I guess? http://lambdaway.free.fr/lambdaspeech/?view=sandbox http://lambdaway.free.fr/lambdaspeech/?view=sandbox) High ceiling: There's a lot you can do in scratch, people regularly post rudimentary raytracers or highly polished games on the scratch website. That said it has some limitations. It doesn't interact with the web at large, it's slow & hard to do work in 3d, and impossible to match the likes of a real game engine, kids tend to want to graduate upwards after a while. I was expecting to find http libraries or some impressive demos for high end lambdatalk, but I can't see them, it may be more performant, but I can't actually see the same level of demoscene work as exists in scratch. I wasn't expecting to but I've got to give this one too, to scratch Wide walls: Kids make games, animations, toys, mocked-up os'es, sounds, and conversation bots in scratch, there's a lot to do with it Lambdatalk just, doesn't have so much? if a kid says they want to make something in scratch they often can, unless it's 3d or requires wider internet access, lamdbatalk doesn't seem to provide so much. In conclusion, don't rag on scratch for clicks, it's an educators miracle, and when kids want to "graduate" up to more, they're looking for more possibilities, not harder challenges, like html, or python libraries that let them interact with the web, or 3d engines that let them make the kinds of games they like to play. As an adult I think lambdatalk seems like a cool toy, and I'll put some time into playing with it. kids want to make the kinds of things they like to use.
- TheCycoONE 5y agoPerhaps the author would be better off saying some kids don't need tools for kids. My son is 8, he has ADHD, he is also very into level design (Supertux) and making platformers in Scratch. Instant feedback and reward is important for him. There are or were adult tools that probably would have fit - Macromedia Flash comes to mind, but a Lisp without graphics would not fly. Thinking back to my own early programming on the Commodore 64, the ability to make something flash or move or otherwise resemble a video game was very important to me as well. Some kids are interested in and motivated by math, but that hasn't been my lived experience.
- pgcj_poster 5y agoI've taught kids both Scratch and JavaScript. I think Scratch is much better for pre-teens, for the following reasons: - Scratch has an integrated 2d game engine, sprite editor, and asset library. This makes it easy for kids to make something of interest to them right away, including those who don't pick up coding right away. I've had kids who struggled with complex coding but were still able to enjoy Scratch by making lightly-interactive stories / art. - Most children can drag blocks faster than they can type. - Most kids these days aren't familiar with a lot of desktop computing concepts we take for granted. For instance, they mostly don't know what files are, or how to copy and paste text. It would be nice if I could teach them all of that before any coding -- but that's generally not what they feel they're there for. - Scratch shows the current value of variables by default. This helps kids to grasp the concept of a variable and to understand why their program is behaving the way it is. - Scratch is a website, which makes it easy for kids to show others what they did. This makes it more gratifying for kids and parents. IIRC, the Scratch team also found that this aspect is especially appealing to girls.
- tombert 5y agoFor me, the "sweet spot" between "tools for kids" and "real" tools is Pico-8. It uses a "real" language (Lua), but the graphics interface is much easier to grok than mucking about with shaders and whatnot. To me, it doesn't feel like a toy, it just feels like a simpler tool. It's the tool that I use whenever I try teaching kids to program.
- deleted 5y ago[deleted]
- wwilim 5y agoThe author forgets (among other things) that he has the attention span of an above-average adult.
- eternityforest 5y agoI would assume that kids need to learn similar stuff to what they will use in real life. Scratch looks close enough to Python and JS but made visual that I'm not sure I see the issue. Is there not already a math class in school where people go to learn the low level information? CS and programming are separate. If we don't work in simple languages with clear axioms, then why not teach what people actually use? Lambda calculus is probably a fantastic tool to really understand the deep fundamentals and theory though. But I'm not sure starting at a low level like that is the best.
- empressplay 5y agoThe author seems to have completely forgotten about Logo? Or BASIC for that matter? Some really complex programs have been written in either by adults as well as children...
- TT-392 5y agoSo... unrelated to the actual contents of the article, but, that small column of justified text on a phone is a horrible reading experience on a phone (I couldn't keep reading because of it). I have dyslexia, and I really wish it'd be more well known how hard text justification can make stuff to read.
- martyalain 5y agoI find it so sad that 99% of the comments are an entre soi between SCRATCH worshippers - of which I am one - and have no relation to the substance of my question. But what else could I expect, everyone stays in their own domain, me first, I guess. I like the presentation of the lambda-calculus made here https://kids.kiddle.co/Lambda_calculus https://kids.kiddle.co/Lambda_calculus, which confirms me in the idea that the kids could find profit there, far from the certainties of the adults.