dxbydt 7 days ago

96! Lived a full life. RIP.

I wrote a lot of QBASIC. 1986-90ish, old Bangalore. I was 12. There was no Mac or Unix or Windows in India those days. Only MSDOS. I had a 386 box. I would insert a 5.25" floppy, boot into command.com, then CD to GWBASIC.EXE and enter GWBASIC. Wrote a lot of GWBASIC to annoy friends and family by emitting high pitched sounds. You could do SOUND 2000+i, j, where i is the frequency & j was duration. You could even control volume from BASIC. I would put that in a WHILE WEND loop and make it go crazy. People didn't know how to turn it off once it got going. Then suddenly one day DOS went away and we had something called MS WINDOWS 3.1 and you had to insert a white round ball into a mouse and click on icons, no more command line, and even GWBASIC was gone, they put QBASIC and it came with snake program. Then I got into the graphics craze. We had a CGA & so I did SCREEN 2, then used LINE and CIRCLE to my heart's content. Few colors only. Then we upgraded to VGA monitor then SCREEN 12 was a full 640x480, I wrote QBASIC to make annoying sounds while drawing. It was an amazing childhood, thanks to this miracle language. BASIC led to something called CLIPPER, then I did some FOXPRO, got paid actual rupees to write an inventory control system in FOXPRO, then MFC, Borland C++...all the way upto today.

But it all started with BASIC. Amazing language. Thank you, Dr. Kurtz.

  • gtirloni 7 days ago

    Same here, owe him a lot it was also my first programming language (on 286's).

    It's interesting that you mention GWBASIC specifically because that was also the BASIC I had access to. It doesn't seem this variant was popular in the US.

    Also learned CLIPPER and created all sorts of tools and business apps. Yet another thing that seemed very localized.

    • 0points 6 days ago

      IIRC, I got GWBASIC from the official MSDOS 3.3 install discs. One had to write code using the EDLIN editor.

      I live in Sweden.

      PEEK and POKE:d my way to my very own computer.

    • dmd 6 days ago

      GW-BASIC was definitely quite present in the US, being the one shipped by Microsoft with DOS up until DOS 5.

WalterBright 7 days ago

I originally learned to program with BASIC. When I was designing D, I thought back to how easy and natural string manipulation was in BASIC, and what a festering swamp of bugs it was in C.

Having strings as easy and correct in D was a major priority, and history has shown that this was a success.

P.S. Whenever I review C code, I first look at the string manipulation. The probability of finding a bug in it is near certainty. Question for the people who disagree - without looking it up, how does strncpy() deal with 0 termination?

Thank you, Thomas Kurtz!

  • DamonHD 7 days ago

    Arrrgh! I think that I may have unintentionally insulted you in about 1987 when (as a callow youth) I was trying to pick a language for an embedded/robotics system. I believe that I spoke to you on the phone about ... ahem ... C, which you answered politely but somewhat through gritted teeth...

    In the end I went for C, and the OS ended up in this thing: https://www.youtube.com/watch?v=u8ZEUwwOYxo&t=72s

    I still cringe about that call!

    • WalterBright 7 days ago

      What was the call about?

      Don't worry about it, I don't remember it! I have come to regret a lot of stupid things I said when I was younger.

      • DamonHD 7 days ago

        Well, it was a while ago... I was trying to choose a language to use for our start-up's tiny (2kB EPROM, 2kB RAM?) Z80A system, alongside some assembler, and I was basically having to write an OS/runtime for the robot that I designed the hardware for as well. I was about out of my depth. Candidate languages were, I think, BCPL, B, C and D, and I got mixed up and spoke to you about C. (It is possible that I spoke to the B or BCPL guy rather than you.) But in any case, asking one language's creator to extol the virtues of a different language is not clever! %-P Ouch!

        Does the name "Grey Matter" ring any bells for you? (Software reseller, still seems to exist...)

        • WalterBright 7 days ago

          Back in the 80s, a coworker (knowing I was in the C compiler business) came to me and asked "my husband wants to get into C programming, which compiler should he use?" (At the time, there were about 30 C compilers available for DOS.) I replied, Datalight C!

          She laughed, touched my elbow, and said "oh no, not your compiler!"

          Another coworker (Eric Engstrom, yes, that guy!) heard this and let out huge belly laugh. She suddenly realized what she had said, and got very embarrassed. (I won't print her name. I've long since forgiven her! I just thought it was funny.)

          Good ole' Eric. Truly larger than life. I miss him.

        • WalterBright 7 days ago

          1987 predates D by about 15 years!

          No, I don't recall the name. It was a long time ago. Sorry.

          • DamonHD 6 days ago

            Ah, I may be off the hook. Thanks anyhow!

  • 8bitsrule 6 days ago

    BASIC was the language in all the magazines that responded to people who wanted to try ideas in their new microcomputers. Tens of thousands of us, at least (some so glad they took those high-school typing courses) simultaneously keying in those pages. And then, we'd think 'hey, I want to try this' and either succeeding or looking for more powerful BASICs ... leading to peeks, pokes, even assembler. A blast, and that feeling of empowerment!

    Thank you, Thomas Kurtz!

  • Gibbon1 7 days ago

    I was thinking that same thing recently with the embedded code I work on. I was thinking if BASIC could handle strings on Z80 with 4k of ROM and 16K (woo hoo!) of static RAM why do I have to put up with C strings on an ARM running at 48MHz?

  • the_af 7 days ago

    Wow! I've read your comments many times on HN and I never realized you were the creator of D.

    • samatman 7 days ago

      I still think of Walter as the creator of Empire, who later went on to create D.

      The FM synthesis Hall of the Mountain King will be burned into my memories forever.

      • WalterBright 7 days ago

        I keep thinking about training an AI to play Empire. It would kick ass!

  • GauntletWizard 7 days ago

    I'm going to give it my best guess- it will copy up to n bytes, including the null byte if present in n, but not adding a null if the nth byte isn't a null, requiring you to set the last byte to 0 manually, whether that's allocating n+1 bytes or truncating the nth.

    • WalterBright 6 days ago

      Even if you're right, you said you were guessing, meaning you'd have to look it up.

      To add insult to injury, snprintf does it differently.

      • GauntletWizard 4 days ago

        Yes, it's the most obnoxious behavior I could think up - Which meant I was sure it was correct, but not the kind of sure I'd want to rely on.

        I also refreshed myself on snprintf, and as un-ergonomic interfaces go, they did a good job with what they had... But I will gladly take my golang multiple return values, now that I have them.

            So, only when the returned value is non-negative and less than ‘n’, the string has been completely written as expected.
kevindamm 7 days ago

The legacy of BASIC is outstanding. I learned BASIC because there's a BASIC ROM in the hardware of the Atari 800XL that I was fortunate to have access to when I was very young. The language was easy enough to pick up from sample programs in the back of its instruction manual, even for a kid who didn't know anyone who knew anything about computers.

I never met Kurtz personally but I owe a lot to that language for the access to virtually limitless creativity that computers and computer programming have offered. My life would be very different if I didn't have the opportunity that the language provided, especially because it is both approachable and (somewhat) capable.

Sure, it's not the best language for large scale or complex efforts, but it was enough for a child to be able to build text adventures and blit pixels to the screen (it would be another decade before I found out that INT was about interrupt, not integers). Then, as a teenager fooling around with writing games for the class calculators in TI-BASIC, even though that's a bit farther down the language family tree, that also had a positive impact on my growth as a developer and it was the first of many "same but different" experiences that you so often get in the realm of programming. I was also quite fortunate, that launched an early game dev career for me.

To be honest, I wouldn't have recognized the name Thomas E. Kurtz before yesterday, but my mind will light up with dozens of fond memories at the mention of BASIC. I'm not surprised that he was so involved in instructional computing (but I am surprised I never looked into the author(s) of BASIC before, a little ashamed, but I'll remember his name). I actually still have the same Atari 800XL from my childhood and I'll think of him when I see it now.

  • 0points 6 days ago

    Yea, same. But with the Commodore 64 BASIC.

oliviersca 7 days ago

I wrote my first line of BASIC in 1976, if I remember correctly! I was 15 years old, and my dad and I went to a trade fair. There was an IBM booth there. A man invited me to try a moon-landing game. It was on an IBM 5100. I asked my dad what happened to the characters that scrolled off the top of the screen! Since he wasn’t at all into tech, he asked the IBM engineer to explain it to me. And that’s when I knew it was my thing! I wrote my first few lines of BASIC right there! The following year, there was a Hewlett Packard booth where an HP-9825A (I think?) was drawing Lissajous figures on a plotter. I was mesmerized! The next year, I start working during my holidays to buy an HP-25. The year after that, I got a TRS-80 Model 1 Level II and started programming it in BASIC. I didn’t know much at the time. I even bought the Editor/Assembler, thinking it would increase the screen resolution! After that, it was an Atari ST (with Megamax C and GFA BASIC), and then PCs with a whole variety of languages ...

What has always impressed me is that some people managed, in just a few days, weeks, or months, to invent languages used by millions of people, sometimes for their entire lives! What an impact!

Mr. Kurtz, you may not have created the best language, but what you did create brought joy and inspired a whole generation of young programmers. Joy that, I feel, has somewhat faded today. Unless you’re coding in Rust!

Thank you, Mr. Kurtz!

  • systemBuilder 7 days ago

    OMG you lived my dream. In 1976 I was 14 years old and started programming for the first time on the PLATO SYSTEM (university of illinois), the first computer with plasma screens, 1000 terminals, SOCIAL NETWORKS, MICROSOFT FLIGHT SIMULATOR (it was called airfight was the name back then), the FIRST DUNGEON GAME (pedit5 / dnd). As I mowed lawns I dreamed of buying an HP-25 or SR-52 calculator or maybe an IMSAI 8080 computer of my own so badly! I eventually taught PLATO how to simulate a pocket football game, and wrote BASIC programs using a toy interpreter but they didn't have a way to store programs when your session was finished! :-(

cfmcdonald 7 days ago

I interviewed Thomas Kurtz at his home in 2010 for my dissertation on the "computer utility" vision of the 60s and 70s (which foresaw a world of large computer utilities that would function like AT&T or an electrical power company, but for electronic services).

He was long-since retired, but still living in the hills of New Hampshire near Dartmouth. Unfortunately I can't find my interview notes right now, but I do remember that he was very kind and welcoming. What he and John Kemeny did at Dartmouth was truly remarkable. For them the technology (time-sharing and BASIC) was a means to an end of educating and empowering students, and ultimately society as a whole.

  • toomuchtodo 7 days ago

    We would love to read your dissertation if you don't mind sharing.

    Edit: Thank you for sharing! Looking forward to reading it.

    • cfmcdonald 7 days ago

      It's available on my blog website: https://technicshistory.com/wp-content/uploads/2016/11/cfm_7...

      I did capture there his most choice quote from the interview:

      > Kurtz later said that he and Kemeny saw MAC's agenda as totally different from Dartmouth's--MIT was trying to design the theoretically best computer utility, with layers of security "and all that kind of crap."

EvanAnderson 8 days ago

Could we get a black bar for Dr. Kurtz, please?

The legacy of BASIC on our industry can hardly be understated. The language and its mission at Dartmouth was innovative.

BASIC had immeasurable secondary effects simply by being the first programming language so many new computer users were exposed to (particularly near the dawn of personal computers).

Edit: I got sucked into some nostalgia.

Here's the 1964 edition of the Dartmouth BASIC reference: http://web.archive.org/web/20120716185629/http://www.bitsave...

It's really charming, and I think it gives you a bit of the feel for the time.

(I also particularly like, on page 21, the statement "TYPING IS NO SUBSTITUTE FOR THINKING".)

  • marsten 7 days ago

    That manual is a great find! Dr. Kurtz was surely way ahead of his time in aiming to bring computing to the masses, well before the microcomputer revolution. BASIC was an easy onramp to programming that hooked a ton of people on computing, especially kids of the 70s/80s like me. He shaped the future as much as anyone.

    • ghaff 7 days ago

      The funny thing is that I went undergrad to some big name tech school in the late 70s and you barely had access to computers without a specific need or for specific coursework. (I took FORTRAN using punch cards and a mainframe.) At Dartmouth for grad school, access to computing resources was much more democratized, even though I was working in material science.

      • pasc1878 7 days ago

        The reason for that is simple. money.

        In my first year FORTRAN or cards as you say then the University department bought a mini and used BASIC.

        • ghaff 7 days ago

          About the next year the joint computer facility (i.e. non-EE/CS) got a VAX but I never had a particular reason to get an account.

          Looking back, the EECS department was actually a pretty active center for computer-related research. But computers weren't widely-used elsewhere at the time.

  • matwood 7 days ago

    The legacy was huge for me. As a kid I would type BASIC into our TI “computer” that hooked up to our only TV. I was labeling cables hoping no one would cut the power. We had no disc drive to save what I typed.

    Then years later as a college freshman during the dot com boom I got my first job writing VB. Literally changed my life and put me on a path where I was able to be better off than my parents.

  • pieter_mj 7 days ago

    In the manual they have the symbols for zero (0) and the letter O switched.

    This leads to the statement : F0R X=1 T0 1OO.

    Was it really that way back(wards) in 1964?

    • alexjm 7 days ago

      It's most likely legacy from pre-computer unit record equipment. These machines could only handle numbers and printed zeros without a slash because there was nothing to confuse them with. When letters were later added, it was the new character that got the slash.

      Additional citation hunting from 2020 when the BASIC manual was shared & discussed here:

      https://news.ycombinator.com/item?id=25462835

  • CRConrad 6 days ago

    > The legacy of BASIC on our industry can hardly be understated.

    The expression you're looking for is “the legacy of BASIC on our industry can hardly be overstated.” You're trying to say its legacy is huge; whatever anyone says, it won't be an overstatement. If it “couldn't be understated”, however insignificant one said it is, that would still be true. That wasn't what you meant, was it?

    (And yes, that means user emptiestplace’s comment didn't deserve to be downvoted into oblivion.)

  • johnnyanmac 7 days ago

    I suppose it took a day, but there was nothing spookier than replying on a different thread only to update with a black bar and me frantically trying to figure out what happened over the course of a few minutes of my typing.

peagreen 7 days ago

Tom Kurtz and John Kemeny and BASIC changed my life, too. I wrote my first BASIC program in 1970 [0] and starting in high school the next year spent hours with the Model 33 Teletype in our school's computer room, programming in BASIC via the school district's HP-2000 time-sharing system. Ultimately I decided to go to Dartmouth because of their undergraduate computer philosophy. Any kind of computer access was a big deal back then, and being able to program really distinguished you compared to the rest of one's age cohort when it came to applying for grad. schools, jobs, etc. So I feel like I've been riding the crest of that early 1970s wave ever since, despite the explosion of skilled people in younger cohorts.

It was a remarkable and fleeting time. If I were 13 years old now, I don't know of a comparable skill that could so effortlessly propel a person forward.

[0] Here it is:

   10 LET N=5^2.5

   20 PRINT N

   30 END
The answer (55 and something) was a revelation. I didn't know about logarithms then, so the meaning of fractional exponents was a complete mystery. I had to ask my math teacher to make sense of the answer.
  • fuzztester 7 days ago

    Being rusty at school math, I was going to ask you how to solve that, then decided to google it.

    I typed "5 to the power of 2.5", and after a few clicks, got this (with 'math solver' shown in the search box:

    https://www.google.com/search?q=5%5E(2.5)

    There is a button to show solving steps.

    There is also a Quora answer that shows two different ways of solving it, using properties of exponents.

    Cool. Now I need to go brush up on my school math. :)

    • peagreen 7 days ago

      Simplest way = 5 * 5 * sqrt(5). But logarithms offer a more general approach. The math comes back fast. :-)

dlachausse 8 days ago

Like most of the programmers of my generation, BASIC was the first language I learned. BASIC was so pervasive in the 80s and 90s. Nearly every computer came with a copy of some flavor of BASIC. Even my 6th grade math textbook had an appendix with educational math games in the form of BASIC source code listings.

So long and thanks for all the fish Dr. Kurtz!

  • runevault 8 days ago

    I ended up using multiple versions of basic because the various boot discs we had came with different versions. Off the top of my head I remember BASIC, BASICA, and QBASIC. Not that I remember the differences between the flavors any more.

  • fuzztester 8 days ago

    Why "thanks.*fish"? (regex, chill ;)

    I know it is a saying, have read it before, but would prefer to hear the explanation from a person rather than Google.

    • jpc0 8 days ago

      Hitchhiker's guide to the galaxy

      • mmcdermott 8 days ago

        To add to this, it is revealed in Hitchhikers that dolphins are super intelligent extraterrestrials. "So long and thanks for all the fish" is the superintelligent dolphins farewell to the last of earth/hummanity.

        • rswail 7 days ago

          I thought it was the mice that were the super intelligent extraterrestrials?

          • markedathome 7 days ago

            The mice were the mechanism by which the hyper-intelligent, pan-dimensional beings observed their experiment. The experiment being "what is the Ultimate Question?" by running a 10 million year simulation.

          • kaba0 7 days ago

            I believe we were only the 3rd most intelligent on Earth, or something like that? Both dolphins and mouse being more intelligent.

        • fuzztester 7 days ago

          if they are extraterrestrials, wtf are they doing on terra, or rather, in / under oceania?

          /jk

          also, no way they can be superintelligent, if they came here, even once. bcoz, u no, shipz propellers, orcas, etc.

          • schoen 7 days ago

            I'd say Douglas Adams novels are full of superintelligent and/or superpowered entities that don't always think things through properly. There's a serious Murphy's Law flavor to his scenarios, even if you're the President of the Galaxy or the Man Who Rules the Universe or a planetary engineer or the most intelligent robot ever built or whatever. You're still going to trip and fall, or experience unrequited love, or get stranded on a boring planet, or have an embarrassing misunderstanding, or concoct a wacky scheme that goes wrong somehow.

            • kaba0 7 days ago

              Given human events, he was not wrong in that conclusion. (If we even consider ourselves super intelligent)

        • fuzztester 7 days ago

          that's rather finny :)

          or fishy.

linsomniac 7 days ago

I also cut my teeth with BASIC. First was on the Apple ][s at school, then I got a Vic-20 at home. A lot of the cooler games for the Vic-20 were just a boatload of integer data you had to type in from magazines, not a very educational experience. Then I got access to an HP system with Rocky Mountain BASIC, which was a pretty sweet system. A few years later I got my first professional experience by working on the RM BASIC port to HP/UX as a tester. ~5 years later I came back to RMB working on a production test management system called Functional Test Manager, and I just had lunch with a guy I worked with on that a couple days ago.

BASIC was, I'm realizing as I write this, an integral part of my career. RIP Thomas.

whartung 7 days ago

What’s curious is how one of the reasons Pascal was derided was due to the limitations of the original system followed by the incompatibilities of the implementations that reached the market.

Meanwhile, BASIC, which I think it could be argued was the backbone of the mini and micro computing industry for 20 years, was all over the map in terms of implementation and features.

None of the BASICs I used were compatible outside the fundamentals of expressions and the core data types, and even then they all handled strings differently.

  • coliveira 7 days ago

    The difference is that BASIC was an interpreted language, which was considered to be necessarily non-portable and only useful for teaching and small scale systems. And in fact we have no large software written in pascal (at least the original version). Pascal was designed as a compiled language that could potentially be used to write large scale systems, but had serious limitations in this respect.

    • samatman 7 days ago

      > we have no large software written in pascal

      What? This isn't true at all. TeX was written in Pascal. The original Macintosh operating system was written in Pascal, then hand-translated into assembly to fit in ROM. Pascal was very widely used in the minicomputer and microcomputer eras, there were absolutely large software programs written in it, many of them.

      And yeah if we're going to go with "at least the original version" then you get to ignore all the Pascal written when Turbo Pascal came on the scene. Though I don't see the point in doing that.

      • coliveira 5 days ago

        I meant to say BASIC instead of Pascal in that sentence.

  • AnimalMuppet 7 days ago

    It seems to me that people had different levels of expectations for BASIC and Pascal.

    BASIC was a teaching language. Yeah, people pushed it to write production systems, but it was still a jumped-up teaching language, and everybody knew it. People did serious work with it, but it was still a "toy" language. If you had a serious program written in BASIC, it wasn't expected to be portable.

    Pascal started as a teaching language, too, but it got taken more as a "serious" language. (To be fair, it did have far better control constructs than BASIC...) It got hyped as a "serious" language. But it wasn't able to reach the bar set by those expectations, for the reasons you state.

    Could you have written the same applications in Pascal that were written in BASIC? Almost certainly. Would you have been better off doing so? Definitely.

    Maybe the difference was, BASIC was more approachable - it was something a 10-year-old could tinker with. Pascal was more a thing that college kids could tinker with. So Pascal had higher expectations. The same kind of limitations were more a violation of the expectations.

pjmlp 7 days ago

Like many BASIC was my first programming language, Timex 2068 BASIC to be more exact.

Followed by GW-BASIC and Turbo BASIC.

Not only it was my entry path into the computing world as a kid, it also showed me how to do systems programming in a language kind of safe, alongside Z80 and 8086 Assembly.

Turbo Pascal was the next in the learning path, after those BASIC variants.

Many thanks to Dr. Kutz and Dr.Kemeny, and those that built upon their work, for setting me free into the computing world without being tainted C is the true and only path to systems programming.

pie_flavor 7 days ago

My first programming experience was with BASIC on my dad's TRS-80 machine. (In 2011.) It's crazy to think of the impact this man had - a whole generation of computers put scripting tools straight in the user's hands when they could easily have turned out purchased-software-only. A lot of devs were minted from Kurtz's tools.

smarks 8 days ago

Like several others here, my first programming language was BASIC. For this we owe Kurtz a debt of gratitude.

I know Dijkstra is famous for having said that we're mentally mutilated beyond hope of regeneration, but you know, I kinda think we didn't turn out half bad.

  • microtherion 8 days ago

    I know literally zero working programmers who learned programming the way Dijkstra thought it should be taught — not even Dijkstra himself, as Donald Knuth once gently pointed out.

    Practically everybody in my generation started off with BASIC. On the other hand, at some point (when?), this practice stopped, and the newer generations turned out fine starting out with more civilized languages.

    • nonameiguess 7 days ago

      To be fair to Dijkstra, he was writing about how he believed university students should be taught. Two years before that cruelty paper was published, I was getting my first exposure ever to computer programming when my parents bought a Commodore 64 that came with a BASIC manual that showed how to make a Pong clone. I was 6 years old.

      There's maybe an analogy to riding a bike. If you're aspiring to compete in a grand tour, you probably want power meters, lactate threshold and VO2 max tests in a lab, training that is principled and somewhat scientific in the way it builds toward a goal. If you're 6, your parents just put you on the seat and push you until your balance gets good enough that you can take the training wheels off.

      • CRConrad 6 days ago

        > If you're 6, your parents just put you on the seat and push you until your balance gets good enough that you can take the training wheels off.

        Which can take a very long time, because you have training wheels to begin with. If you're about to teach a kid how to ride a bicycle, it's far better to do without them. And the pedals too; learning how to use those is a huge distraction from learning to find and hold your balance.

        There are special “kick bikes” for tiny tots to propel by kicking off the ground. And some of those can later be converted into “normal” bikes by attaching a chain drive, but... Feels kludgy, and is usually rather expensive.

        If you can find an ordinary bike where you can get the saddle low enough for your kid to reach the ground with their feet, just remove the pedals and let them use that as a “kick bike”. If you can find a (gentle!) slope to practice on, you'll be able to replace the pedals in a matter of a few weeks at most, or probably days.

      • microtherion 7 days ago

        Yes, Dijkstra was writing about the education of university students. I don't know whether he ever wrote anything about elementary school (or earlier) computer education, but I doubt he'd have approved of it, let alone of a hands on approach.

      • lars_francke 7 days ago

        Total aside: Training wheels are a thing I remember from my youth but today (at least here) they are barely used at all anymore.

        I'm still used to the phrase (taking the training wheels off) but I'm fairly certain my kids will grow up not using it.

        • rswail 7 days ago

          The sort of pushbikes for littler kids lets them learn balance and steering before also having to learn how to pedal and brake.

          So half the learning happens on those pushbikes before they move to real bikes.

    • niteshpant 7 days ago

      Consider me naive, but what way did Dijkstra thought it should be taught? Someone who first learned to code in QBASIC

      • schoen 7 days ago

        Other commenters are completely right to mention his concern for proofs and the "Cruelty of Really Teaching Computer Science", but the most BASIC-specific thing that he was associated with was criticism of the GOTO statement.

        https://homepages.cwi.nl/~storm/teaching/reader/Dijkstra68.p...

        In original BASIC, the GOTO is a foundational mechanism and a majority of programs would have used it, sometimes extensively. Dijkstra thought for many reasons that this wasn't good style and didn't promote clear thinking. And yes, one consequence of that is that it would be harder to prove programs correct or just to reason about whether they were correct.

        Programs that overuse GOTOs (or from the point of view of later structured programming and functional programming advocates, perhaps programs that use GOTOs at all) were stigmatized as "spaghetti code".

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

        By the way, this concern is not just about aesthetics: some of the ideas that Dijkstra was advocating are arguably those that newer programming languages like Haskell and Rust can use to find bugs in code automatically at compile-time, or to make it harder to write certain bugs at all. The line between Dijkstra's advocacy and these techniques is complicated but I think there is a connection. So partly we might say that Dijkstra was not just concerned with how to make it easier for humans to think clearly about program correctness, but ultimately also about how to make it easier for computers to help humans automatically determine (parts of) program correctness. And it's true that the GOTO style complicates that task.

        • tinco 7 days ago

          Kind of ironic that nowadays many people in our generation consider the newer generations to be lacking fundamental education because they never used GOTO based programming languages. I've talked to multiple people who lamented that young programmers have never done assembly or BASIC.

          • numbsafari 7 days ago

            It’s helpful to have a mental model of how the computer works. I don’t know if it’s necessary that one have spent mountains of time building real software using a GOTO/jmp style, but having exposure to it would be nice, rather than hiding it away.

            Jeff Dunteman’s assembly programming books included a “chapter 0” that I always loved, and which really stuck with me for how creatively they taught those topics.

            • kaba0 7 days ago

              I mean, CPUs do a bunch of work to make us believe they still operate just as a fast PDP-11, and I would wager that besides compiler experts that work on the backend parts of compilers, not many people have a real feel for modern hardware (obviously besides those that actually work on that given hardware).

              So I'm not convinced that even those who think they know how it works know it actually.

              • numbsafari 5 days ago

                We need updated board games that replicate the function of a CPU.

          • shermantanktop 7 days ago

            Assembly? Sure, that has some educational value.

            BASIC? That’s just nostalgia for poverty.

            • leoc 7 days ago

              Not entirely. GOTO can be pretty nice! And even the lack of structs probably has the advantage of helping to prepare you for today's world where column-major is back in style, for performance reasons.

      • microtherion 7 days ago

        Dijkstra thought of computer science as a subdomain of mathematics, and thought that hands-on experimentation with actual computers would mostly lead students astray. A program should all be worked out and proven correct before (optionally) feeding it to a computer, and testing and even more so debugging were abhorrent practices.

        BASIC, on the other hand, is more aligned with what Seymour Papert later came to call "Constructionism": the student learns by experimentation.

        • tasty_freeze 7 days ago

          It is the "correct by construction" approach vs the "construct by correction" approach.

        • systemBuilder 7 days ago

          Dijkstra was silly because everybody knows that Computer Science is the parent field of mathematics.

          Mathematics is the study of all O(1) algorithms.

          Computer Science is all other algorithms!

        • FuriouslyAdrift 7 days ago

          That's how it was with CS at Purdue when I was there in beginning of the 1990's.

          It was Computational Science, not Computer Science, and was in the math department.

          We did everything wiht pen and paper until I got into my 300 level classes and we got access to the NeXT cubes and IBM 3090.

          I ended up switching to networking and the tech track, but it was definitely different...

          • microtherion 7 days ago

            Ironically, I grew up with limited access to computers, so I wrote many programs on paper first, including a FORTH implementation in assembly language I wrote over summer break with a typewriter, waiting for school to start again so I could actually test it hands on.

      • themadturk 7 days ago

        He probably thought programming students should be taught Pascal, the academic language he pioneered. It is quite different from BASIC.

        • Jtsummers 7 days ago

          Pascal was Wirth, not Dijkstra.

          • themadturk 7 days ago

            Sorry, misremembering my meager computing history...

  • lgeorget 7 days ago

    My first ever programming language was VBA for Excel because I found a magazine with a tutorial on that laying around in my father's office, no idea why. I think the second one was the Basic on my Texas Instruments calculator.

  • crest 7 days ago

    Enough LISP and Assembler can eventually cure the worst BASIC inflicted brain damage, but some scars remain.

BurningFrog 7 days ago

BASIC was my programming mother tongue in my Swedish high school in 1975!

It took a while before I let go of my suspicion of languages without line numbers :)

Maybe I would have picked up programming later some other way, but I'm not at all sure. So BASIC may have set me on a very rewarding path in life!

nettework 20 hours ago

I interviewed Tom Kurtz in 2017. He was so generous, and as brilliant as you'd expect. He wrote me a memo on "Grammatical Simplifications in BASIC." He loved memos--was an academic mathematician at heart, even at 89! It was his idea to make computing accessible--he (modestly) credits Kemeny with all the other ideas about BASIC and the Dartmouth Time-Sharing System (DTSS). I wrote about the interview here: https://annettevee.substack.com/p/thomas-kurtz-basic-and-com.... The Birth of BASIC documentary that Dartmouth did for the 50th anniversary is excellent and features him prominently: https://youtu.be/WYPNjSoDrqw

YZF 7 days ago

BASIC on the Sinclair ZX-81 was how I started somewhere around 1982. A whopping 1KB of memory. 24 lines of 32 characters each. Hooked to my parent's TV with me coding on the floor.

RIP

themaninthedark 7 days ago

Old BASIC programmers don't die they just GOSUB and without RETURN

wslh 7 days ago

RIP. An interview [0].

I started learning Logo as a kid on a TI-99/4A, and I was fortunate to have a personal teacher who introduced me to BASIC on an Apple II/e-compatible computer (Franklin ACE 1000). This early exposure allowed me to explore programming in all directions and share my knowledge by teaching and helping friends on various platforms like Commodores (including the Amiga), Sinclairs, Texas Instruments, MSX, BBC, and more. BASIC truly was everywhere.

BASIC also served as a bridge to Assembly language [1], with powerful features like PEEK, POKE, CALL, and SYS. It’s remarkable that Visual Basic later became such a success, ultimately passing its legacy to .NET in more recent times. There was also a trend of microcontrollers supporting BASIC around the 2000s.

On a personal note, I was amazed as a kid when I discovered the power of MID$ and used it to write my own programming language. That experience felt like pure magic.

[0] https://www.dartmouth.edu/library/rauner/archives/oral_histo...

[1] http://swain.webframe.org/tshirts/peek_and_poke_zoom.jpg

seism 2 days ago

A language that changed the lives of millions of people - myself included - who couldn't go to learn C or Pascal in grad school just to get started with coding. I imagine that modern alt-tech culture from hackspaces to hackathons - owes much to you as well. Also, I am heartened to learn that one of the first precursors of BASIC was DOPE.

Lighting the candle in a way Mr. Kurtz would have appreciated: https://graphics.social/@seism/113516128540983344

RcouF1uZ4gsC 8 days ago

    10 PRINT “WE REMEMBER KURTZ”
    20 GOTO 10
  • nurettin 7 days ago

    in commodore if you put a comma at the end of the string, it will put a space and continue on the same line, providing more amusement as it scrolls less regularly.

        10 PRINT "WE REMEMBER KURTZ",
        20 GOTO 10
ColinWright 7 days ago

He was my PhD first cousin twice removed. Although that doesn't actually mean anything, it's interesting to see the connections.

I wrote my first BASIC programs in 1977, and promptly wrote a compiler for a restricted subset of BASIC into Z80, in the restricted subset, compiled the compiler, and had a machine language compiler for BASIC into Z80, all running in 14 KB of RAM.

Heady times.

Thank you Thomas Kurtz ... I wish I'd had the chance to meet and chat with you.

systemBuilder 7 days ago

In high school (late 1970s) I inherited (from my deceased father), a white book with red/yellow titling as "The Basic Programming Language" (the lettering on the front appeared to be in IBM check-writing font). In the appendix were about 10 basic programs including one in particular that would produce a meaningless technical report of arbitray length! I read the book, learned basic, and typed in a few of the programs (I had access to the UIUC CSL Dec-20 system). What a great time to be alive!

I am aware that the first STAR TREK game was written in Basic, using 10x10 quadrants and maybe a 10x10 quadrant universe. I eventually wrote an enhanced version of this called "Swords and Sorcery" but using a fantasy theme, not a space theme ...

I was so enamored with the BASIC programming language that a couple of years later I wrote a miniature interpreter on the PLATO system, at first trying to do a primitive BASIC language, but later I settled on doing a forth interpreter because RPN was so much easier to execute ...

Thank you, Dr. Kurtz. Your project helped make my youth a never ending joy of discovering new things! :-) :-)

leettools 7 days ago

It seems that it is all fond memories for people whose first program was written in BASIC ... I am one of them.

Thank you, Thomas Kurtz, for starting us on a life-changing adventure.

  • strictnein 7 days ago

    I'm in the same camp. I was 5 or 6 when I was reading books full of code and typing them into our C64. And writing wonderful programs like:

       10 PRINT "My sister is dumb"
       20 PRINT "I am cool!!"
       30 GOTO 10
tedd4u 7 days ago

The B in BASIC stands for "beginner." AppleSoft BASIC on an Apple ][+ was my first programming experience -- in kindergarten (1979). I was 5, and with help from my brother and my dad, I was able to learn and program independently. When you turn a machine like that on, its default mode is just a blinking cursor and a BASIC REPL. But you could do amazing things right from BASIC with the ]['s colorful low-res graphics (and slightly less colorful hi-res graphics) using the family TV as the monitor. All the motivation I needed. Thank you Dr. Kurtz! (and Woz!)

whyage 8 days ago

Learning BASIC on a Commodore 64 as a teenager was a transformative experience. It allowed me to revive the excitement of playing Lego as a kid, but in a scalable way.

Thank you, Dr. Kurtz.

grahamj 8 days ago

Damn, learning BASIC was one of the first things I did after my dad put together an Apple ][ clone. It paved the way for my lifelong technology enthusiasm.

pours one out

andrewstuart2 7 days ago

@dang, it would be really cool to see news.ycombinator.com/halloffame, or news.ycombinator.com/pioneers, or something like that as another item under news.ycombinator.com/lists for a list of these pioneers who get the black bar memorial. Learning more about the history of computers and the lesser-known pioneers who made it happen is always cool, though bittersweet when the black bar is up, of course.

karakot 6 days ago

Nearly 40 years ago, I typed these lines from a manual:

10 CLS

20 FOR I = 1 TO 10

30 R = 10 * I

40 COLOR I

50 CIRCLE (320, 240), R

60 NEXT I

70 END

I didn’t understand a single symbol, but when I saw the output, I was instantly hooked — it felt like magic. This was during the twilight years of the Soviet Union. Fast forward to today, and I’m now in the U.S., working in a FAANG company.

WillAdams 6 days ago

What BASIC implementation would folks recommend to a young person starting out today?

My initial inclination would be to suggest:

https://github.com/VBAndCs/sVB-Small-Visual-Basic

but I really wish that there was a more capable option.

Scratch is great until one wants to make a "normal" looking graphical program...

Is there a good walkthrough of how to access GUI objects in Visual Code Studio? Some other option? Livecode seemed promising until the opensource option was taken away. Is Twinbasic a good option? Possibility of Gambas getting ported to Windows?

jader201 7 days ago

I can definitely say I wouldn't be sitting where I am -- a software engineer, professionally for 27 years, but tinkering with programming for much more than that -- had I not started by learning BASIC on my PC Jr. (I still have fond memories of this cartridge [1])!

It was such a fun and easy language to start out with (around 10 years old). I had no idea at the time that it would lead me to where I am today. I can't imagine the number of people that have been influenced by him and BASIC.

Thank you, Dr. Kurtz.

[1] https://en.wikipedia.org/wiki/IBM_PCjr#/media/File:IBM_PC_Jr...

vincent-manis 7 days ago

I was 13 when DTSS was introduced, so never had an opportunity to learn programming with Basic. Fortunately, that didn't harm me, and I've managed to compensate for this disadvantage.

I don't want in any way to minimize the impact of a language designed for non-experts. But, while Basic, and its many limitations, was the best that could be done with the relatively limited systems it was first implemented on, it doesn't scale. I recall, around 1970, building an interactive front end for an inventory system, using a commercial company's version of Dartmouth (or GE) Basic. It came to about 900 lines, and even I couldn't make sense of it.

It's a mistake to believe that non-experts write 20-line mortgage programs, or 50-line dice games. If what you're teaching them has any value, they will naturally want to write programs that grow organically as they understand the problem better. Dartmouth Basic is a language in amber, best understood as what could be done given the equipment of the 1960s, and the understanding of programming development at the time. It was neither better nor worse than other interactive languages of the time, for example, JOSS (which begat PIL, DEC's FOCAL, and even the horrific MUMPS, closer to our time).

I think that the true value of Kemeny and Kurtz's contribution was encouraging programming as a thing for “ordinary” people, rather than a priesthood. The language they invented was developed prior to clear understandings of structured, object-oriented, and functional programming, all of which have something to say even to non-experts. (And, yes, Microsoft continued to produce products with “Basic” in their names, but they have little to do with anything that was developed at Dartmouth.)

So, kudos to all the folks who learned their programming with Dartmouth-style Basic. But I think there are a lot of modern tools that not only help non-experts write short programs, but scale well as their knowledge and skill grows. Smalltalk was one system that demonstrated that, but in more recent memory, Python and Racket are also good examples.

By comparison with film, Georges Méliès did some amazing work in 1900, but nobody would confuse that with the work of modern directors.

(I don't want to get into a discussion of What Is The One True Introductory Language; I have my opinions on that, but they are not relevant here. Instead, I am trying to put the very significant contribution of Kemeny and Kurtz—democratizing computing—into what I see as a better perspective.)

  • SoftTalker 7 days ago

    I mean, I don't disagree, but you might be surprised at the scale of systems that were written in BASIC, well into the 1990s and probably beyond that. And not the modern Microsoft Visual incarnation of it but the old, line-numbered, GOTO/GOSUB and everything-is-global classic style.

    For a while I worked at a financial company and all their internal systems were in BASIC. They had dozens if not hundreds of internal users, all running on dumb terminals connected to a couple of servers that ran those BASIC programs. This was online transactional systems as well as nightly batch jobs. The programmers were mostly not computer science people but ordinary, smart people who understood the business and did a good job with the tools they had. It wasn't all a mountain of spaghetti, they had put a lot of thought into their standards and practices and documentation and it was pretty easy to work on.

    It was used for far more than short programs and teaching.

    • vincent-manis 7 days ago

      I am not surprised that large-scale programs were written in Dartmouth Basic, or that those programs satisfied the needs of their users. Some program libraries include programs in unstructured Fortran IV, which have been running satisfactorily for 60 years. Similarly, some very complex hospital systems were written in Mumps (aka M), in which, due to both the language and the programming style used, programs looked more or less like line noise.

      I once consulted for a company that had a product written in Pick Basic. This product had been sold around the world, and was very successful in their market. They wanted to modernize the product, so they went to a big DBMS vendor with a target business problem; the vendor said it would take several months to produce a sample solution. The company gave me the problem description. The next day I went back with a PoC program, 50 or so lines of C++. I emphasized that I had used C++ just because it was convenient (and that really any standard language would do), explained what parts of the problem were not addressed, and estimated that the entire program would take about a week's work to do. The client agreed on this, but said (a) that they needed a solution that was compatible with Pick Basic, and (b) their programmers only knew Pick Basic and wouldn't be any good at learning anything else. I don't know what became of the client and their product. (The Pick system was a combination of a variant of Dartmouth Basic and a DBMS.)

      I'm not in any way saying that Dartmouth Basic is useless. I am saying that creating this language was NOT the flash of genius Kemeny and Kurtz actually had, but that making computing accessible to non-experts was the actual point.

jcadam 7 days ago

First programming language for me was Apple Integer Basic on the ][e. Got me hooked on coding.

pico303 7 days ago

I first learned to program in CBASIC on an Eagle II (Z80), then later TI-BASIC, and finally MSBASIC. Thank you, Mr. Kurtz, for introducing me to a wonderful career and fond memories of hacking “BASIC Computer Games” by David Ahl into my early PCs.

yigithan 6 days ago

I, too, learned programming in BASIC. I wrote many programs, really useful ones, too. My mom is a pharmacist, I wrote a simple program to calculate price of some of the items they prepared. I wrote a flashcard like program to study foreign language, a quiz program to learn license plate codes in Turkey. I wrote screen saver animations, random circles, yin and yang, drawing flags. It was an amazing feeling as a child. I’d never looked up who created it, either. Now I know: Rest in peace, Thomas Kurtz!

gip 7 days ago

As a teenager I went to a science fair organized by the Communist party (true story and obviously it wasn't in the US). A guy there was explaining how computers works and he took the time to show me BASIC. I wrote my first program that day and found it fascinating. I was enthusiastic about learning more so I asked my Dad for a computer. Said he "Study Math, it's exactly the same".

My next real contact with computers was 15 years later.

DebtDeflation 7 days ago

My first exposure to computers was at the age of 9, summer of 1982, my parents signed me up for computer camp and we learned BASIC on a TRS-80 with a cassette drive

10 PRINT "Joe is cool"

20 GOTO 10

ENTER

<Raises hand> "Help me!"

gwbas1c 7 days ago

I guess I owe a lot to Mr Kurtz too.

The first time I signed into a dial-up BBS, it asked me to make up a handle. My GWBasic manual was sitting in front of me. I still use that name to this day.

latchkey 7 days ago

BASIC on an Apple IIe in the early 1980's was my first language.

RIP Kurtz.

senderista 8 days ago

For better or worse, I wouldn't be where I am without this guy.

junon 6 days ago

LibertyBASIC was my first programming language. My dad bought me the compiler as my ninth birthday gift and it forever changed my life.

RIP to a legend.

theanonymousone 7 days ago

Not a good year for PL pioneers, starting with Nicklaus Wirth's passing.

We all owe Basic a lot. No "modern" tech has filled that position. Rest in peace.

  • gerikson 7 days ago

    Age comes for us all.

Jun8 7 days ago

"DTSS was unveiled on May 1, 1964, along with BASIC. By that fall, hundreds of students were exploring BASIC on the 20 terminals around campus."

How far have we come! I just looked up and Dartmouth had about 3000 students at that time, so one time sharing terminal per 150 students!

riedel 5 days ago

I grew up to my friends 'LOAD “*“,8' even before knowing what a programming language was. Actually I did not have a C64, but later typed of listings from magazines in Amiga BASIC.

MisterBastahrd 7 days ago

BASIC was my gateway to missing over two weeks of classes because I cobbled together a fishing game during my freshman year of high school that apparently was worthy of winning at the regional and state science fairs for 4 consecutive years without changes.

Mission Accomplished.

Thank you, Dr. Kurtz.

ddgflorida 5 days ago

QBasic was the first language I learned so I still feel a fondness to it 40 years later. I even wrote a modern version of it for the web.

bastloing 7 days ago

So sad, he helped lots of us kids learn something that would later turn into a productive career.

anta40 7 days ago

BASIC (QB, and VB6) were my earliest exposures to programming. As a high schooler in 2001, only a very few were interested in learning programming (yes the geeks). Good old times.

Eventually I switched to Java because of mobile apps (J2ME), and still make a living from it.

RIP Thomas Kurtz.

cobrabyte 7 days ago

I am eternally grateful to Dr. Kurtz for his work on BASIC. I'm sure I'm not alone in saying that BASIC was my first foray into programming as a young teen, and it sparked my love for programming. RIP

zabzonk 8 days ago

As someone who learned most pf what I know about programming in BASIC back in the very early 1980s, this is sad news. We seem to be losing good people all the time these days.

However

TYPE_FASTER 6 days ago

My first programming job was writing QBASIC and later Microsoft Professional Basic. It ran in nuclear power plants. Thanks Thomas.

benreesman 7 days ago

I learned software starting with BASIC and I suspect I’m not alone.

A monumental contribution to practical computer science.

RIP.

rswail 7 days ago

1977 I typed my first program into an ASR33 (connected by serial to a PDP-11/10):

10 PRINT "HELLO"

20 END

RUN

I was hooked.

chadd 7 days ago

C64 BASIC got me started in my career. So grateful!

mitchbob 7 days ago

Is the HN black bar for Kurtz?

  • Applejinx 7 days ago

    I assume that must be why it's there, and good for Hacker News to do it. 10 GOTO 10 for a great one.

rswail 7 days ago

How do we get a black bar for this?