4 ms·
Asked about Apple’s new app Swift Playgrounds, aimed at teaching entry level programming in the language Swift, he thinks that there may have been better langua
by rezashirazian 10y ago
Asked about Apple’s new app Swift Playgrounds, aimed at teaching entry level programming in the language Swift, he thinks that there may have been better languages to start with.
I haven't had a chance to play with Swift Playground on iPad but Swift as a language itself is a lot fun. I wonder what languages he would favor over Swift for kids who might be interested in programming.
- suyash 10y agoI agree with Woz, Swift is too advanced and complicated for kids. They are better starting out with MIT Scratch or something like that.
- rezashirazian 10y agoI disagree with the notion that Swift is too advanced or complicated. I think people who have prior programming experience might find Swift complicated due to some of its unique approaches (like handling null objects with optionals) or lack of expected features (C style for loops or ++ -- operators) But if you're seeing it all for the first time, I don't think the concepts are overly complicated or confusing. The only current downside to Swift is the fact that it keeps getting updated, sometimes with drastic changes. Beside that it's an alright language to start with.
- pharke 10y agoSorry to be pedantic but he didn't say Swift was too advanced, he simply said: > he thinks that there may have been better languages to start with. Which could be taken several ways.
- simonh 10y agoI agree, but when they want to try something a little more advanced Swift Playgrounds is a great upgrade. I don't think Scratch/SP is an either/or.
- throwanem 10y agoKids are smarter than you think.
- ericssmith 10y agoAbsolutely! Every time programming education comes up, someone brings up Scratch. It's advocacy is -- possibly detrimentally -- overused. It may be appropriate in some cases, but it is not a universal tool for introducing people to programming. There is certainly something inauthentic about using blocks. They may not be appropriate for people with motor-control issues. And the reliance on imperative constructs (assignment-based statements) as being essential for understanding computation is arguably wrong and possibly hurtful. I only have a sample of 1 (my six-year-old son, turning seven today), but he is perfectly capable of typing, understanding function definition and composition, data structures, and working with reactive I/O. He's not some super-genius. He's a regular kid who likes to swim, ride his bike, play Pokemon, and watch Netflix. But he can also make things by "real" programming. I'm sure other kids could as well.
- throwanem 10y agoCertainly they can. I did at that age, in Applesoft BASIC - not at the level your son does, of course, because BASIC is, well, basic, but what capabilities it did have, I understood and used. If I'd been confronted instead with Scratch, I rather doubt I'd have stuck with it. The thing about Scratch is that it's designed to be easy for kids, and that's not a good thing but only seems to be one. In presenting Scratch to a child one makes an implicit statement along the lines of "Here is what you can do. This is your level." There's something intensely limiting about that. It's like being given toy plastic versions of Dad's power tools and told you can use them to actually make things. Kids are ignorant, but that's not the same as dumb. No one is going to fall for this, and it will earn you the enduring contempt of those on whom you try it. Whereas when you sit a kid down in front of something like Applesoft BASIC or I guess a Ruby or Python interpreter, a Lisp or Node REPL, whatever - the implicit statement is instead along the lines of "Here is a thing that does things. Find your own level." And there's something intensely liberating about that. It's a vote of confidence, and that counts for a lot to a kid just like it counts for a lot to anyone - perhaps quite a bit more. And by all means feel free to tell your son that some random goober on Hacker News wished him a happy birthday!
- allsystemsgo 10y agoEh, not sure I agree there. It's not like they're throwing kids head first into generics.
- 67726e 10y agoI really dislike the whole "starts kids with toy language" thing. My first language was 6502 assembly, and I genuinely think it's a good place to start. I'm not saying that to try and elevate myself, none of the "I walked uphill both ways to school in the snow" type shit. An assembly that is fairly simple teaches so many fundamentals and at the same time is about is easy to learn as it gets. No crazy syntax, no OOP bullshit, no ceremony and boilerplate bullshit. It's as simple as it gets. Instructions and data. I know so many people who learned Python and Java in early CS classes and then had their fucking minds blown and experienced so much pain just understanding the concept of a pointer. I remember my packed highschool "Intro to Programming" class where we started with VB and that was a struggle so they switched to one of those "Visual Programming for Kids" which became even more of a hassle for everyone. When I try to learn anything new I want to distill it down to the most basic, core concepts and build from there. Doesn't matter if it's learning a framework, learning bass, or woodworking. Whatever happened to "keep it simple stupid"?
- jjtheblunt 10y agototally agree for exact same reasons