12 ms·
What 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,
by devmor 5y ago
What 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.
- darkwater 5y agoI was referring to understanding (more or less) the whole stack, down to the hardware. Getting started is probably easier today (because of the Internet) than how it was... back in the day, where you need to have some kind of physical contact and where you lived mattered a lot. But anyway, this wasn't my main point.
- welfare 5y agoI absolutely loved Turbo Pascal as a kid and hold that IDE as the golden standard still to this day because of its simplicity. I think what we need isn't visual tools, we need an extremely simple IDE where you press one button (F5) to run your program without leaving the environment and without any clutter.
- zozbot234 5y agoThe modern FreePascal stack includes a very similar text-based IDE; and FreeDOS still provides RHIDE for C programming. It would be nice to have a modern clone of these vintage IDE's with full support for language-independent tools like LSP, treesitter and the common debug protocol. From what I can gather, such a tool would be highly usable, e.g. over SSH connections that still work with a terminal-like UX, even for novice users who might be less familiar with tools like Vim.
- mwcampbell 5y agoI wonder if Turbo Pascal was any easier to get started with than Rust would be with the right GUI toolkit and IDE.
- zozbot234 5y agoThere's also some ongoing work on Rust REPL, see https://github.com/google/evcxr https://github.com/google/evcxr - though it's still a bit of a hack. Might become even easier than Turbo Pascal itself, and comparable to home computer BASICs.
- rvense 5y agoI know a guy who learned Standard ML when he was 11. I also know a bunch of smart guys who dropped out of comp sci at Uni because that's what they were taught in their first semester. Some of them became developers anyway, others decided that they would never learn to code and did other things instead (which is fine, of course, but I'm sure they could've learned Python first and moved on to SML later).
- mwcampbell 5y agoMaybe those same uni students would have been more successful with Standard ML if they had learned it at a younger age, when they could more easily learn new things. For that matter, maybe the person who learned it at age 11 could have learned it a couple years earlier.
- devmor 5y agoI think that's a case by case basis sort of thing. I'm in your camp, I had more fun learning C in elementary school. But I know many programmers that started with tools like RPGMaker and Scratch instead. I think it has much more to do with the individual child's interests and learning style.
- detritus 5y agoCuriously, not all minds are alike or equal so perhaps there's scope for using tools such as Scratch to teach coding principles to kids who might not be wired to so easily Get It as you evidently are.
- vorpalhex 5y agoI think you are misinterpreting the point. Scratch is actually harder. Scratch relies on making sense of these big blocks with little blocks and these UI patterns that don't make sense and aren't seen elsewhere. It relies on finding blocks from a palette. Something like QuickBasic or TurboPascal or Wiring (Arduino) doesn't. You write the program from top to bottom using magic words (syntax) and you press f5 and the computer follows the incantation.
- detaro 5y agoIf this is universally true as you claim, then why does practice show that Scratch works better for some kids, especially young ones?
- detritus 5y agoI think it is you who misinterpret the point. As a counter - are there things in life other people were better at compared to you? Perhaps painting or writing or cooking? That 'easier to parse syntax' of yours might actually be trickier for other minds to work with, where they instead benefit from big blocks, little blocks and coloured abstractions that might be like so much fluff to you.
- vorpalhex 5y agoI understand people have different ways of learning and comprehending. No way of learning or comprehending makes 5+ discrete tasks easier than 1. There is no mental model that changes the actual bitrate flow of comprehension. Yes, visual learners are a thing. No, visual learners do not prefer doing more work nor does it help them learn "faster". Recognizing and discriminating colors/shapes/sizes is always more work (and more abstraction! "Blue blocks are conditional statements" is learned behavior!)
- watwut 5y agoNot all kids start with mindstorms in kindergarden. The average kid does not have training you had so soon.
- mwcampbell 5y agoBut as long as there are future generations, there's always a chance to give more kids early training. We could start by giving them wide open computers where the ability to modify whatever program they're running is always at hand, like OLPC aspired to do. I regret that, so far, my nieces and nephew (ages 7 and under) have grown up with closed Fire tablets instead; that was partly my fault.
- dagw 5y agothat was partly my fault. Kids are into what kids are into. I have introduced every 'STEM' toy on the market for my kid, plus played with Scratch, Arduino, Python etc with them. Gave them a laptop running Linux when they where 8. They don't care and are completely uninterested in any of it.
- watwut 5y agoIt is very likely they learned from all of that tho. Imo, the goal is not to turn them into obsessed geeks or anything like that. The goal is to give them enough base that they will be able to catch up whenever they decide or whenever they need. And so they dont end up clueless or scared of technology. I think that scratch does that job to large extend - they learn a bit of thinking procedurally, have some fun with moving pictures and them move onto something else. Also, most programmers were not obsessed by the age they were 8. A lot of good programmers started to seriously approach it only later or after then encountered something that clicked. Or had this as one of many interests. All of that is fine.
- redshirtrob 5y agoIt's also harder to learn to program when you keep running into syntax errors. I suspect that's a big part of the allure of these visual languages. I don't know if that's good or bad--maybe a little of both. It seems like overcoming syntax errors is a pretty good first-pass filter for determining if one has the mettle for coding. On the hand, not everyone is a professional builder, but it doesn't hurt to know how to tighten a screw or swing a hammer.
- kazinator 5y agoThat has to be the allure because that is precisely the only problem they address: syntax.
- moltke 5y agoThe visual equivalent of a syntax error is not being able to find the button/block/thing you need on the screen, or using the wrong block and wondering why you can't find the right control on it, or not hooking up some required reference/wire/whatever. The advantage to syntax though is that it's all verbal which makes it far easier to communicate. Visual stuff needs multiple images and often video to fully communicate which is slow and more constraining. >Learning syntax as a filter Syntax is one of the most universal things about our psychology. The idea that some people have it and others don't seems a little absurd to me.
- redshirtrob 5y ago>>Learning syntax as a filter >Syntax is one of the most universal things about our psychology. The idea that some people have it and others don't seems a little absurd to me. Sheesh. Care to put any more words in my mouth? I said nothing about whether or not someone _could_ learn the syntax of a programming language. My comment was specifically about the difficulty of learning to program while also navigating arcane syntax rules (in the sense they're unfamiliar and rigid) that come with most programming languages. If you want to write code you'll probably power through it. If you don't, you might decide it's just not worth the trouble. This isn't a value judgement on the individual. I'm saying it's a pretty good indication if someone has the temperament for coding. If you're unwilling to understand syntax errors, how likely are you to debug your program?
- cptskippy 5y agoYou should understand that you are the exception and not the norm. Tools like Scratch don't make sense for you and your experience, AND you aren't the intended audience. Tools like Scratch aren't meant to be anyone's daily driver, they're meant to give people a taste of the power of code without having to be bogged down in all of the complexity. I was fortunate enough to participate in some day camps about a decade ago designed to get girls interested in STEM. The participants were primarily Girl Scout Brownie troops (pre-K and K) and the camp consisted of 6 different modules. The camp was a half day long and the girls would complete all 6 modules, so about 30 minutes each. One of the modules was setup by a team from Georgia Tech and in it the girls were asked to create a robot to play soccer either as a goalie or a kicker using Lego WeDo sets, and then program the software to control it in Scratch. Without knowing the background of or having the time to individually coach each child, in 30 minutes two undergrads were able to teach a dozen 6-9 year old kids rudimentary robotics and software development. Each group was able to build a functional robot.
- danShumway 5y ago> the only time stuff like scratch makes sense is kindergarden when you're still learning to read Strongly (well, moderately) disagree, but not necessarily because I think the Scratch language is well designed. My nieces both started out in Scratch, and I don't know what they liked about it, but they bounced off everything else I had been trying to show them. It might have been the community aspect (I strongly suspect this had something to do with it), it might have been that Scratch is so limited that it stops being intimidating. I feel like there is a culturally taught fear of text editors among modern kids; my nieces are around really supportive people who think they're smart and encourage them, and I still think they still feel this sense that text editors are not designed for them? Could be my imagination. I don't know what to think about it because I don't really 100% know why they (or anyone) likes Scratch. I can not stand Scratch, everything is way too hard to do, it lacks so many basic features that you have to approach every problem through the lens of some completely alien architecture where you're doing meta-programming to get basic stuff like dynamically allocated objects. This is a tool that is so limited in so many weird ways that it makes programming way harder than it should be. Everything about it from the UI to how it's structured to the performance: for me, it just makes programming into a chore. But I can't deny that there's something there that makes it more accessible than other platforms -- and watching my nieces get into it was a big lesson to me in the limitations of saying, "but they're smart and understand the concepts of iteration and variables, why can't they just write Javascript?" They could, they're smart enough to do that, but Scratch resonates with them and Javascript doesn't. I sympathize with the author's point of view (part of the reason I can't get into programming games is that everything enjoyable from them I can also get... programming). But there is something to these platforms like Scratch, Pico8, etc, that undeniably hits some people in a way that a traditional language doesn't, and whether or not Lisp/JS/C could capture kids the same way, something about them or the ecosystems around them is not measuring up for some kids. Some other kids are the opposite, probably. I got into programming with Flash/TI-83 Basic; I'm not sure where they on that spectrum between toy and tool they fall.
- mwcampbell 5y ago> I can't deny that there's something there that makes [Scratch] more accessible than other platforms Not for blind kids. Yes, maybe I bring up that kind of accessibility too often, but using the word "accessible" was just asking for it. :) And seriously, that matters in a public school environment. Fortunately, using a haphazardly designed mainstream language like JavaScript isn't the only alternative. Check out Quorum: https://quorumlanguage.com/ https://quorumlanguage.com/
- martyalain 5y agoWith advancing age I return to childhood ...
- jjoonathan 5y agoSpecialized kid features are less important, even to kids, than the "boring" adult features like reliability, documentation, examples, support, libraries, and so on. TFA's experience mirrors my own: when I started programming, people kept trying to get me to use tools that promised to make my life easier (basic, logo, apple script). Without exception, they made my life harder, because their gimmick added less value than their lack of "production grade" polish took away. C was a breath of fresh air -- not because I had a fetish for segfaults and the clockwise spiral rule, but because good APIs and documentation and examples and debuggers were available, and that was much more important. Today the situation is reversed: I primarily code in python which has sugary syntax, doesn't enforce types, has poor debug/profiling/ui tooling, and still struggles with multithreading 20 years after the death of Dennard scaling. However, it's the lingua franca of the ML/AI space, and that matters more to me than all of its many shortcomings put together. Ecosystem > language. Every time. It's true for kids, it's true for adults, and I bet it's true for space aliens, too.
- buo 5y agoFrom my experience seeing others use Scratch, part of its value is the ease with which it can be used to tell interactive, visual stories. Programming in Scratch is a means to tell a story, not an end in itself. If you're using Scratch to teach recursion, then you're using it wrong. Another high point of Scratch is that it includes message passing and concurrency. This allows for telling complicated stories, and it also introduces some very hard to track bugs -- so, kids learn some debugging as well.
- zozbot234 5y agoPlenty of kid-oriented tools and instructional content share that "telling stories" element; it's a compelling way of picking up on humans' raw social intuition and using it to work on complicated problems. Perhaps some variation on Scratch could make for an intuitive and kid-friendly introduction to subjects that are often considered obscure, such as distributed systems and the formalisms used to reason on them like the Temporal Logic of Actions. Recursion would be comparatively easy; you could even teach linear logic by endowing your "characters" with an inventory of objects that they could pass on to each other and transform by acting on them, a common trope in adventure games.
- kristov 5y agoI think as programmers we forget that syntax is a pain for newcomers. Scratch tackles that problem at least.
- ufmace 5y agoThere is that. I've seen it a lot when trying to tutor beginner programmers. It takes a lot of time for people to get used to every little symbol and space being critically important. It takes even longer to get people used to maintaining coding standards so that what they write is easy to understand. I start to view Python's significant whitespace as a feature here - it's a net plus to tell beginners that your spacing must be correct right off the bat, or your program won't work right.
- Aardwolf 5y agoI learned programming as a kid from QBasic, which was included in DOS, and this tool was not kid specific (even though it came with some games and is a simple language, it was straight to the point and generally useful to anyone) I would have found something dumbed down and kid specific uninteresting, the thing about QBasic that kept me interested was: included example games (gorillas and nibbles) whose code you could see and modify (I've had much laughs by changing radiuses of circles of how the gorillas were drawn), the ability to draw graphics (which is an interesting form of feedback to your code), the excellent documentation and ease of use (integrated good help text of every function and keyword), and the fact that you could use it to make anything including useful software which gave a good reason to want to learn it I'd have seen something like logo with a turtle that moves around as a game instead of a tool, that would have kept me interested for maybe a few days max
- emacsen 5y ago> I would have found something dumbed down and kid specific uninteresting No one likes the idea of something "dumbed down", but Scratch and block languages generally are not dumbed down, they're just visually different. It's all the same stuff, but a visual instead of text representation. > QBasic that kept me interested was: included example games (gorillas and nibbles) Yes, this is what many block based languages provide, examples, and also a thriving online community.
- laurieg 5y agoI think a lot of comments are getting caught up on the title and the introduction. There are some good comments sharing other experiences with programming education so I think that's worthwhile. I read the author as saying "I like playing around with things. I didn't like playing around with 'kiddy' things when I was younger, so I made a simple playful programming language that's not 'kiddy'". I read the page and thought it was a fun language. I'm not sure I could do a good job of using it to teach a class of young people, but I'm sure there are some out there who would get a kick out of it.
- boondaburrah 5y agoAs a child, I enjoyed things meant for adults (with regard to programming). However, this was a different era. In the 90s, computers needed programs to be useful, and regular computer users needed to be able to make them (not so much as the 80s but it was still around). I saw my elders creating software in the HyperCards and Visual Basics of the day, and thought "Hey, I want to do that" so I did. They were both tools to get Real Work Done™ AND be approachable to non-programmers. Thus, I didn't feel limited by the stuff that's for children, but they were still friendly enough to be approachable from zero knowledge + maybe a book from the library. Children's tools tend to only have the approachable part, which is good, but as a kid /knowing/ that anything a "real" program could do was possible with the tool I had if I just tried hard enough was a huge motivating factor in eventually bootstrapping my learning.