Readit News logoReadit News
kstrauser · a year ago
I worked as a hotel night auditor during college. It was great for me: I did actual work from around 11PM to midnight, then loafed around until around 6AM when it was time to set up the breakfast table.

A big chunk of my job was doing tedious manual edits in the guest management software that tracked who was in what room, what phone and pay-per-view charges they'd racked up, etc. It occurred to me to peek at its database file and see if I could pull any useful data out with automation. The DB turned out to be a flat file of fixed-length records. The DOS PC had a copy of QBasic on it and I used a bunch of trial and error to map those records to types, and then I could loop across the records to get interesting data out of them.

Long story short, I ended up with a system we'd run nightly to correct misspellings, build reports of which companies did the most business with us and how recently, identify regular guests who hadn't been around in a while, and a thousand other little things that made my job much more pleasant and my boss extremely happy.

It would be much easier to recreate that program today in a nicer language. I didn't have a nicer language available, though, and while it wasn't pretty, QBasic got the job done.

chasil · a year ago
The AWK Programming Language was published in 1988, and indicates:

"Aside from these limitations, however, awk should be useful in any environment; in particular, it runs on MS-DOS. Further information is available from Addison-Wesley."

It likely was not easy to find, and I hadn't heard of it until 1990.

kstrauser · a year ago
There's zero chance I personally would have been capable of building that same software in Awk, even if I knew of it, and even if I knew how to get it onto that non-networked computer that didn't have any removable media in common with what I had at home.
johannes1234321 · a year ago
In a pre Internet time a lot harder to learn about, fetch and learn than QBAsic, which was saprt of DOS and had a quite good online help system.

Many alternatives existed, but non that were so approachable on DOS (and many other systems in their variant)

wvenable · a year ago
BASIC is a uniquely useful language on machines with extremely limited RAM. It was designed to take up as little program space as possible even when compared with machine language. On home computers, each BASIC keyword is tokenized into a single byte.

I have a computer with only 3kb of RAM but has a comparatively large amount of ROM to support a complete BASIC. With BASIC you can create useful programs that would otherwise be impossible to fit into RAM. This has given me a newfound respect for the language.

RetroTechie · a year ago
100+ comments, and nobody mentioned type-ins:

Common in magazines, you'd have pages with listings that users could type in, save, and then run (in that order!).

Well... usually including some corrections. The usual typo's, but even listings as published contained errors sometimes.

BASIC was very suited for this as many keywords are plain English or -like.

It's only later this got replaced by cover tapes etc.

And in the NL, there was a thing called BASICODE:

https://en.wikipedia.org/wiki/BASICODE

Which was an attempt to make a standard dialect that different computers could interpret, and/or convert into their own machine's BASIC.

A late-night radio program (NOS Hobbyscoop) would often end its transmission with some minutes of tape-loading sounds. Users would record this on tape, run it through some conversion program, and RUN. So the same program as transmitted over the air, could then be run by C64, ZX Spectrum, MSX, Amstrad CPC users etc.

Iirc it wasn't that popular compared to other ways of obtaining software. But computer users @ the time were eager to do & try anything they could get their hands on. Today's internet info-overload didn't exist then.

And of course radio had a wide audience. Interesting programs could thus be distributed among many users quickly.

rbanffy · a year ago
It's hard to overstate how important BASIC was to the adoption of personal computing - it provided a straightforward way to program an entire generation of home computers and bootstrapped countless careers.
jonplackett · a year ago
I don’t understand why it isn’t taught to kids instead of scratch.

Visual coding is my nemesis. I just disagree with it in principle. It makes even the simplest things complicated and virtually impossible to debug.

BASIC was the first computer language I learned. It’s so basic I just taught it to myself from the help section when I was 12, without any exceptional ability on my part.

duffyjp · a year ago
You're giving me ideas-- My oldest is nine and that's probably around the age when I first got my own computer (a 286) and dove into QBasic. There's no way he'd choose to spend time in BASIC unless it was his only option. I have an ancient Thinkpad gathering dust, maybe I'll install DOS 6.22 on that sucker and have it boot straight into QBasic from autoexec.bat.

At bedtime we're a "you don't have to sleep, but you have to be quiet" household so if he had it in his room it might see some use.

johannes1234321 · a year ago
For kids who grew up with smartphones and other visual devices it's extremely hard to build something "sexy" in the first few weeks with basic.

You need some visual thing for the appeal.

satori99 · a year ago
Why not both? My Atari 800 came with a BASIC and a Logo cartridge. Logo was the thing that got my attention first because it could draw pictures on a TV screen right away, but writing BASIC programs and storing them on a cassette tape was the thing that got me hooked for life.
jay_kyburz · a year ago
> don’t understand why it isn’t taught to kids instead of scratch.

Because there is no such thing as a syntax error in scratch. 10 year olds are not great at typing, spelling, or paying attention to the small details.

Scratch rules out a whole class of bugs and allows the kids to jump right into solving the interesting problems.

phone8675309 · a year ago
When I was in high school (around 2000) they had three CS courses that kids could take - the first was in QBasic, the second was in Turbo Pascal, and the third was in C++ for the AP CS exam.
dotnet00 · a year ago
Yep, BASIC bootstrapped my programming interest even as late as the late 2000s. School library was ancient, the only programming books were on BASIC and internet access was limited. So I got started trying to use those to learn this: https://justbasic.com/ (surprisingly, updated even up till 2018, and the paid version updated just a few months ago).

As a clueless, overly ambitious 12 year old I was a massive annoyance for the skilled users on their forums, I remember getting ranted at for wasting people's time with stupid questions, writing awful code, not understanding licenses etc, but it was a pretty good entry point until I managed to get my hands on books for more modern languages.

nlunbeck · a year ago
AFAIK, my highschool still is offering BASIC in their intro CS curriculum. It's just so accessible and many of us preferred it over Python for intro classes
392 · a year ago
Exact same story for me with JustBASIC, late 2000s, no home Internet connection except dialup. Excellent built in help.
mysterydip · a year ago
QBASIC and the printouts I could get of fanzines or Pete's QB Site kept me engaged in programming throughout middle school. I moved ok to VB 5/6 in high school and began my career making all kinds of small apps and utilities for people and companies.
SoftTalker · a year ago
Certainly did mine. I credit my career in programming to an after-school class in programming BASIC on the TRS-80 when I was in middle school, and then the TI-99/4a I had at home when I was in high school.

I even used BASIC professionally for a while in the 1990s.

tasty_freeze · a year ago
Most people think of one of the MS BASIC dialects when they think of BASIC (at least in the US). The original Dartmouth BASIC had matrix primatives, including MAT READ, MAT PRINT, MAT INPUT, and functions like MAT A=INV(B) (yes, matrix inversion), MAT A=BC, MAT A=B+C, MAT A=B-C, MAT A=B(2) (scalar mult), MAT A=TRN(B) (transpose), MAT A=IDN(5,5) (5x5 identity matrix), MAT A=ZER(5,5) (zero), MAT A=CON(5,5) (fill with 1.0).

I cut my teeth on Wang 2200 BASIC, which was an extended Dartmouth BASIC, so it had the above MAT statements, but also a bunch of wild ones that did searching and sorting on arrays, merging two sorted arrays into a sorted output, and more.

Here is a statement that searches a character array A$() in columns 1-5 for a string in Z$: MAT SEARCH A$()<1,5>,=STR(Z$,1,5) TO B$ STEP 5. Every match writes the location to a descriptor array (this case B$), where each pair of bytes was the offset in the A$ array where the match was found.

Despite all that power, it still was quite limited: all variable names had to be a single letter or a letter and a digit. All variables were global. GOTO and GOSUB were either the line number or a "label" where the label was one of '0 to '255. Strings were statically allocated, not dynamic, and the max length was 64 characters (BASIC-2 extended that to 126 bytes). On the other hand, before the program started running everything was allocated there was no possibility of memory overflow during runtime, and no garbage collection, and any references to missing line numbers was caught up front.

seryoiupfurds · a year ago
Having QBASIC right there and available to play with was my introduction to programming as a curious 11 year old.

I remember reading every topic in the help browser over and over looking for how to write to the screen, because I didn't want my first program to waste paper with the PRINT statement.

One section of the manual told me to use labels instead of old fashioned line numbers, but I could never figure out the syntax to GOTO them. So I kept a nice index card with line number ranges for all the functions in my program. It worked great until I had to spend a day debugging a line number that ended with O instead of 0.

It was always a big mystery why renaming my program from .BAS to .EXE didn't let me click to run it like other programs.

Ah, memories...

phone8675309 · a year ago
I remember specifically being excited to have QBASIC when my parents got our first PC. This comment reminded me of that excitement.
vram22 · a year ago
>It was always a big mystery why renaming my program from .BAS to .EXE didn't let me click to run it like other programs.

Ha. Like other such newbie-isms.

One of my favorites:

Computer: Hit any key to continue.

User: Where's the any key?

A google search will turn many more amusing ones.

travem · a year ago
SQL also turns 50[1] today, I think that it has much wider active usage today than many of its contemporaries.

[1] Archive of "SEQUEL: A STRUCTURED ENGLISH QUERY LANGUAGE" https://web.archive.org/web/20070926212100/http://www.almade...

refset · a year ago
It's great how the very first SQL query in that paper is still completely valid and runs on countless implementations:

> SELECT NAME FROM EMP WHERE DEPT = 'TOY'

WoodenChair · a year ago
There's a really good documentary on the creation of BASIC at Dartmouth (made by Dartmouth):

https://www.youtube.com/watch?v=WYPNjSoDrqw

If you don't want to watch the documentary, we did a shorter podcast episode about it:

https://pnc.st/s/kopec-explains-software/6d99d278/basic