Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

If you're teaching 10 year old kids to code, is there an advantage to using something like this over Python or JavaScript?


I'd say no, at least not on modern computers.

When I learned to code you had the manual for the computer and it contained so much information that was alien to you - but then you'd start with BASIC and learn to use that to do a few things. Then some more of the information in the manual would start to make sense and you'd start to poke values in to memory locations to achieve things you couldn't do directly in BASIC. After a while you'd start replacing the slow parts of you BASIC program with little machine code routines (worked out from information in the manual). After a while you knew you machine inside and out.

What made that all possible though was the limited scale of the computer, while modern computers are essentially the same as they were back then, they're on an entirely different scale which makes it impossible to hold it all in your head at the same time.

These day's beginners would better served by learning the logical patterns of programming, which I think are easier to see in modern scripting languages.


Maybe. Having been a 10-year old when both of these languages were available, my main goals were to make things that looked cool to share with friends and family. My dad set me up with a BASIC256 environment around the time it was released, and I liked it because it gave immediate feedback and had a built-in graphics interface.

JavaScript: Cool language, but I was not excited about all of my work happening in a web browser. I wanted to make imperative programs, but most JavaScript tutorials were focused on enabling little DOM manipulations that were not very exciting to me. Plus, the heavy focus on Async programming went over my head. If NodeJS was around when I was first dabbling with JavaScript I probably would have stuck around with it more.

Python: Probably the best thing to introduce to a kid these days, but I used a shared family Windows computer with restricted users and setting up environments and package managers was always a pain.

I ended up spending a lot of time with Scratch, mostly for the collaborative online community.

Overall my trajectory was BASIC256->Scratch->C++->Python/Java/everything else


Mine (starting in late 1980s) was GW-BASIC -> Visual Basic (esp with Access) -> Ruby -> PHP/WordPress -> JavaScript -> everything else. It worked then because it was hard to find education material, and the alternatives (C, Lisp) were so damned hard.

I think the trade-off is that Python has an immense ecosystem - libraries (e.g. PyGame Zero), education material, people. Plus you can point to real-world examples of people building stuff with Python - you can make actual money with it. I'd be worried that teaching BASIC puts them in a niche - one where they make progress more quickly, but struggle to get out of.


> I'd be worried that teaching BASIC puts them in a niche - one where they make progress more quickly, but struggle to get out of.

I'd think that learning BASIC then Python (or Ruby, PHP, JS, whatever) would still be a lot easier (at least for a 10 year old kid) than starting with one of the latter languages directly, due to the incidental complexity that all of those have. Most pro developers will be able to work with more than one language anyway.


Built-in graphics commands are a massive win, and a big gap in today's standard language offerings for kids. Any old timer will tell you that the ability to trivially get sprites up on the screen, or hell even a coloured circle, is the clue to the young programmer that putting together a simple game is within their immediate grasp, and this is very much the gateway drug to programming in general.


Even today, BASIC is a much simpler language than Python or JavaScript, which ought to make it easier to learn. It would also be a bit easier to transition to a more advanced language like Go/Rust if starting from BASIC than Python/JS.


The advantage is the "just works, stays the same, simple base" nature of it. Web dev in the browser with JS "just works" but slowly drifts, and the base isn't simple. Even learning vanilla JS is a lot harder than BBC Basic. There is a lot less to BBC Basic. For example if I remember there is zero functional programming capability, no closures, no objects even (I think there were strings, numbers, booleans, arrays of strings, arrays of numbers, arrays of booleans, etc. very simple types).


> For example if I remember there is zero functional programming capability, no closures, no objects even ... very simple types

This, pretty much. Of course it would be even simpler to start from a language where the only "type" is the machine word, like assembly or some varieties of FORTH. A language like BASIC adds only a slight amount of complexity, for a sizeable gain in ease of use and intuition.


Just a speculation (I never teach coding to 10 year old kids, anyway): most likely no.

Kids are rarely interested in implementing data structures/algorithms efficiently. Instead, they want something more visually appealing, like graphics or 2D/3D game. Python is more "battery included" on this aspect.


For 10 year olds maybe not, but I learnt to program with BBC Basic (running on Windows) at the age of about 5 or 6. I used to produce the biggest mess of GOTO statements you’ve ever seen, but it was so much fun!

I think even something like Python might’ve been too subtle for me at the time.


Then you can try out this teaching and learning language, which runs in the browser and is a bit like the old home computer BASIC versions.

https://easylang.dev/ide/


A 10 year old might have more fun remixing games on PICO-8 or TIC-80. Or creating games with Octostudio.


As much as I love BASIC, Scratch -> Logo -> Python is probably a better path to follow




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: