Ask HN: Any interest in a modern QBasic?
It's really convenient to get started in. It's super helpful that it's an IDE with a built-in interpreter and comprehensive help section. The semantics aren't that hard to pick up. And it has a built-in basic graphics library.
But it's lacking in a few areas. The IDE's fixed screen resolution is really hard to work with. In general QBasic's syntax is confusing and inconsistent. The IDE is missing important features like undo/redo, which I totally forgot about.
So I was thinking, why not write a modern alternative? My plan was to build a very lightweight IDE (probably using Qt), that has a built-in interpreter, using a custom language (probably a stripped down version of Ruby without all the crazy). It would probably use something like SDL and export a basic graphics library too. And it would come with a comprehensive help section including a tutorial.
Is there any interest in using and/or helping with such a project?
(I've looked at a few existing options. Most of them seem to be more drag-n-drop "visual" languages, which I'm not interested in.)
28 comments
[ 3.2 ms ] story [ 46.8 ms ] thread>I want to spare him from significant whitespace for a while
Reasonably smart kids can understand a lot of things if one takes the time to explain it to them a bit, along with the reasons why a particular thing is the way it is.
I'd suggest you try to avoid dumbing things down too much, just because he's a kid. You might be surprised.
Logo (language) could be another option, and is pretty cool for kids (of all ages :) There are free versions available, just google for them or see the Wikipedia page for Logo.
Dr. Racket is pretty darn good, and racket is a reasonable language. Plus, I think someone over there is still chipping away at http://www.pyret.org/
It's not as advanced as something like processing, but it's far easier than doing graphics with QBasic back in the 80's.
It's almost compatible with QB, but it lacks some of the debugging facilities.
My favorite feature was stop-edit-and-continue. I still miss it, but it’s very difficult to implement in a compiled language.
it has a great toolchain, built-in IDE, and supports many, many platforms (Desktop, iOS, android, HTML5, others). The syntax is more modern, and is being used in many commercial games.
I don't know how old your son is, but I think he'd be better served by learning something relevant and extensible, than some custom language intended to him from scary programming. The Python and editor idea was good, though it doesn't necessarily have to be Python.
He's got you there so if he wanders into some "dark corner" of the language it's not like he's screwed and without help. That was my major impediment to learning programming as a child, not having someone there to explain things. I was 6 years old and got stuck on the concept of an array and my progress ground a halt. Later on I found a friend who could explain harder things like structs and enums and this made programming much easier.
So, just show him tools and be there when he has questions is my best advice.
We also did something similar, except it is all visual programming (I know you said you are not interested in visual).. Its called GamePress (http://www.gamepressapp.com), free iPad app check it out :)
I also second the recommendations on python (which has a built-in turtle and awesome libraries like pygame).
Racket is also a very good choice. DrRacket is a solid IDE and the language has plenty of good basic libraries. The book Realm of Racket might also be of interest: http://realmofracket.com/
I just tried DrRacket last night, and the IDE was pretty confusing to get started with for me. Plus I think it will be easier for him to get started with a non-Lisp language. (Disclaimer: my favorite language right now is Clojure.)
I learned QBasic when I was 9, when I was 11 and realized the world wasn't developing real applications in QBasic, I was pretty upset and never wrote a line of QBasic ever again. I was pretty bummed at the time, and moved on to C.
There certainly is a reason top universities are moving to Python to teach beginners programming...