5 ms·
The future of programming is programming. What's described in the article is indeed true, you can build stuff without syntax, you can extend it, etc. But who
by cocktailpeanuts 10y ago
The future of programming is programming.
What's described in the article is indeed true, you can build stuff without syntax, you can extend it, etc.
But who is this for? I am not a fan of the "Let's teach everyone to code" rhetoric, because this is same as "let's teach everyone to play the piano", or "Let's teach everyone to be good at math!". People who will code will code even if you don't push them to. And most others, well they have other better things to do in their lives like making art, becoming a scientist, or becoming a doctor.
With this type of "programming", I think their trouble is they don't know who they're building this for. Here's what actually happens:
1. People who want to do serious programming will immediately find out how inefficient this method is compared to "writing syntax", and switch to real programming.
2. People who are hobbyists will find that it's not so hard to learn "real programming" once they get into programming.
3. People who want to learn to program to get a job, will of course learn real programming
4. People who want to build things but can't learn programming languages will maybe use this to write a prototype, but then immediately hire a "real programmer" once they see any sign of taking off.
5. The "education" purpose is also out of touch too. If I wanted to teach my kid how to program I would teach him python. It's not that hard.
6. Most other people won't and shouldn't care about coding. There are thousands of other interesting things to do in life.
I am all for making it easier to build things, and I appreciate that they built this so the world can experience what it feels like to try something like this, but I really can't see any possible use case for this.
- mrfregg 10y agoI too don't see Scratch as the future of programming but you have to grant that it gets kids interested in programming.
- cocktailpeanuts 10y agoHonestly I think Scratch has as high learning curve as simple programming languages like python or ruby (maybe even higher learning curve), not to mention all the copy-and-paste-able code available online if you learn languages like python (compared to this format which is obscure and not easily shareable). That's why I said if I was teaching my kid to code I would teach python. It's easier to learn, copy and paste (for instant gratification), and it is an actual programming language. I really can't see where this Scratch thing has any benefit over these other languages.
- pcr0 10y agoI remember teaching a 9 year old how to code. He was pretty comfortable in Scratch and he understood the basics like loops, conditionals, variables. He was able to program simple graphical Scratch games with minimal assistance (e.g. rock paper scissors, space defenders). When I tried teaching him Python however, his spelling and typing skills held him back significantly. It took him almost a minute to type 5 words. Unfortunately, this is becoming more common, as more kids are growing up without using a computer much at all, in favor of tablets and smartphones.
- chetanahuja 10y ago"Honestly I think Scratch has as high learning curve as simple programming languages like python or ruby" No. Simply no. Source: Taught First/Second/Third graders scratch once a week for 2 full years. The no syntax (no writing) part is extremely important. I've seen first graders completely crate a game from scratch (no pun) that I and other adults actually enjoyed playing as an honest to goodness challenging game. There's absolutely no comparison with "grown up" programming languages... even BASIC (that I myself programmed as a kid but that was only in middle school and later).
- witty_username 10y agoNo, it has a lower learning curve. I used Scratch about 6 years ago when I was learning programming as a kid. The blocks are much easier to understand--they constrain what you can create and that avoids syntax errors and many other problems. Also, the visual element is certainly good and makes it fun.
- tylerhou 10y agoMy friend created a website which solves most of these issues. Instead of using a "made-up" language like how Scratch does, its building blocks are just proxies for CoffeeScript code. You can also freely move between block mode and editing mode, so students who want to learn "real syntax" can do so without having to move to a new platform. CoffeeScript is also potentially helpful for employment because learning JavaScript is a natural progression. We currently use it for teaching middle schoolers code, and they seem to have fun with it. You can take a look at http://pencilcode.org http://pencilcode.org.
- welly 10y agoHow is coffeescript not a "made-up" language? Or C, for that matter? By "made-up" language, what are you suggesting?
- kwhitefoot 10y agoI think he means 'made up for the occasion', 'made up just for this project'. Using a main stream language would make re-use and integration easier as well as making it easier for users to move both from Scratch to more conventional methods and from them to Scratch.
- origami777 10y agoI think the world would be a much better place if we exchanged "everyone learns to code" with "everyone learns safe and secure computer practices". That doesn't have the same ring to it but it's more important. Let's learn now to not open malware attachments before learning an if loop.
- tonyjstark 10y agoYes, this would be a healthy approach. Also I'm not a big fan of the just learning to code approach. software development is more than just hammering on the keyboard. It is about thinking about the right data structures, or data generally, it is about architecture. Finally, if you have internet you have access to so much material to learn coding, why should you start with Scratch if there are thousands of free courses, books, tutorials for every other language. Think about learning Swift on the iPad, C# in the browser, ...
- digi_owl 10y agoGiven that even people that work with _sec 24/7 violate best practices left and right, i fear that it will be a futile effort.
- origami777 10y agoI think the world would be a much better place if we exchanged "everyone learns to code" with "everyone learns safe and secure computer practices". That doesn't have the same ring to it but it's more important. Let's learn now to not open malware attachments before learning an if loop.
- richmarr 10y agoArguing that people who don't already code shouldn't code assumes people make perfectly informed career choices based on their pre-determined personal traits. I strongly recommend reading Dweck's work on mindsets to dissuade you of the belief that aptitude for things like Mathematics is a fixed trait rather than something that can be changed. I think it's also helpful to recognise that the group that are exposed to programming under the right conditions to start of their own accord are a subset (I would posit a small subset) of the people who would be an asset to the industry.
- cocktailpeanuts 10y ago> Arguing that people who don't already code shouldn't code I'm sorry, I'm having hard time finding where I said that. Please do point me to an excerpt.
- richmarr 10y ago> I'm sorry, I'm having hard time finding where I said that. Please do point me to an excerpt. Cool. This (below) was the bit I must have misunderstood. It read as if you were saying that coders naturally find coding, and that people who don't naturally find coding are better off not coding. "People who will code will code even if you don't push them to. And most others, well they have other better things to do in their lives like making art, becoming a scientist, or becoming a doctor."
- onion2k 10y agoPeople who will code will code even if you don't push them to. The booming industry of coding boot camps shows that there are a large number of people who want to code but didn't have the opportunity or knowledge to learn until they were old enough and wealthy enough to pay for private tuition. I would argue that is strong evidence that your assertion is wrong - it's a reasonable assumption there are a number of people who are capable of coding and who want to code but can't afford private lessons and therefore won't ever become a coder. Lowering the barrier to starting, to the point where it's as simple as running an app without any cost (beyond access to a computer), is a very good thing that greatly benefits a huge number of people.
- mrob 10y agoI suspect the majority of those coding boot camp customers do not want to code, but want money, and see coding as an easy way to get it.
- onion2k 10y agoYou have no evidence for that, and it's a pretty horrible thing to say about the people who take those courses.
- mrob 10y agoWhat's horrible about that? People doing things for the money is the driving force behind capitalism, the best economic system yet invented. It improves everybody's quality of life. I have no objection to people going to coding boot camps because they think it will help them make money, and I hope they succeed. But I don't think coding boot camps are evidence for great love for coding for its own sake. People who really want to code will find some way to do it no matter what. They don't need paid tuition.
- onion2k 10y agoPeople wanting money is fine. It was the assertion that they "see coding as an easy way to get it" that's too harsh. In my experience people who have been through coding bootcamps are very aware that they're learning something hard and that they'll need to put in a lot of effort, and that they're starting a new career where they'll be a junior in their first role unless they're very lucky.
- f_allwein 10y agoyes, but there are different levels of complexity in software. If you write code for e.g. AI, Google's ranking algorithm, ..., of course you need powerful programming languages to do so. But much everyday software comes down to accessing data rom a database, manipulating it and/ or displaying it. I think if there were simple, scratch-like tools powerful enough to do this in a decent (good enough) way, a lot of non-coders could develop tools for such tasks, freeing expert coders' time to do more interesting stuff.
- danso 10y ago> And most others, well they have other better things to do in their lives like making art, becoming a scientist, or becoming a doctor. Agree with your general sentiment, but this kind of made me smile. I'm teaching a general programming class next quarter and I plan to say the opposite of this, that the students don't have anything better to do in their lives than to learn programming -- at least for the 10 weeks that they've signed up for. I actually do believe that, but only in the way that I feel it would be shortsighted to tell an aspiring doctor, "don't mind the literacy thing, just be a good doctor!"
- blauditore 10y ago> The "education" purpose is also out of touch too. If I wanted to teach my kid how to program I would teach him python. It's not that hard. It's not just about learning to program. Building systems with these blocks trains problem solving and abstract thinking skills, which are also helpful in many areas outside of software development or mathematics. That's part of the reason why schools and universities have students lern mathematics even if they're not going to use those exact mechanics later in their profession. And such a gamification helps catching their interest where raw code might just scare them away.
- digi_owl 10y agoAs best i can tell even if just a few will end up actively code, at least most will have a passing familiarity with software internals and thus make more realistic demands of both the software and the programmers.