Clearly we need a BASIC tag.
Interesting points, but I’d still never teach Basic at this point (I learned to program when I was 8 with Ruby using SciTE and a windows command prompt). I always recommend Ruby or Lua for newcomers.
From a pure programming standpoint, his example program can be written in fewer lines of (what I think is clearer) Lua:
name = io.read() -- sure, io.read() is a bit more to remember than INPUT, but it's still clearer that assignment is happening
if name == "noah" then -- I don't know the arcane syntax of basic, but lua is definitely more clear here
print("noah is the best")
print("you are the worst") -- extra parenthesis for the print statement, but it's useful to know for standard function calls
end -- no `END IF`, it's 2016 for pete's sake.
In terms of a development standpoint, I’m not a huge fan of complex IDEs, so I agree with the sentiment there. When I taught my two younger siblings to program, I just set up a build script in their text editors that would pop up a terminal and call the interpreter on the current file. Then, all they have to remember is to hit Ctrl-B to run their program. I also showed them how to use a REPL which is great for learning/experimenting.
There are also lots of superb game engines that embed Lua (namely Love2D), that are super easy to pick up. Flashy graphics are another thing that are fun to show off (and definitely catch the attention of kids).
I’m also not much of a fan of most IDEs, but my kids love ZeroBrane: http://studio.zerobrane.com/ It’s important to make a repl accessible alongside the editor to encourage experimentation IMO, and like DrRacket, ZeroBrane avoids the complexity of most general-purpose IDEs by focusing solely on Lua. Lua’s built-in repl is garbage, but ZeroBrane’s is great, and nice 3rd-party repls exist.
Yeah, I’ve had a lot of success with ZeroBrane on my intro to programming tutorials on YouTube. Pretty nice editor for starting out, and definitely one of the simpler IDEs out there.
I think Lua is probably the only environment that can come close to what I had back then with QBasic and Pascal. PutPixel ftw.
PutPixel = love.graphics.points() ;)
How about we get a nice QBasic implementation going on Windows 10? :-)
I’ve asserted in the past that, although BASIC made a much better on-ramp for young programmers than anything that exists today, it wouldn’t interest today’s youth because it’s insufficiently web-ish and lacking in modern features.
This is an interesting data point; it’s nice to have to reconsider. :)
“It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration.” - Edsger W. Dijkstra
QuickBASIC, of course, has almost nothing other than a common set of keywords and sigils to do with the language that Dijkstra was railing against. It’s structured in exactly the sense he supported. It still supports GOTO, but you’ll find it rarely if at all in idiomatic QuickBASIC code.
One of the hazards of quoting a bon mot without pausing to understand it.