BASIC Co-Inventor Thomas Kurtz Has Passed Away

It’s with sadness that we note the passing of Thomas E. Kurtz, on November 12th. He was co-inventor of the BASIC programming language back in the 1960s, and though his creation may not receive the attention in 2024 that it would have done in 1984, the legacy of his work lives on in the generation of technologists who gained their first taste of computer programming through it.

A BBC Micro BASIC program that writes "HELLO HACKADAY!" to the screen multiple times.
For the 1980s kids who got beyond this coding masterpiece, BASIC launched many a technology career.

The origins of BASIC lie in the Dartmouth Timesharing System, like similar timesharing operating systems of the day, designed to allow the resources of a single computer to be shared across many terminals. In this case the computer was at Dartmouth College, and BASIC was designed to be a language with which software could be written by average students who perhaps didn’t have a computing background. In the decade that followed it proved ideal for the new microcomputers, and few were the home computers of the era which didn’t boot into some form of BASIC interpreter. Kurtz continued his work as a distinguished academic and educator until his retirement in 1993, but throughout he remained as the guiding hand of the language.

Should you ask a computer scientist their views on BASIC, you’ll undoubtedly hear about its shortcomings, and no doubt mention will be made of the GOTO statement and how it makes larger projects very difficult to write. This is all true, but at the same time it misses the point of it being a readily understandable language for first-time users of machines with very little in the way of resources. It was the perfect programming start for a 1970s or 1980s beginner, and once its limitations had been reached it provided the impetus for a move to higher things. We’ve not written a serious BASIC program in over three decades, but we’re indebted to Thomas Kurtz and his collaborator for what they gave us.

Thanks [Stephen Walters] for the tip.

73 thoughts on “BASIC Co-Inventor Thomas Kurtz Has Passed Away

  1. Maybe nobody has respect for BASIC nowadays, and maybe Kurtz’s passing won’t hit home quite so much. I have a mental block trying to learn languages that seem to be designed to be overcomplicated. Everything I’ve coded in the past 30 years has been in some dialect of BASIC. My favorite feature is that, without programming for years and forgetting most of what I knew, I can pick up a new dialect and start coding in a short amount of time. It’s the language closest to English. It has it’s faults but it’s certainly more than just a curiosity or 80’s 8 bit nostalgia.

    1. This goes for me too. A bit more than 30 years, still making money withit today. BASIC is the same as C for me (and “this NEW thing” PYTHON; LOL).

      I use C and have for a very long time, once I needed cross platform (and I did miss ASM at first). But BASIC and C were, and are, still work for me. Funny, I too say “It’s like writing code by thinking in English”. Almost AI to my fingers I guess.

      And GOTO, really. All code/compilers I use have a break/return/goto/function/loops/etc. It’s a “jump” JMP , JNZ, JZ, J** of some type at the machine level (push and pop from PC as well). You need to get to a sub or function somehow and you have back. Enough RANT, I liked BASIC and still use it. Sorry Mr. Kurtz did not have labels for the GOTO and other things, but all languages evolve. Heck look are erlang, etc.

    2. I used to do a ton in basic, starting with my ZX Spectrum as a kid, later i dabbled in Visual Basic and VBA, even ran some Basic variant for microcontrollers.

      These days i mess around with Python and the amount of ‘fuss’ it requires to get a program to work is overwhelming. Tabs vs spaces is a classic example of being very user-unfriendly. Then you run into ‘oh you need a virtual environment’ or ‘you installed this library using pip but that installed it on ANOTHER version of Python, not the one you’re currently running’.

      I do love the results i get with it, but i seriously hate the route to get there. Note that i’m no programmer by any standards, i just mess around by linking together example code and getting chatGPT to inspire and help me out whenever i invariably run into trouble getting it to work.

      1. It’s nothing to do with the language itself; modern forms of BASIC can express the same things as any other language, unless you’re pointlessly fixating on micro details.

        The big difference with BASIC is that it’s perceived as being for people who don’t code every day, and so it’s not seen as acceptable to introduce a lot of friction into the toolchain. Python (or even C) could be just as frictionless – just look at Arduino – but generally the communities around those languages don’t care much about barriers to entry. You can draw your own conclusions on why that is.

    3. BASIC was and is intuitive. It brought useful productive programming to millions of people. My first programming experience was a college class in FORTRAN first flowcharting my program then punching cards, handing them off to the computer operator for hatch run, picking up my output the next day more often than not filled with simple errors, repeat the agony until the program worked. It soured me on computer programming. BASIC was not designed for large programs. The B stands for ‘Beginner’. The B stands for ‘All purpose’ . The interactive interpreter and intuitive syntax and crystal clear semantics was a godsend. Nobody developing in a batch environment ever got in the zone where working code just happened and you could do no wrong. My next revolutionary programming experience was Turbo Pascal. Windows programming was a hellish experience until …Visual BASIC.

      You can write high quality maintainable code in any language and you can write junk code in any language. I’m guilty of both 🤣 Q E D.

      1. I took one of the last courses that were taught that way, Hollerith cards to the mainframe, by the uni I attended in 1981. After the first assignment I started doing everything in BASIC first at home, then converting the result to FORTRAN.

    4. Code is about readability. Basic fits that bill. So does Algol and Pascal. C doesn’t, if a==b is not natural and different to if a=b . Just run a grep / sed on your code to see how many of those you have. Far greater issue than memory safe

      1. Well, like, the more modern BASIC, which evolved by applying the constructs of PASCAL to the line-based BASIC (as Microsoft had to compete with Turbo Pascal to keep it’s BASIC alive), does fit that bill. But the old line-based BASIC does not fit that bill at all, in my opinion.

        I still use line-based BASIC occasionally on my iPhone using cbmHandBasic. It’s nice for quick and dirty programs. In my case, cbmHandBasic is basically fulfilling the role that those old basic-programmable Casio and Sharp pocket computers had.

        But none of those BASIC programs that I write are meant to be maintained. I use C, C++ and Swift for anything that needs to be maintained. Maybe Rust and Python, but not as my go-to.

        1. Ugh, repeatedly calling GOSUB, but never returning! I am sure there are a few people out there that just threw up their in mouths.

          Nice project btw. Also I see your example was supposed to cause/test a stack overflow. Although I consider the possibility you intentionally posted that snippet here to troll people into telling you to use GOTO! :)

          1. Yes, it was intended to cause a stack overflow, to brag about a flag that does tail recursion. This technically makes it an optimizing BASIC compiler in 85 lines of code (assuming your Lisp compiles). Feeding trolls is just a bonus. Have a cookie :) Discussions regarding “not a real compiler” welcome.

            To me, the cool part was just the goofiness and using line numbers as tags (yes, Common Lisp has “goto”), the bad was quoting (it’s a macro), and the really ugly part is the PRINT “_” and “%” symbols instead of “,” and “;”

  2. The passing of a founder is sad news but the language he created will live on. What many do not realize is BASIC has evolved, over time, due to the efforts of some very talented folks. Their love for the language spawned such creations as QB64 and its offspring, QB64PE (Phoenix Edition). These new-age BASIC languages offer powerful tools to utilize established libraries, OpenGL, hardware acceleration, and provides memory only limited by the specs of your computer system. Functions and sub-routines have replaced line numbers and GOTO statements, although both can still be used, if desired. Honestly the versatility of the language today is quite amazing. I’ve written business applications, some with over 80,000 lines of code, and the apps perform as well as anything I could buy on the market. Frankly if BASIC wasn’t around, I never would have become interested in programming because the loss of simplicity, when coding in other languages, just doesn’t interest me.

  3. I first learned how to program with the flavor of BASIC on the TI-83 graphing calculators as a high-school student, then picked up books from the library to learn more languages (VisualBasic, PHP, Java, and on and on…)

    That first experience guided me towards studying software engineering in college. And as a result I’ve been working as a software developer for almost 15 years, all because of that first taste of BASIC.

    1. My first exposure to BASIC was on Wang 2200 in a lab where I was a medical technologist in the 70s. I couldn’t afford a personal computer until the TRS-80 and there was BASIC waiting for me.

  4. Basic was the language that introduced me to teaching the machine how to think. Flow, branching on a condition, using small parts to make a bigger whole.

    The article says “It was the perfect programming start for a 1970s or 1980s beginner, and once its limitations had been reached it provided the impetus for a move to higher things.”

    This was true, but in the opposite, once you learned the limits of the Basic language the next step was to learn either the Z80 or 6502 machine language to go beyond what Basic could do.

    If you wanted faster, or more compact programs you learned the way the computer really thought. You got your assembler out and banged the real bits.

    This is the true legacy of Basic. You learned to think in variables and loops and went on to think in addresses and conditional jumps.

    Thank you from all of us Mr. Kurtz.

    We would not think the way we do without you.

    -C

    1. Or…you could write Position independent code 8080 assembler, or use a embedded code routine that would fix up absolute addresses , take the object code translate to BASIC data statements and call those assembler routines from BASIC. Ask me how I know 🙂

    2. I recall being immensely pleased when I started using 6502 Assembly language and I realized that you could POKE values into specific memory addresses in order to trigger hardware events such as making sounds, changing colors on screen, switching fonts, etc.

  5. When I was 12 yrs old I wrote a PRINT statement on line 10 with my name. Then the next line…numbered 20…I decided to write GOTO 10. What happened next gave me the biggest smile and in retrospect gave me the career I have today.

  6. Though it was my first programming language, I was not a fan of BASIC until I saw how it could be implemented in 1,500 bytes of C source code (co-routining the parser and interpreter, compressing code with clever macrology). Any linguistic and performance shortcomings the language might have had, once upon a time, have long since fixed and enhanced by that obscure company in Redmond, Washington.

  7. Aw man. I got my first taste of programming in middle school in the 90’s with an Apple IIe and BASIC.

    My College didn’t have any CS degrees so I unfortunately didn’t get to do that, and it wasn’t until later in life that real projects and work resulted in me learning C/C++/Python and VBA.

    Despite not having a CS degree, I currently write automation programs for a living. As well as hobbyist stuff in RF. Contributed decent function to a variety of well know RF projects.

    10 Print “Thanks Thomas Kurtz!”

    1. AVR became popular in my country due to Bascom (basic… basically) course in popular electronic magazine. A friend of my went this way – he did a lot of really impressive projects wih it. Everytime I read Basic is not good for anything serious I think about him and his projects he did in first 2 years. Unfortunatelly employers were looking for C coders so he could not find job until he got experience in new skills.

      I guess jump from Arduino to C/C++ is less difficult than from Basic to C.

  8. Like others have said – BASIC served as an introduction to how computers ‘think’. If you can write code in BASIC, you can write code in almost any (common) language – the structures are all the same: loops, variables, conditionals.

    For fun check out “The Art of Code – Dylan Beattie” on youtube.

  9. Surely someone has knocked together a BASIC interpreter on Linux by now, so that you could just say “basic foo.bas” at the command line. I know that’s what search engines are for, but if people were to pile on with links, we could have a nice little resource here ..

  10. I still use BASIC. There are BASIC language compilers (not interpreted) that produce pure assembly code using do-loops and while-loops that don’t require GOTOs.
    So I’ll always appreciate his work. It’s still a great easy to learn & understand programming language.

  11. BASIC as it was in the 60s and 70s along with Fortran and COBOL are the easy beginner programming languages. That is a good thing.

    Despite what people constantly say Visual Basic, RealBasic, and VBA are NOT BASIC despite having the word in their names and I will thumb-wrestle anyone who says otherwise.

  12. BASIC as it was in the 60s and 70s along with Fortran and COBOL are the easy beginner programming languages. That is a good thing.

    Despite what people constantly say Visual Basic, RealBasic, and VBA are NOT BASIC despite having the word in their names and I will thumb-wrestle anyone who says otherwise.

  13. I started out with Applesoft BASIC on the Apple //e back in 1992. My elementary school had a bunch of Apple //e’s and a single Apple IIgs at the time that you could use at their after-school computer club, and one day I asked the teacher who ran it, a certain Miss Murphy, how I could program them. She gave me a ProDOS boot disk and lent me a manual on Applesoft BASIC and the rest is history.

    1. There was an Apple II in a discard bin at the local recycling center.
      When I pointed it out to an employee, he said something like “you are not allowed to look in there, please leave the building now!”

      I did get the impression that his mom dropped him on his head when he was a baby.

  14. Basic was the first I learned too back in high school. It whetted my appetite for computer science which I went on to graduate in in college. But … but when I found out about Pascal, Basic was left behind for good. Opened a whole new world. Much better structured language. In my career, Pascal, C, and assembly stayed with me. The Borland company kept Pascal alive with Turbo and then Delphi for desktop work. C and assembly for the real-time side of things. A few years ago we got rid of our last VB apps (yeah!) that previous engineers had written and replaced with Python as a better language. Very few call-outs now that the change is complete. Anyway, Basic was a good stepping stone back then, but better left behind or for those who want to get nostalgic about the past. Python now makes a much better language to start, as it can be used productively throughout ones career… Of course this is only my point of view given my experiences working for 38 years programming many many applications from real-time, desktop, server type applications.

    1. I forgot to add in our electronics lab, we use C64s using peeks and pokes in Basic for our little automation lab projects. My final project was a light following ‘head’ that turned via a motor. And yes a 555 was involved :) .

      RIP Thomas Kurtz . Inspired a lot of us to take up CS degrees.

  15. When I first turned on my first home computer, the MSX-1 Philips VG8020, I was greeted with a basic prompt. That’s how it all started for me. From Basic to assembly, to pascal, then AMOS basic and C on Amiga and PC and also QBasic, html, Javascript, php, C#. And C on microcontrollers like PIC and Arduino (various MCUs).

    That first taste, with a proper BASIC book explaining what variables are, for loops, if statements, print statements etc. introduced me to the world of programming. With example programs you could type from the pages showing various complex graphs and typing in large programs from magazines etc.

    I can imagine learning to program is a lot more complicated today.

    1. …hence the articles:
      Editorial: The reason kids can’t program today is because technology is making it harder, at https://developers.slashdot.org/story/18/02/17/0947212/learning-to-program-is-getting-harder

      Blog: The Duplo®code Fallacy, how industry & academia make it harder today for kids to start programming, at http://oneweekwonder.blogspot.com/2011/10/duplocode-fallacy.html and

      Report: 80’s kids started programming at an earlier age than today’s millennials, at https://thenextweb.com/news/report-80s-kids-started-programming-at-an-earlier-age-than-todays-millennials

      Early home computers like the C64 booted up instantly with the BASIC prompt, ready to take instructions in BASIC and put them in a program. There was no need to load it, fight through an installation, whatever; and they came with real manuals, the owner’s manual and the reference manual.

  16. I was lucky enough to be starting high school in 1980 in a town next door to Hanover, NH and Dartmouth College. Dartmouth would give high school students accounts on the DTSS system, which Kemeny & Kurtz and others created 1st. Then they could create BASIC. You could go to the Kiewitt terminal room and use a teletype or video terminal. There were other locations too. There were also 10 (IIRC) modems you could dial up.

    My high school, in 1980, had a teletype, an acoustic modem and a telephone we could use. A company called Tymeshare provided accounts to us. They ran DTSS and provided timesharing to companies. We’d dial up Tymeshare to learn BASIC. Sometimes, someone had a Dartmouth account & we’d dial it instead to play games. Once, 3 or 4 of use played HORSERACE*** and were making enough noise for the school librarian to hear us through the wall and come over to tell us to stop.

    My father got a TI Silent 700 portable teletype for his company. It had acoustic couplers on the back and used thermal paper (hard to find before FAX machines were common). I tied up the phone connecting to Dartmouth all the time. DTSS had something called conferencing where people could chat together. Usualy, there was one called xyz***, so you could join xyz*** and there were up to 20 people. It wasn’t just people on Dartmouth’s systems. There were other colleges, Bates, US MMC and I forgot the rest. I met lots of people that way, including many Dartmouth students in person. I even went on a date with a girl my age from the next town one.

    The next year, my school got Commodore CBMs, a PET and a SuperPet. A bit later, my parents bought an Apple ][+ that I eventually took over. I still kept up with the chats, even some when I came home from college.

    In college, we had Z100 computers and used Microsoft BASIC and Fortran for engineering work. That exposure to DTSS and BASIC lead to a career as a Unix Sysadmin and quality engineering in software today. I was lucky to have that start.

  17. BASIC is neither simple nor elegant, and it is much more complicated than other languages. i would struggle to explain its success beyond 3 factors: it’s fundamentally unstructured so you don’t have to learn structure before you start; it was available on every computer; it’s typically interpretted in its own interactive environment.

    i wish forth could have fulfilled that role instead. it was much less expensive to include on computers, has the interactive interpretter advantage, and is arguably much simpler than basic. but it requires you to learn structure to start up. the structure is absurdly simple but you have to learn it. that’s the struggle in a first language, you wind up making things more complicated just to avoid tiny start up costs. i would have taken quite a bit from forth but maybe no one would have thought to expose me at all to forth (an easy thing to imagine, since it’s literally what happened).

    as it was, yeah i got started in basic. i resented its limits almost immediately. especially its lousey performance, even in quickbasic (not qbasic – the separately-purchased compiler). and the lousey interface to the framebuffer. it led me to asic, which had a few syntactic changes that made me suspect there might be such a thing as a language where everything is a function call instead of magic syntax statements. so that was a huge benefit to me, because once i met C i immediately recognized the blessing that had been bestowed upon me.

    but far more pressing than the question of where i’d be if forth had come to me in 1990, the very real question: what of kids today who don’t learn basic, and who know computers a million times more advanced than anything they could hope to program on their first day. instead of having a significant fraction of the computer’s potential at your fingertips in gwbasic.exe, at first they can only program in tiny pidgin environments that they struggle to relate to ‘computing’ at all.

    love or hate basic, we’ve definitely lost something in its disappearance

  18. Mr. Kurtz, thank you for turning on a switch in our juvenile brains. You have been very helpful for human intellectual progress., leading young people think analytically, RIP

  19. My french teacher introduced me (well, us, his pupils) to BASIC on his own VIC-20 in the early 80’s
    He shared his leisure with us, young teenagers.
    This lead me to have my first computer: an Amstrad CPC464 on which I used to spend much of my after-school time learning BASIC and Z-80 Assembler (using an assembler software written in BASIC, reloaded from a cassette tape after each crash).

    This was in the French countryside in a very small village.

    Then I moved to GFA-Basic on Atari ST (what an awesome language it was).

    Then I became a software engineer, still enjoying writing software and learning new languages, at 52 (and lucky to work in a company where having a technical position at this age is still possible).

  20. I remember get a book about Programming in BASIC from McGraw Hill and found it fascinating at my 12 years old and learn and practice in a Vic 20 and latter a Vic 64. BASIC introduce me to the programming world and remember stay in front of my computer monitor countless hours practicing and resolving problems or simply typing others programs in magazines and see how it works. Thanks to Mr Thomas Kurtz co-inventor of BASIC Language

  21. Literally my first program ever (listed in the article) but with my name instead of “HELLO HACKADAY!” and I probably got the biggest dopamine hit of my life up until that point. I’ve been addicted ever since. I like to think I’m a functional addict though.

  22. How many careers and how many great achievements in computing were sparked or at least encouraged along by the work of Mr Kurtz?

    Without the success and social impact of the BBC Micro would we have had ARM, would a young David Braben have written Elite, would we have the Raspberry Pi now? Of course none of that is solely down to one man, but still what a legacy to be involved in.

  23. I started out with APL back in high school (and still find it useful today). When I first encountered BASIC I was amazed at how verbose it was. But both of these are excellent first languages for people starting out in computer science. Interpreted languages allow people to experiment easily by typing in single expressions, without having to write an entire program, and displaying the results. You can start with the simpler aspects of the language and work your way up. APL and BASIC also catch many types of common errors and display meaningful, understandable error messages, often with an indication of where the error occurred in the statement (e.g. by printing out the offending statement with a caret or dollar sign under the location of the error). This is a big help in learning the language. So I think that even today it would be a good idea to start students out with one of these languages and let them learn the basic concepts of programming before having them move on to more complex (and often frustrating) languages such as Java, C, or C++.

  24. We’ve not written a serious BASIC program in over three decades

    I wonder how you define “serious”? (Not intended to be derogatory, just curious.) Is it a large number of lines, an often used task, usefulness of the program, …? I have BASIC programs I consider “serious” running on my desktop all the time (read: 24/7). Its still the fastest way to bang out some code. For me it sits somewhere between BASH, AWK, Python and C/C++. I should mention that I’m using Pi Shack Basic on Linux. Its ability to interact with other programs and to dynamically flesh out ideas is unmatched by anything else I’ve used (including Python). I use it a lot for Linux admin scripting and building various things from SBCs.

    I’m not much into “programming religions”: Thou shalt not “GOTO”. Thou shalt not “super super”. Thou shalt not “try … finally”. Thou shalt “wrap it in a ‘guard’ class”. Thou shalt not “use pointers”. … I figure a language should empower a user to do anything the microprocessor can do, with the least resistance. And while the various “religious laws” can be helpful in writing better code there are far too many times where they just make “busy work”, such as trying to fit a decision mesh into a tree structure. You end up writing more code and using more variables to make it fit, simply to appease the language.

    From a learning standpoint: if you stick to line numbers, single statements per line, GOSUB, GOTO and only a “GOTO” on your IF statements, you get a very good idea of how microprocessors actually work. I’m not saying don’t use the more advanced features like “do loops” or “functions”. But if you want to know what’s actually going on in the hardware it all boils down to addresses (line numbers), “jumps” (GOTO), conditional jumps (IF … GOTO) and on more CISCy chips CALLs (GOSUBs). Most modern languages obscure what is actually happening behind higher level constructs and libraries. Not really a bad thing. But to really understand the “machine” you need to peel back the layers. And that is one of the things I liked about BASIC. It gave me a good idea of how to approach my first machine code / assembly language programs.

    And as a teaching and general productivity tool it still is a complete success. Thanks Kurtz!

    Can you guess what this does?

    DELIMIT #1," ""\"
    OPEN "i",#1,"|zcat access.log-20241117.gz"
    OPEN "o",#2,"|awk '{ h[$0]++ } END { for(ua in h) print h[ua] ""\t"" ua }' | sort -rn | less"
    DO UNTIL eof(1)
       INPUT #1,ip$,site$,auth$,tm$,zn$,req$,code%,sz%,refer$,ua$,dur%,ses$
       IF left$(ip$,3)="89." OR left$(ip$,3)="84." THEN
          PRINT #2,ua$
       END IF
    LOOP
    CLOSE #2,#1
    

    And my website stalker is “pancient.com”!

  25. My first contact with BASIC was in the early 80s – my Sharp pocket calculator could also be programmed in BASIC. Up until then I hadn’t the slightest idea about computers and their programming, but after I programmed a simple word guessing game on the Sharp out of boredom, I was hooked for the rest of my life :-)

    Oh yes – today I collect and restore the Sharp BASIC programmable “pocket PCs”.

  26. Thank you Thomas. You are the reason I am a programmer today. Your language enabled me to learn the logics of programming and opened the door to so many other languages. There must always be an accessible language available for budding untrained computer enthusiasts; BASIC was perfect in this situation. I am sad to see the decline in BASIC, but I am enthused to see Thomas’ legacy “to program with a minimum of effort ” living on in new languages.

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.