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.
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.
I live in Sweden.
PEEK and POKE:d my way to my very own computer.
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!
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!
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.
Does the name "Grey Matter" ring any bells for you? (Software reseller, still seems to exist...)
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.
No, I don't recall the name. It was a long time ago. Sorry.
Thank you, Thomas Kurtz!
The FM synthesis Hall of the Mountain King will be burned into my memories forever.
To add insult to injury, snprintf does it differently.
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.
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.
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.
Edit: Thank you for sharing! Looking forward to reading it.
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."
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!
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.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. :)
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".)
In my first year FORTRAN or cards as you say then the University department bought a mini and used BASIC.
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.
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.
This leads to the statement : F0R X=1 T0 1OO.
Was it really that way back(wards) in 1964?
Additional citation hunting from 2020 when the BASIC manual was shared & discussed here:
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.)
So long and thanks for all the fish Dr. Kurtz!
I know it is a saying, have read it before, but would prefer to hear the explanation from a person rather than Google.
/jk
also, no way they can be superintelligent, if they came here, even once. bcoz, u no, shipz propellers, orcas, etc.
or fishy.
BASIC was, I'm realizing as I write this, an integral part of my career. RIP Thomas.
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.
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.
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.
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.
Lighting the candle in a way Mr. Kurtz would have appreciated: https://graphics.social/@seism/113516128540983344
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.
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.
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.
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.
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.
So half the learning happens on those pushbikes before they move to real bikes.
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.
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.
So I'm not convinced that even those who think they know how it works know it actually.
BASIC? That’s just nostalgia for poverty.
BASIC, on the other hand, is more aligned with what Seymour Papert later came to call "Constructionism": the student learns by experimentation.
Mathematics is the study of all O(1) algorithms.
Computer Science is all other algorithms!
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...
[0] https://en.m.wikipedia.org/wiki/On_the_Cruelty_of_Really_Tea...
You can read many of his thoughts here: https://www.cs.utexas.edu/~EWD/welcome.html
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!
RIP
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
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.
10 PRINT “WE REMEMBER KURTZ”
20 GOTO 10
10 PRINT "WE REMEMBER KURTZ",
20 GOTO 10
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! :-) :-)
Thank you, Thomas Kurtz, for starting us on a life-changing adventure.
10 PRINT "My sister is dumb"
20 PRINT "I am cool!!"
30 GOTO 10
Thank you, Dr. Kurtz.
pours one out
Email requests to mods at hn@ycombinator.com.
As HN generally standardises on "X has died" for obituaries, it's possible to search most obituary notices through Algolia. Collating by popularity / votes is a pretty good proxy for significance:
<https://hn.algolia.com/?dateRange=all&page=0&prefix=true&que...>
At this writing, Stephen Hawking, Bram Moolenaar, Keven Mitnick, Paul Allen, Queen Elizabeth II, Gordon Moore, John Conway, Dennis Ritchie, and Joe Armstrong are the top ten matches.
Note that this misses a few entries, e.g., Steve Jobs ("has passed away": <https://news.ycombinator.com/item?id=3078128>) and Mike Magee ("Mike Mageek is dead": <https://news.ycombinator.com/item?id=41285851>).
I'd emailed dang regarding the last, noting that not only does the entry not follow the HN "has died" convention, but it misspels (as an in-joke) Magee's name. Dang defended that as in the spirit of the site (and arguably Magee), but it does make searching for the obituary more challenging.
Also worth noting that Stephen Hawking's obit remains the top HN story of all time by votes, for going on eight years.
https://hn.algolia.com/?dateRange=all&page=0&prefix=true&que...
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.
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?
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...
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.)
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 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.
My next real contact with computers was 15 years later.
10 PRINT "Joe is cool"
20 GOTO 10
ENTER
<Raises hand> "Help me!"
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.
RIP Kurtz.
RIP to a legend.
We all owe Basic a lot. No "modern" tech has filled that position. Rest in peace.
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!
Mission Accomplished.
Thank you, Dr. Kurtz.
Eventually I switched to Java because of mobile apps (J2ME), and still make a living from it.
RIP Thomas Kurtz.
However
A monumental contribution to practical computer science.
RIP.
10 PRINT "HELLO"
20 END
RUN
I was hooked.