Live data from Hacker News

30 years later, QBasic is still the best

nicolasbize.com

161–170 of 308 posts

Re: 30 years later, QBasic is still the best

#161
post #105

To be honest I don't think modern languages are all they are cracked up to be. Back in the day, very large and complex systems were managed quite well with languages like QBASIC, COBOL and FORTRAN, and ran rock solid for decades (hell, a few are still operational). But today, programming is such a polyglotic mess and conceptual navel-gazing nightmare -- it really is no wonder that so many projects end in failure.

As an outsider looking in: programmers, fix thy tools. My first introduction to programming was QBasic in the 90s, and I had a great time making little pictures, beeps/bloops, and text on the screen. I then moved on to some basic Fortran and other engineering-type languages in undergrad c. 2006. My impression of the workflows for Fortran at that time was "this is more annoying than BASIC, but I guess its because its…

> It seems to me that because programming is a new discipline, lots of people are trying to reinvent wheels. There is nothing wrong with this, in and of itself, since we'll essentially be making sure that we get really good at making wheels and end up with really high quality specimens. The problem is that wheels by themselves aren't that useful, and no one is bothering to make an automobile.

There's a lot of truth to that. People are blazing forward, without even looking at the past that's beyond the most recent trendy languages and frameworks. End result is that there's a lot of wheels reinvented, but poorly.

Learning Lisp was a particular eye opener for me. It was a gateway drug to discovering that there were so many things, so better thought out than what we have now (maybe because people did actually think about what they're doing back then, instead of releasing glorified CRUD apps "early and often"), and we're only sometimes slowly reinventing them.

Re: 30 years later, QBasic is still the best

#162

Earlier quoted context omitted.

From my experience back when I was 12: once you get ambitious enough in QBasic, you start to wish for some way of organizing the code and making it easier to follow. At that point, an intro to structured programming or OOP is natural. (Probably not functional programming, though, since functional's not very good for games, and what else do you think QBasic is going to be used for?)

I was in the same boat at that age. I was trying to build a text-based BassTour clone in QBasic, and the book my dad bought from Radioshack didn't get into OOP. It would have made it much easier to do than that static-state version I cobbled together.

I would love to see that if you did built it.

Re: 30 years later, QBasic is still the best

#165
post #9

Earlier quoted context omitted.

I've had a lot of success with a Raspberry Pi 3 and a 15" monitor. My 3 1/2 year old learned how to use a mouse nearly instantly and can click around on the desktop. The Pi is $35 and has HDMI out and lots of USB ports. It's pretty great.

I almost bought a Pi for my son when he turned five, but then I decided to hold off (he didn't seem mature enough to be trusted with it yet). I want each of my kids to have a device that they can use how they please—whether it be playing Minecraft or tinkering with the hardware (including destroying it—I broke quite a few computers growing up...). What software do you have running on the Pi for your 3.5-year-old?

Well... the Kano distro is pretty good for "I'm gonna learn how to type and move around the computer". [1] They have a build-a-computer kit and are coming out with a screen soon? It's a little old for my son, though. It really wants you to type things which is great except he can't read yet.

A colleague of mine had a lot of success with Edubuntu. [2] Her six-year-old is a whiz at the command line. Again with the keyboard use, so not quite appropriate.

I'm still looking, basically. He likes clicking around and seeing that he's having an effect on things, but he usually ends up at YouTube, which isn't so great.

[1]: kano.me

[2]: https://www.edubuntu.org/

Re: 30 years later, QBasic is still the best

#166

Earlier quoted context omitted.

I agree with your complaints about QBasic but I disagree a bit about JavaScript. You are totally right that the environment being right there in the browser is great. But if you press F12 right now you'll find an amazing complex dialog box -- as a professional you just implicitly skip over that complexity. And JavaScript is a significantly more difficult language than QBasic even if it's one of the simpler profession…

Visual Basic 6.0 was great for learning how to program! You could create GUIs and easily share self-contained exes with your friends. Also very cool was the documentation, complete, offline and and with lots of examples. I initially got into programming through Apple HyperCard/HyperTalk on the outdated school computers, but it was rather clunky and limiting in what you could do without going through the C interface.

> Also very cool was the documentation, complete, offline and and with lots of examples.

I think 'online' [1] is the word you wanted to use. ;)

[1] https://en.wikipedia.org/wiki/Online_help

Re: 30 years later, QBasic is still the best

#167

Earlier quoted context omitted.

My favorite is the date, where you months are 0 to 11, and days are 1 - 31. Along with optional semicolons, and there's this[1]: true == 1 → true true == "1" → true false == 0 → true false == "0" → true false == undefined → false false == null → false null == undefined → true "\t\r\n" == 0 → true "\t\r\n 16 \t\r\n" == 16 → true "\t\r\n 16 \t\r\n" == "16" → false var a = "foobar" var b = typeof a → 'string' var c = a…

> My favorite is the date, where you months are 0 to 11, and days are 1 - 31. I think this is something you need to blame UNIX for. Or who knows, maybe something made even earlier. That said, there is a logic behind that. Days we usually represent with numbers. Months we often represent with names. So the month numbers are returned as an index of a sequence of names. (Not saying I like this logic, but it sort of make…

> I think this is something you need to blame UNIX for. Or who knows, maybe something made even earlier.

Continuing forward with bad designs doesn't absolve you from them, though. Plenty of languages avoid this--look at how .NET handles dates and times, it has no real relation to the underlying OS on either Windows or *nix.

Re: 30 years later, QBasic is still the best

#168
post #105

Earlier quoted context omitted.

As an outsider looking in: programmers, fix thy tools. My first introduction to programming was QBasic in the 90s, and I had a great time making little pictures, beeps/bloops, and text on the screen. I then moved on to some basic Fortran and other engineering-type languages in undergrad c. 2006. My impression of the workflows for Fortran at that time was "this is more annoying than BASIC, but I guess its because its…

> It seems to me that because programming is a new discipline, lots of people are trying to reinvent wheels. There is nothing wrong with this, in and of itself, since we'll essentially be making sure that we get really good at making wheels and end up with really high quality specimens. The problem is that wheels by themselves aren't that useful, and no one is bothering to make an automobile. There's a lot of truth t…

I love this article:

https://scottlocklin.wordpress.com/2013/07/28/ruins-of-forgo...

Re: 30 years later, QBasic is still the best

#169

For young children, QBasic and goto may indeed be superior to more structured languages. From a neuro development perspective we know that young children are very concrete and have limited abstraction ability. With Basic and goto, a program is more concrete (you run a line which is more or less 1 command) and linear (no nested structures). With structured programming, it is more abstract, and has an recursive structu…

Agree with this, there's also another big advantage that the article doesn't mention - the instant response and lack of distraction.

30 years ago you turned on, and in seconds were at a DOS prompt. Now you had to load something, to do just that. A C64 or other 8 bit turned on instantly to BASIC. Everyone could program enough to make scrolly insults of their sister or swear and beep on the demo machines in the store.

All the improvements have added layer on layer of insulation from the tedious guts, which is great when you just want to work, web surf, write a mail or play farmville, and the machine, even a phone, takes ages to boot.

It's terrible for kids in my opinion - all the things that would feed their natural curiosity are just not there. What's there instead is appstores and notifications reminding of social messages and games to play.

I made a heavily curated PC for the kids and they were able to do remarkable things in paint (the youngest could do more with paint at 6 than I ever could) or build little programs or make tunes in something that looked like an old tracker. Best part, they did it nearly all themselves.

It's a shame for the next generation we've mostly reduced all tech to consumption only devices.

Then they hit teen and just got addicted to WoW anyway. :)

Re: 30 years later, QBasic is still the best

#170

"When developing a skill, it is much better to acquire the right reflexes from the start rather than have to correct years of bad practice." I disagree with this statement. "Learning" is a long process of acquiring and also discarding habits and knowledge. The best intro I ever read for relativity was "An Equation That Changed the World" and it's a series of dialogues between Newton, Einstein, and the author (a moder…

I'd argue that programming isn't like other skills in this regard. Obviously if you're teaching something like the violin, where there's one right way to hold the bow and learning how to play holding the bow in any other way will ultimately hamper you, sure, it's worth it to drill the One True Way. But coding isn't like that. Sure, GOTOs as a means for control flow, suck for most serious applications compared to the…

There isn't really a One True Way in music either. There are stupid ways to hold a bow, and there's a small range of ways that works. But it's certainly not something you can reduce to a formula of so-many-inches along and an angle of theta.

The arts are mostly practice led, so there are efficient and comfortable ways to get an expressive result, which may not be intuitive or obvious to beginners, and which probably need to be practiced.

But plenty of people pick up instruments by experimenting, and some of them go on to have successful careers - because results matter more than technique, and if you're getting good artistic results perfect technique is secondary.

And I think the GOTO thing is overblown, and misses the point in exactly the same technique-vs-outcome way.

The desired outcome is legible, maintainable code. If you bracket a thousand lines inside a single if statement, you're not any closer to that aim than someone who uses GOTO.

What's missing from BASIC - and from any kind of training that's syntax-based instead of concept-based - is that sense of using structures to simplify and highlight program logic and flow.

PASCAL was fairly new when I was learning to code, and it was billed as some kind of magical mental training tool that would eliminate bad habits and make you a better programmer.

In fact it's just a vanilla C-family language with a few quirks, and the mental training side of it was always wildly oversold.

Currently no language at all teaches separation of concerns, chunking, relative abstraction, DRY, and other fundamental concepts in an accessible way - and there should be. Because they really can help turn hard problems into simpler problems, and make all kinds of challenges more manageable - which is more fundamental to programming than knowing that POKE 53280,1 will make the screen frame white on a C64.

Post reply on HN