3 ms·
I'm not exactly sure what is the fascination with these blocky-looking, dumbed down, drag-and-drop languages that look the same? First code that I wrote was in
by pmalynin 11y ago
I'm not exactly sure what is the fascination with these blocky-looking, dumbed down, drag-and-drop languages that look the same? First code that I wrote was in QBASIC at age 10 (I'm 19 right now), which I found to be very accessible and then later moved on to learning C# with the help of various XNA tutorials (which, I think is great as you get to make your own games as you go and that keeps you interested -- talk about gamification of learning!) and the help of a C# Design Patterns book (a terrible choice for a beginner, but you might as well learning the right way at the start).
In fact, the way I see it, by peddling this view of programming we're loosing something, something that I can't define and yet I can feel as being fundamental. Perhaps people (kids?) will develop an idea that programming is childish and when they grow up they will grow out of programming as well? I'm not sure. Actually, I remember a great experience toying around and programming Crysis through CryEngine 2 Sandbox editor at age 12, where you could design flowgraph for AI movement (enter this, go there, etc.) and other cool things, and the awesome thing was that you got this immediate feedback and could, for example, observe awesome battles between AIs. This could be a fascinating teaching route to explore, whereby students learn by programming existing (or new!) games in something like UE4 with blueprints, considering most people go into CS with the mindset of "I just want to make games, man" so we should try tapping into that mine.
- myhf 11y agoI think associating programming with childish blocks is less of a risk than associating programming with menial, simple, useless tasks. Most people never get a chance to develop a feel for iteration and emergent behavior, because they have to struggle with typing and syntax and tabs/spaces/braces holy wars. With Scratch, I can get 9-year-old with no math or typing skills to make an interactive system with realistic physics, that keeps iterating and simulating even when they let go of it. Some kids might treat that as an art class, and grow up thinking of programming as unapproachably childish instead of unapproachably strange. But others will remember learning a little about iteration, and object property accessing, and physics, and emergent behavior, instead of learning a lot about syntax.
- skybrian 11y agoThere are certainly other ways to do visual languages and it's worth experimenting with them. But this visual approach seems to work well so why not refine it?
- davedx 11y agoI come from a similar background. I started with BASIC, moved briefly through QBASIC to Borland C++. I also learned programming through making games (before I had access to the web too)! Yet... I don't have the same reaction to these tools that you do. I've been trying to get our kids interest in programming, and the most successful attempt yet was using an iPad app called Hopscotch - a drag-and-drop language that's severely restricted. My next step is to try and get them using Unity3D. I'm not sure if C# is the way to go, but maybe it doesn't matter. What's most important is motivation! It has to be fun, and accessible. These basic languages are a way to suck people in who otherwise might have passed over programming completely.
- asQuirreL 11y agoWhat visual programming languages do is lower the barrier for entry. Once you're hooked, and you begin gaining experience, you will naturally understand the limitations of the platform. By being inquisitive, you will realise that the software used in the real world isn't all built in Scratch. But, to breed that inquisitiveness in children at a young age requires making it accessible. You, for example, probably very quickly realised that if you wanted to make games with a GUI, QBASIC was not the tool for you, but by the sounds of it, that didn't dissuade you. Personally, I'm of the opinion that your very first language doesn't matter very much. As a programmer, you will (should) be learning plenty more, so the first one is more about learning how to learn than anything else.
- Turing_Machine 11y agoSnap has higher-order procedures, call with continuation, multitasking, interprocess communication, modules, objects... QBASIC, to the best of my recollection, had none of those things. So how, exactly, is Snap "dumbed down" by comparison?