10 PRINT "HELLO METAFILTER"; 20 GOTO 10
May 3, 2024 9:25 AM   Subscribe

For many people, the first time they tried to take control of a computer centered around learning to program in BASIC (Beginner's All-purpose Symbolic Instruction Code), a simple, interpreted programming language designed around easily-understandable keywords and syntax. BASIC turned 60 a couple of days ago, so find one of the many online BASIC interpreters and write yourself a little bit of history.
posted by hanov3r (89 comments total) 27 users marked this as a favorite
 
More about Dartmouth BASIC at their 50th Anniversary Celebration page. (The contemporary Mefi post.)
posted by zamboni at 9:36 AM on May 3 [4 favorites]


BASIC was the one programming language I understood- used to do ASCII animations as a kid.

Any languages after that, I have had no clue.
posted by jenfullmoon at 9:40 AM on May 3 [12 favorites]


In my 20s I came across a BASIC program in a magazine (remember those?) that made a bare-bones analog clock display on the screen of a PC with CGA graphics. I dutifully typed it in, and when I got it working my boss said "Good, now add marks around the circumference for the numbers." Fine, I did that, and my boss said "Good, now add a second hand." Once I figured out how to do that he said "Now make the hands fancier." I sighed and did that, along with maybe one or two other enhancements boss came up with, and he finally said "Great, now you know how to program in BASIC!"

Then I never touched BASIC again.
posted by Greg_Ace at 9:41 AM on May 3 [18 favorites]


I can't wait to GOSUB a POKE.
posted by Tell Me No Lies at 9:49 AM on May 3 [7 favorites]


I took to calling it 'Bullshit Activities Somewhat Involving Computers' because I thought I was clever then.
posted by The Vice Admiral of the Narrow Seas at 9:50 AM on May 3 [1 favorite]


I took a summer school class on writing BASIC on the Apple ][e sometime in the mid-80s, then got a second-hand TRS80 III from an uncle and started writing programs on it, particularly my own versions of games like Bump & Jump and Galaga -- I had some pretty elaborate loops for updating enemies, and collision detection methods which involved reading directly from video memory, but it ran...so....slow. But, it set me up for my career today, I've been getting paid to write computer programs for a quarter of a century or so.
posted by AzraelBrown at 9:52 AM on May 3 [9 favorites]


BASIC was not my first programming language. No, in order to ensure that I was permanently damaged, I started with FORTRAN. BASIC came later, for "fun." Then later COBOL, for "business." (Along with ALGOL, Pascal and much later, C.)

I prefer Python for everything these days. It's the "fun language" that BASIC was supposed to be. And no line numbers! (But "syntactic whitespace"? Who thought THAT was a good idea. And before you ask, spaces forever, not tabs.)
posted by SPrintF at 10:02 AM on May 3 [5 favorites]


(But "syntactic whitespace"? Who thought THAT was a good idea. And before you ask, spaces forever, not tabs.)

I think syntactic white space is a brilliant idea. But yeah, whoever thought it should go beyond spaces was not thinking clearly.

And then of course there was this.
posted by Tell Me No Lies at 10:13 AM on May 3 [1 favorite]


I don't recall ever seriously doing anything with BASIC on a desktop computer. But I remember writing a lot of TI-BASIC for my graphing calculator in middle and high school. I don't remember whether that or Hypercard was my first programming experience; probably TI-BASIC.

I have forgotten so many programming languages!
posted by biogeo at 10:17 AM on May 3 [1 favorite]


49 years after the launch I was required to teach BASIC in the tech college where I'd just secured a job. cw: autopuff Maybe the best we can say is "nobody died".
posted by BobTheScientist at 10:27 AM on May 3 [1 favorite]


I think syntactic white space is a brilliant idea.

Co-signed. Python code is (usually) a joy to look at.

I first learned BASIC sort of the way I learned natural language, not with any formal tutelage but by being immersed in it and trying to understand it. And that's the beauty of BASIC: it's simple enough that you can do that, more or less.
posted by uncleozzy at 10:28 AM on May 3 [1 favorite]


Kemeny Kurtz REPRESENT!

CoCo Basic and Extended Basic and BASICA (thanks PC jr) and QBasic. donkey.bas
I never did much basic, cuz I didn't quite understand the concept of REM and Arrays as wee 6 year old.
Was curious about Blitzbasic but rather spend time on something that is useful outside the niche.
posted by symbioid at 10:29 AM on May 3


I cut my programming teeth on BASIC on a school Commodore PET in fifth grade.

It took me a while to understand, once I moved onto Pascal and other languages later in life, why I couldn't just sneak in a GOTO statement here and there.
posted by delfin at 10:30 AM on May 3 [5 favorites]


Like a lot of people in tech, I started out writing basic code - in my case, on a microbee 32, then on a commodore 64. In both cases, the computers booted straight into basic, and came with a book teaching you how to write programs in it. While it's absolutely great that people don't have to do that today in order to use a computer, I have to admit that it worked out for me.

From there, I ended up using visual basic in windows at one of my early jobs, and from there to more advanced languages. In programmer circles, basic gets a really bad rap these days - and for a whole lot of good reasons, but also for a whole lot of reasons that I think are unfair. In particular, basic made it simple to do things that were interesting, in a way that a lot of more modern approaches struggle with - the classic "10 print" examples being the obvious gateway. To get there in javascript, you need an pile of HTML and such to go with it. To get there in python, you need to think about indenting and such. God help you if you try and get there in java. But stumbling your way there in basic? Literal childs play. And yeah, you're not going to learn great modern habits, but I die on the hill that those can come later, when you are more in a position to understand why you're learning them.

Basic leans heavily into the "Beginners" part of its name, and I admire the hell out of it for that.
posted by jaymzjulian at 10:33 AM on May 3 [4 favorites]


And before you ask, spaces forever, not tabs.

*Ostentatiously sharpens knife* And how many spaces?
posted by ChurchHatesTucker at 10:44 AM on May 3 [14 favorites]


I learned BASIC on an Atari 800 after cutting my programming teeth learning assembly language on a Magnavox Odyssey^^2.

I have a bit of python and ruby under my belt, but my go-to Do Stuff language has been perl for, like, two decades. And my perl looks a lot like BASIC.
posted by hanov3r at 10:57 AM on May 3 [2 favorites]


I started programming at the age of 5 or 6 in BASIC. Mostly it was copying programs out of books. Later I graduated to QBASIC and then to C. I recall asking my dad why I was required to write so much code that did nothing in C. Includes? main? return? C'mon, just give me a 10 and let me hit the ground running.

Anyhow, I've been paid to program for my entire adult life and if I had had to start with anything other than BASIC, there's a very good chance that would not be true. Thanks, guys.
posted by Plutor at 10:58 AM on May 3 [7 favorites]


I didn't spend too much time with BASIC, but I acknowledge its legacy and utility as both an introduction to programming and a useful tool for so many. So, Happy Birthday.

60: Continue

In retirement, what little programming I do is either in python, or C (eg the Arduino environment) for IoT and microcontrollers. I'm curious about Rust, but life is short.
posted by Artful Codger at 11:00 AM on May 3


30 END
posted by mazola at 11:05 AM on May 3 [2 favorites]


Rust is amazing Artful Codger. Great on raspberry pi - have a Rust app controlling our garden irrigation system. Fun fun fun. The build system (cargo) is simple & clean and the language’s concept of ownership is super interesting.
posted by whatevernot at 11:19 AM on May 3 [3 favorites]


I believe my social maladjustment started with POKE 59458,62
posted by CynicalKnight at 11:20 AM on May 3


Basic was the seed for my life and career, even if I only used it briefly. I fondly remember keying in a long program to play Reversi that I saw in a computer magazine. Something like that is simply unimaginable today.
posted by tommasz at 11:21 AM on May 3 [4 favorites]


Mom was big on enrichment for me so she got the Monterey “Lyceum” summer course list for kids and so I was able to be exposed to BASIC at the Naval Postgraduate School there.

Didn’t learn much of anything but that course looked really nice on my application for a CS major 5 years later…
posted by torokunai at 11:22 AM on May 3 [1 favorite]


I taught the high school computer - it was, like, huge and in a windowed room and there were keyboards and sort of proto monitors on work stations around it, that is how old I am - how to write poetry in Basic when I was in 9th grade. I figured out the form of sonnets and I think haiku - I know I had two poem forms - and then I assigned a bunch of words to different numbers. Then I used the random number generator to spit out a lot of mostly terrible, occasionally randomly not terrible, not particularly amusing to anyone but me, poetry.

Nobody was impressed except me and thus ended my programming career, which in hindsight kind of sucks because I basically invented Chat GPT there and yet, I remain poor.
posted by mygothlaundry at 11:35 AM on May 3 [8 favorites]


10 SCREEN 1
20 DEF SEG = &H8000
30 word$ = "MetafilterRulez”
40 WHILE TRUE CLS
50 FOR i = 1 TO LEN(word$)
60 PRINT MID$(word$, i, 1) AT x, 1
70 x = x - 1
80 NEXT i IF x < -LEN(word$) THEN x = SCREEN 0, 0
90 SLEEP 100
100 WEND
110 END

Full disclosure, much like when I did BASIC silliness as a kid, I referenced existing code (cheated).
posted by Abehammerb Lincoln at 11:38 AM on May 3 [1 favorite]


In my mind, I started with BASIC and then went right into C, but I'm only now remembering that I spent at least a couple of years in the bogs of Turbo Pascal. The Borland Graphics Interface was my gateway drug into writing directly to the hardware. Let's hear it for BGI.
posted by phooky at 11:39 AM on May 3


BASIC -> Pascal -> Assembly -> C -> Lingo -> C++ -> Java -> Haskell -> Rust

Thanks BASIC - you bootstrapped my career. Retired now, hack on in Rust.
posted by whatevernot at 11:43 AM on May 3 [2 favorites]


I started with a two-week between semesters class in FORTRAN, (punch cards, yea!), back in junior high.
And then took a class in BASIC in college, (also punch cards, yea yea!).

And then did nothing until we got a Mac, and I found HyperCard. And then got into databases with Paradox, and then Paradox for Windows. Which then led me to Delphi. Worked in that for about 15 years. And I haven't learned anything since, what with all the new emphasis on whatever this "web" stuff is...
posted by Windopaene at 11:46 AM on May 3 [1 favorite]


My parents brought home an Apple IIc over Thanksgiving weekend on 1986. I had learned BASIC in school, so I remember staying up many nights to type out programs from magazines like InCider.

I think what I remember most was the agony of typing these out for hours only to find that the program broke because you made a typo somewhere.
posted by zooropa at 11:50 AM on May 3 [5 favorites]


^ chatGPT came 40 years too late, yes
posted by torokunai at 11:53 AM on May 3 [1 favorite]


HyperCard was SO cool. Bill Atkinson is my nerd hero.
posted by whatevernot at 12:07 PM on May 3 [4 favorites]


^ chatGPT came 40 years too late, yes

ChatGPT only works because we* typed all that shit in, for free, in the past

*the collective we, obvs. I never did much of that
posted by chavenet at 12:10 PM on May 3 [4 favorites]


ChatGPT is just ELIZA with a web browser.
posted by grubi at 12:15 PM on May 3 [4 favorites]


I learned how to program in BASIC from a book using my friend's VIC-20. I loved it. And that was pretty much where my programming experience ended, other than drawing a Kermit using Logo in high school. Sometimes I wonder about the trouser leg not taken, but things turned out OK.
posted by The corpse in the library at 12:16 PM on May 3


I learned to program on Atari BASIC on an 800 when I was around nine or ten. I wrote a program that asked the user's name. Ordinarily, the response was "Hi, $NAME!" But if my buddy input his name, the response was something like "$NAME is a big dummy!"

Oh, I was a cutting-edge techno-prankster.
posted by praemunire at 12:23 PM on May 3 [6 favorites]


(BASIC->Pascal->Perl->retirement into the humanities)
posted by praemunire at 12:25 PM on May 3 [6 favorites]


The last programming I did was in dBase III, but I'm pretty proud of what I accomplished with it.
posted by Greg_Ace at 12:30 PM on May 3 [1 favorite]


I remember having a series of choose your adventure type books when I was a kid. At the end it would give you BASIC code to type into your computer and based on your choices in the book you would add different code blocks. My brother and I spent a long night typing everything into our computer and the thing didn't work! So BASIC got off to a bad start with me. All was forgiven later on when Microsoft included Gorillas and Nibbles with QBASIC.
posted by any portmanteau in a storm at 12:30 PM on May 3 [2 favorites]


I absolutely also learned to program in BASIC with the line numbers, too! But, proportionally speaking, I’m not sure “for most people” is accurate anymore. My impression from teaching a related university subject that does have a programming course requirement for our degree program is that it’s been well over a decade (maybe two?) since any of the university kids coming through have seen any version of BASIC.
posted by eviemath at 12:58 PM on May 3 [1 favorite]


FORTRAN → Autocoder → assembler (3 different ones) → COBOL → Algol → LISP → BASIC → Pascal → HTML → Javascript
posted by davebarnes at 1:03 PM on May 3 [1 favorite]


I learned BASIC on my C64. The first program I was taught was a strobe light routine:

10 POKE53281,0:POKE53280,0
20 POKE53281,1:POKE53280,1
30 GOTO10

That set me on the course to being a professional software engineer. Being able to immediately see the results of a piece of code was revelatory, as was booting up into what was essentially an IDE. When I later on got my Amiga and booted it up I was confused as to why I had to load a separate BASIC application to start programming.

The closest thing to that environment these days is the dev console of a browser, where you can just start writing an executing JavaScript code.
posted by grumpybear69 at 1:09 PM on May 3 [2 favorites]


>ChatGPT is just ELIZA with a web browser.

The web dev work I’ve done with it this week, while in no way monumental, was made quite pleasant with it as my coding partner.

Very close to me telling it what I wanted and it coding it up correctly, or at least as good as I could have with concentrated effort.

It may not be quite ‘scary good’ but it has its moments. . . The stuff its pulling into its stream of consciousness via its attention heads is quite impressive now.
posted by torokunai at 1:10 PM on May 3


I love all this talk of Basic and how you started out with it but to me it is almost impossibly remote, exotic and esoteric. If a beginner started today, (that's me in the mirror), what language would he learn? Where would you begin? What would you begin with?
posted by dutchrick at 1:10 PM on May 3 [1 favorite]


(BASIC -> Logo -> QuickBasic -> Pascal & HTML2 (independently but concurrently) -> C -> Mathematica, assembly -> Lisp, LaTeX -> snippets of Perl, online homework systems’ weird amalgamations of Perl + Tex, Maple -> snippets of Python, and I did something with Scratch for a kids math and CS camp recently, but honestly barely do any programming anymore these days)
posted by eviemath at 1:11 PM on May 3 [2 favorites]


If a beginner started today, (that's me in the mirror), what language would he learn? Where would you begin? What would you begin with?

The kid-oriented stuff these days is Scratch. It’s not a terrible place to start for adults either, maybe? I found it a bit inconvenient given that I already know other programming languages (oh! I forgot that StarLogo should have been in my chain just after “Lisp, LaTeX”).
posted by eviemath at 1:14 PM on May 3 [3 favorites]


Likely JavaScript dutchrick - as grumpybear69 points out, ya just need a browser.

Such great language differences - I find this fascinating. I mean, compare BASIC to Lisp to APL to Haskell. Some are better for prose and some for poetry.
posted by whatevernot at 1:14 PM on May 3 [2 favorites]


The PEEK and POKE stuff is very hardware-specific. Most of BASIC is transferrable - PRINT statements, IF/THEN clauses, etc. The real crusty old bit is the line number system, which could really bite you in the tookus if you didn't leave room for expansion by doing something like:

1 PRINT"HELLO"
2 PRINT"HAVE"
3 PRINT"DAY"

and then you realize you want to put "A NICE" in between "HAVE" and "DAY". Well, now you have to update line number 3 to be line number 4! Which, OK, just one line. But if you had 100 lines of code after that, all in sequence, well, it was a sad day for you, indeed. That's why line numbers are generally separated by 10. But it is, no matter how you slice it, a wholly imperfect system.
posted by grumpybear69 at 1:22 PM on May 3 [2 favorites]


I think a lot of the disdain BASIC has gotten over time is undeserved, the result of a cadre of Respected Developers trying to maintain their profession as a kind of mysterious priesthood.

There is nothing intrinsically wrong with BASIC. Sure, indiscriminate use of GOTO produces hard to read code, but that's a style problem. Sometimes you just have to code an indefinite loop, and there's no real difference between doing it with GOTO or while(true).

You want to know what's hard to read? for(i=0;i<1;i++;)THAT'S hard to read! I had to look up the order of the different cryptic little bits, and not for the first time, just now.

I learned to code in BASIC, and spent a good number of years feeling self-conscious about it, like I wasn't a "real" programmer. Well, fuck that idea and everything that came with it. I'm done feeling insecure about my coding habits now, and I'm perfectly proficient in Python these days.
posted by JHarris at 1:31 PM on May 3 [5 favorites]


assembly language on a Magnavox Odyssey^^2

That was also my first exposure to code, with the Assembly cartridge of the Odyssey 2 (but here in Europe we knew it as the Philips Videopac G7000). I couldn't understand any of it. The code might as well be magical incantations. I didn't have that wonderful book you've linked to, though. Only a small leaflet that came with the cartridge.

The first code I actually understood was BASIC, from the wonderful Usborne computer books. I didn't have a Spectrum, though, and just ran a lot of it in the BASIC interpreter inside my brain until I got my first PC with GWBASIC.
posted by JSilva at 1:55 PM on May 3 [3 favorites]


That's why all the cool kids used a version of BASIC that had a 'renum' command.
posted by Hatashran at 1:57 PM on May 3 [1 favorite]


I have the Apple IIc and Apple's included programming guide/disk (as well as my Dad's early adoption of technology) to thank for my present career. When I was 9, BASIC started me on a journey that continues to this day.
posted by signsofrain at 2:05 PM on May 3 [1 favorite]


I spent a decent amount of time in BASIC as a kid but really got deep into QBASIC, which I wound up using to do ... fairly complex things like building a sprite editor, even if I never got around to actually building the game that was going to use those sprites. I even had mouse support, copying an arcane set of POKE and PEEK commands from a technical book I bought.

I don't write code anymore but I really wish I could do some simple gaming stuff, still.
posted by thecaddy at 2:07 PM on May 3 [2 favorites]


I don't write code anymore but I really wish I could do some simple gaming stuff, still.

thecaddy, you should take a look at Love2D, it's a free 2D game engine you can write code for in Lua, a language that's pretty easy to pick up! There are lots of tutorials for it online and you can have a simple run/jump game working in an afternoon.
posted by signsofrain at 2:14 PM on May 3 [4 favorites]


I think a lot of the disdain BASIC has gotten over time is undeserved, the result of a cadre of Respected Developers trying to maintain their profession as a kind of mysterious priesthood.

That’s definitely true historically - I don’t know about “priesthood” but obviously there was a “real programmers use assembly/C/whatever” thing. Having grown up in the 90s/00s, though, I feel like BASIC also reached a weird point where it was still common in the niche of “educational/accessible language” while actually being quite dated and a chore to build much of significance with. As other people have said, in a world with more expressive, structured interpreted languages, there’s little reason to subject beginners to having to figure out exactly what the hell DIM means.
posted by atoxyl at 2:15 PM on May 3 [1 favorite]


GOTO considered harmful.
posted by whatevernot at 2:20 PM on May 3 [3 favorites]


And yet setjmp() and longjmp() remain.
posted by Tell Me No Lies at 2:30 PM on May 3 [4 favorites]


BASIC changed my life. I got a PC when I was young, but my parents didn't allow me to buy any games, so all I had was Word and BASIC. A kid at school told me you could make your own games with BASIC, so I spent hours and hours trying to do that. I can't say it was successful or I had any talent in programming, but it sent me on the path you can say I'm still on.
posted by chaz at 2:35 PM on May 3 [1 favorite]


it sent me on the path you can say I'm still on.

Wasting time on useless aggravating things?

(I say it in jest; I certainly do a lot of that to myself)
posted by Greg_Ace at 2:46 PM on May 3


I used BASIC on a Timex Sinclair, and TurboBASIC in college, when I discovered that I am not, in fact, a code writer. I have enough trouble with basic HTML, as it is.
posted by Chuffy at 3:13 PM on May 3


BASIC's poor reputation derives primarily from the Microsoft implementation, but the original Dartmouth incarnation was a pretty good design. It was compiled, not interpreted, and pretty fast compared to its peers. Line numbers were the best way to interactively edit code on the teletypes of the era. Setting a limit of one keyword per line (PRINT, LET, etc) was to help newbies understand programming without too much clutter.

And when undergrads and high school students were loosed on this system, they created the first computer games. The originals are mostly lost, but many programs in the David Ahl books are no doubt descendants of these.
posted by credulous at 3:48 PM on May 3 [5 favorites]


Being able to immediately see the results of a piece of code was revelatory

I never had a future in computer science (the only class in all of college I got lower than an A- in), but even I can feel that rush of power when you actually make a machine do something you told it to do.
posted by praemunire at 4:04 PM on May 3


59 and I still get that rush of power when my raspberry pi makes a servo swivel. Exactly like when I was in my early teens.
posted by whatevernot at 4:13 PM on May 3 [7 favorites]


BASIC & LOGO ->
FoxPro (first two jobs) ->
Pascal, FORTRAN, COBOL, RPG, & C (college) ->
proprietary scripting languages -> Java -> C++ & HLSL & C# (third job) ->
C++ & C#, and sometimes having to look at VBA and 40-year-old FORTRAN (current job)

Having spent yesterday refactoring a bunch of legacy C++ code to remove about 1200 gotos, I have mixed feelings about teaching people to code with BASIC.
posted by Foosnark at 4:33 PM on May 3 [5 favorites]


It never occurred to me that I didn't know what BASIC stood for.
posted by brundlefly at 5:51 PM on May 3 [3 favorites]


I think Godot and its GDScript language are pretty decent introductions for people who like the idea of programming a game. A lot of the hard stuff (setting up graphics, etc) is handled through the graphical scene editor, so you can focus on learning scripting as a way of making things happen in the scenes you create. Not the easiest introduction to programming but not terrible either.
posted by biogeo at 6:10 PM on May 3 [3 favorites]


My user name here was created by a BASIC program.
posted by The Half Language Plant at 6:53 PM on May 3 [3 favorites]


Basic was my first programming language, and I've got some fond memories of it, but most of my ideas were far, far beyond both its capabilities and mine at the time, so it wasn't until I got into using PHP to make websites out of high school that anything went anywhere.
posted by Aleyn at 7:43 PM on May 3


I started on BASIC in 1979, working on a dumb terminal hooked up to my elementary school's mainframe. I hacked the Star Trek game and wrote some of my own code.
Over the next couple of years I hand copied programs from a couple of big paperback books. I obsessed over the books, carrying them around and annotating them when I wasn't near a computer.

After that I moved on to COBOL, FORTRAN, then even assembler, before turning away from computers for a few years. But BASIC was my open door.
posted by doctornemo at 7:45 PM on May 3 [1 favorite]


For me it was spreadsheets for several decades in bookkeeping and accounting. The closest I came to an actual language was AWK, which I still tinker with from time to time. These days it's aliases, shell scripts and the core utilities...
posted by jim in austin at 8:09 PM on May 3 [4 favorites]


My user name here was created by a BASIC program.
posted by The Half Language Plant


Imagine if you'd used something more powerful - you might be a Whole Language Plant!
posted by Greg_Ace at 8:16 PM on May 3


Honestly I don't remember for sure, but I think my programming languages journey was something like TI BASIC, Hypercard, Applescript, C, whatever the scripting language for Lotus Notes was called, AutoIT, Visual Basic (for school), C++, LabVIEW, PHP, Matlab, C again, Tcl, bash, Python, SQL, R, Julia (briefly), Awk, C again, JavaScript for one project, GDScript, and now mostly Python. I feel pretty sure there's one or two I'm forgetting. The good thing about having worked in lots of different programming languages is how obviously pointless the "your favorite programming language sucks" discussion is. Each of them is good for different things, and if you enjoy working in whatever language you're using and you're able to be productive, great, it's doing what it's supposed to do for you. No one should feel ashamed or less-than because they like programming BASIC or whatever else they use, all programmers are real programmers.

(Okay, PHP does actually kind of suck but that's the designers' fault, and no one else should feel bad for liking it.)

Anyway in summary, BASIC is great, happy birthday BASIC!
posted by biogeo at 8:20 PM on May 3 [1 favorite]


In the typical home computer BASIC dialects the correct one liner title would be more like:

10 PRINT "HELLO METAFILTER" : GOTO 10
posted by donio at 8:38 PM on May 3


I was a BASIC whiz on my aunt’s apple ][+. I went to CompuCamp and even got an programming award in 3rd grade adjudicated by the MECC folks that made the original Oregon Trail. Good times!
posted by umbú at 9:02 PM on May 3 [1 favorite]


I don't remember whether BASIC or Logo was my first exposure to programming, but my first serious language was QBASIC on a 386. That was a great system for learning - built-in graphics made it really fun, and the on-line documentation/help was extremely thorough.

And QBASIC supported no less than three different ways to organize code: line numbers, GOTOs with text labels, and structured programming with subroutines. So you could still grab line-number-based code from magazines etc. and tinker with it, but on the other hand there was a clear "upgrade" path whose benefits were immediately obvious.

Most ambitious thing I ever did was a Police Quest-style driving simulator. (Since that was clearly the most fun part of PQ!) I ripped all the graphics for houses/buildings, and reused them in a much larger procedurally-generated world. With up to 20 computer-controlled cars on screen too, driving around randomly. After that I moved on to C++ and Java, but that was my first really sizable project, and still one of the most fun!
posted by equalpants at 9:13 PM on May 3


When people talk about BASIC lacking power, that's more the implementation than anything else. BASIC can be a compiled language just like anything else is. Its time may be past, but Python has picked up its torch admirably.

Microsoft's first product was a dialect of BASIC written by Bill Gates himself, for early kit computers. Even when Windows was on the rise they'd license it to companies who needed a pack-in language for microcomputers. QBASIC is possibly the final version of that codebase.

It's sad that Visual BASIC is no longer really a thing.
posted by JHarris at 9:58 PM on May 3 [1 favorite]


I also got my start on an Apple ][+ (there were two versions, I had the cheaper one where it could only print uppercase characters, not lowercase ones). I had a magazine with code for a little game in it where you were a submarine (represented by an O) that was fighting sharks (represented by > and < characters), and then I would also write a lot of my own Choose Your Own Adventure style text games. But at some point the disk drive totally died, so I would only be able to play the games after I typed them in as long as I didn't restart the computer. I like to think that this helped to ingrain a lesson in the ephemerality of code that was useful to me in my later career as a software engineer.

I actually think the BASIC of yesteryear is pretty similar to the PyTorch / TensorFlow oriented Python of today, in that it's a loose high-level framework that you can use to organize and orchestrate low-level operations (various POKEs to the hardware in the case of BASIC, underlying C++ matrix libraries for the modern ML stuff).
posted by whir at 10:36 PM on May 3


I played with Logo a bit as a very small child but BASIC in my middle school's afterschool computer club was definitely the first time I got to Program. I spent many happy, frustrated hours trying to write a text game with a gross tangle of goto statements.

Been paid to code for the last couple decades, give or take, so I guess it turned out okay. The other day I was in a meeting with a bunch of younger teammates and referred to something as "just GOTOs under the hood" (I think I was talking about some language's exception handling maybe?) and it clearly wasn't a reference that meant anything to them. Someone was like "oh, like 'goto considered harmful'?" and I felt myself grow a long, white beard. Aren't they still teaching assembly in school??

My second grader has been taking Scratch classes all year and this quarter they just moved on to Python, but it seems like they're using Python frameworks that are still pretty drag-and-drop, at least so far. So that's what they're teaching kids nowadays. My fifth grader actually did a little bit of Logo programming at school this year, which made me really nostalgic! I was surprised at how much she liked it.
posted by potrzebie at 11:25 PM on May 3 [2 favorites]


I'll just start at the beginning...

The 4k PET 2001 taught me about program chaining for when you ran out of room for your code. Then there was time served on TRS-80's, VIC-20's, C-64's, and our high school got a bunch of Apple ][. I drove a C-64 until college, when I started using the mainframes/minis at school, and then my gf/fiancee/wife's dad passed down an IBM XT-286. (IBM model 5162, 1.2 MB AT-style floppy and a 20 MB harddrive) It came with the first buckling-spring keyboard in my life, but not the last (right now I'm on a Unicomp Classic).

Anyway, college was the usual Pascal/C/ASM/Data Structures/Algorithms thing. Which takes us into the late 80's, and my first paying gigs, for which I chose Turbo Pascal. Man, that Borland stuff was sweet. That lead to some Petzold-era Windows programming in C, and then more Windows work with Pascal and Borland's Object Windows Library, which was a lot better than programming Windows from the bare metal.

And then I spent some time doing AR/AP/Orders/Invoicing, etc in the world of Microshare Business Basic, Basis-BBX, and MAI/Business Basic. That served me well, and brought me to a 4GL called Dataflex in the personal-lines insurance and finance world. That was hosted on SCO Unix servers, a 386 at the time. Within a few years, we got tired of having to pay for a TCP/IP stack, which was the style at the time, and migrated the 20 sites to Linux boxes. And I was implementing new stuff in Perl and PL/SQL (would have been Oracle 7ish time). The CGI module was huge at the time.

Anyway, I could go on for hours, but I'll wind up saying that I really, really miss Jay, who taught me so much about Business Basic + Dealing with Assholes in the Workplace, who entered the gates to The Great Gig In The Sky back in 2012.
posted by mikelieman at 12:42 AM on May 4 [3 favorites]


Nobody was impressed except me

I'm impressed with you, mygothlaundry, and I think everyone here is, too!

I had a VIC 20 as a kid, and, being too young for it, thought BASIC was bad. Then 30 years later, my wife and I, both professional programmers, went to a computing history museum and just sat there waiting BASIC programs for an hour. Turns out, BASIC is a really fun programming language. Line numbers and renum are such a smart solution to the constraints of the technology.
posted by Hermione Dies at 12:43 AM on May 4


I'm not a 'real' programmer, but I've been playing around with computers since my first Fortan IV course in 1971, and I usually find that a BASIC program is up to the task at hand.
After BASICA was hard to find, I switched to QBASIC, and then to QB64.

Last week I just finished (as if a program is ever finished...) writing SnarkBot in QB64, which is like WordleBot, but in the style of Don Rickles.
I also did a two-player Wordle-like game that I really like. (Don't tell the NYT)

I'm so happy to see that for most of the time, my brain still works.
posted by MtDewd at 5:31 AM on May 4 [2 favorites]


Decades ago bought a Radio Shack Color Computer, and can recall feeling a little intimidated looking at the color-cycling cursor when I turned it on (now what?). Did start BASIC programming from examples in the manuals and magazines - can't recall that I did anything significant with it. Eventually got a version of FORTH and actually did some interesting work with it - was able to interface with a ram-pack (using it as a small SSD), and a 10 Mg hard drive. I'd seen someone in Dr Dobbs Journal describe the Color Computer as a perfect hacking machine.

Moved on to an IBM PC-XT and worked with a couple of different version of FORTH on it. Over the years and other computers worked with AWK, JavaScript, MEL (Maya Embedded Language) and currently AutoHotKeys (which I've heard described as something like Apple Script for the PC). I have brushed up against C and C++, Perl and Python, but never got into them.

I can't say I've made a career out of this - I've made tools that I (and sometimes others) could use, but they have been niche applications and almost always incidental to what I'm 'paid to do'. I could have an 'Oddball Computer Languages' resume header.
posted by rochrobbb at 6:36 AM on May 4 [2 favorites]


"WordleBot, but in the style of Don Rickles"

If that doesn't count as 'real' programming, dunno what does.
posted by whatevernot at 7:25 AM on May 4 [1 favorite]


The first code I actually understood was BASIC, from the wonderful Usborne computer books

There’s a young lady on YouTube who recently posted about translating those old Usborne BASIC programs to Python.
posted by hanov3r at 7:56 AM on May 4 [1 favorite]


For my major, I took one programming class in college. We used QBASIC, but I think my computer had GWBASIC. Or maybe the other way around.

I wish I would have done more, but at the time I was in a BS/MD program and there was no time. By the time I changed my major and then went to grad school, I was severely depressed and couldn't wrap my brain around much of anything.

Today, I'm playing around with python. I'm currently trying to write a guess the number program. I'm probably about 75% the way there. I have pseudocode for the loop to determine if an answer is correct. Now I just need to write the real code.
posted by kathrynm at 9:44 AM on May 4


TI BASIC

I still have a graph-link cable around here somewhere. I wrote terrible programs to solve some trig and pre-calc problems as I got tired of understanding the concepts but screwing up the arithmetic.

Though most of my exposure to BASIC was staring at the prompt when I exited the Finder on our ][gs and then not having any idea what to do beyond basic 10 PRINT HELLO kind of stuff.
posted by snuffleupagus at 9:54 AM on May 4 [1 favorite]


I can't believe that there are MULTIPLE people here who learned assembler on an Odyssey 2. I did too! Still have it! :)
posted by readyfreddy at 10:11 AM on May 4 [2 favorites]


My first language was BASIC on an Atari 8-bit! I was going to say "I'd miss recursion if I went back to it", but GOSUB came to mind, unbidden.
posted by Pronoiac at 12:00 PM on May 4 [1 favorite]


Feel like Pico-8 and picotron should get mentioned here, for people looking for the joy of old days programming, though they are Lua and not BASIC.

I learned on Apple II+ BASIC. I wish I'd also got into assembly right then but I guess it was too intimidating, and I didn't have any resources to light the way.

I remember my first exposure to C from a more BASIC/PASCAL mindset. So beautiful, mysterious, spare, magical! I saw a bodyless while() and my brain was changed forever.

> GOTO considered harmful.
And yet setjmp() and longjmp() remain.


And, fucking christ, exceptions.
posted by fleacircus at 2:38 PM on May 4


I learned assembler on an IBM 370-145.
Then the CoCo- a 6809e, using a program I had on cassette, and then on to the 6510/6502, with much help from Jim Butterfield.
posted by MtDewd at 2:41 PM on May 4


« Older Shut Up 'n Play Yer ... Bicycle?   |   Philosophy doesn’t only matter for the ivory tower Newer »


You are not currently logged in. Log in or create a new account to post comments.