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.
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!
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.
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.
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.
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".
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.
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.
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.
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).
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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).
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.
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.
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.
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.
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.
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.
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.
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.)
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.
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.
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.
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.
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.
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.
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.
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!
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.
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.
Consider me naive, but what way did Dijkstra thought it should be taught? Someone who first learned to code in QBASIC
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.
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.
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.
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).
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.
It is the "correct by construction" approach vs the "construct by correction" approach.
“On the Cruelty of Really Teaching Computer Science”[0]
[0] https://en.m.wikipedia.org/wiki/On_the_Cruelty_of_Really_Tea...
He probably thought programming students should be taught Pascal, the academic language he pioneered. It is quite different from BASIC.
Pascal was Wirth, not Dijkstra.
Sorry, misremembering my meager computing history...
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.
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.
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.
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.
Enough LISP and Assembler can eventually cure the worst BASIC inflicted brain damage, but some scars remain.
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!
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.
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.
Hitchhiker's guide to the galaxy
Heard of the book, but have not read it, 41 times so far. Next time ;)
https://en.m.wikipedia.org/wiki/42_(number)
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.
I thought it was the mice that were the super intelligent extraterrestrials?
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.
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.
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.
that's rather finny :)
or fishy.
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.
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.
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".)
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.
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.
overstated
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
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.
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.
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:
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.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.
For better or worse, I wouldn't be where I am without this guy.
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.
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.)
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.
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.
https://en.wikipedia.org/wiki/Thomas_E._Kurtz
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.
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
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.
basic gang stand up
How do we get a black bar for this?
So sad, he helped lots of us kids learn something that would later turn into a productive career.
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