back to article BASIC co-creator Thomas Kurtz hits END at 96

Professor Thomas Eugene Kurtz, co-inventor of the BASIC programming language, has died aged 96. Along with his colleague, John Kemeny, Kurtz's work revolutionized computing, operating systems, and programming language design. Kurtz was born in Illinois in 1928, and died last week in a hospice in New Hampshire, the home of …

  1. may_i Silver badge

    Thank you

    Thanks to Prof. Kurtz for the first programming language I ever learned and the start of a life long career in programming.

    1. GlenP Silver badge

      Re: Thank you

      Same here - my first programming was in BASIC on an RM-380Z back in around 1980, followed by a ZX-81 (bought with earnings from a holiday job).

      The knowledge gained was useful when I was presented with some FORTRAN programming tasks in my first IT role, once I managed to get used to the rigid syntax!

      RIP Prof Kurtz.

      1. abend0c4 Silver badge

        Re: Thank you

        Me, too. Slightly earlier using HP Time-Shared BASIC. It used to be possible simply to wander into the Computer Lab at Newcastle University and sit yourself down in front of a KSR33 teletype (or an ASR33 if you wanted to save your program on paper tape) and use the system without any account or authorisation. There was even a built-in language tutorial. As a schoolboy, I wouldn't otherwise even have thought of a career in IT. So I'm grateful to everyone who contributed to that possibility.

        Times have changed in so many ways.

        1. Antron Argaiv Silver badge

          Re: Thank you

          Introduction to computers loses something without the venerable Model 33. Waiting for your program to print out gave you time to consider what to do next. And the sensory inputs were just as important...the vibration, the sounds, the smell of hot oil.

          I repaired them as a job when I was an undergraduate. Had my own personal one in my dorm room.

          1. An_Old_Dog Silver badge
            Happy

            Teletypes

            Yes, the sounds, vibrations, and smells were a wonderful part of the computing environment, but I found the Teletype Model 33's keyboard action hurt my finger bones (I typed on those things a lot. A successor to the Model 33, the Teletype Model 43, was easier on the fingers, but was like needles on one's eardrums with its piercing screech.

            I picked up a used Model 33ASR for £5 at a church rummage sale, and interfaced it with a simple circuit, as an output-only device, to my Commodore VIC-20.

            1. James Anderson Silver badge

              Re: Teletypes

              These teletype machines are the main reason UNIX commands are so terse. “cp” instead of “ copy” meant you halved the risk of blistered figures.

          2. ICL1900-G3 Silver badge

            Re: Thank you

            Spot on... I can still hear the 'clunk clunk clunk' that the ASR33 used as an operator's console on the 1900 used to make as George 3 started up... usually quickly followed by System Error B when testing my 'fixes'.

      2. HorseflySteve

        Re: Thank you

        My first experience of programming was in Fortran IV on Glasgow College of Technology's IBM360, submitting packs of punch cards for overnight batch runs. Very frustrating when you make a typo on one of the cards & find out when picking up the results the following day!

        I quickly discovered the Time Shared BASIC running on the Data General Nova that they also had, and the joys of interactive programming.

        That led me to Sinclair BASIC on ZX Spectrum at home, then Z80 assembly followed by C at work.

        I'm not a programmer, I'm an electronics engineer but, what I learned from BASIC programming stood me in great stead in my career.

        So, thank you indeed, Professor Kurtz, for all that you unknowingly did for me, I will not forget you.

    2. Petrea Mitchell

      Re: Thank you

      Me too! First on a prototype for something the internet has never heard of (long story), then on the TRS-80.

      1. snee

        Re: Thank you

        Ah, the TRS-80 is what first got me into computers - walking down the hallway at school I just happened to glance into a room I was passing and was transfixed at the black and green screens...

        1. Sylvain :-)

          Re: Thank you

          ZX80 and TRS80 .

          BASIC

          Same here

        2. Sylvain :-)

          Re: Thank you

          My dad was a mainframe specialist and brought one home one day.

          I think he was proud I later came to contribute to the development of embedded computing, "doting objects of intelligence" because this is a direct result of his passion.for programming!

    3. Stephen Wilkinson

      Re: Thank you

      ZX81, then VIC-20 & C64, then BBC B - all when I was at school doing O Level Computer Studies.

      After graduating a lot later, for the first 5 or 6 years I was programming VBScript (ASP) or Visual Basic 6.

      RIP Prof. Kurtz and thank you.

    4. Anonymous Coward
      Anonymous Coward

      Re: Thank you

      same but not a programmer today. Picked up BASIC in high school in either 1982 or 83. Learned a lot more fundamentals than I would have expected from that.

      If then, go to.

    5. RAMChYLD Bronze badge
      Pint

      Re: Thank you

      I cut my teeth in BASIC.

      Did a lot of things in it. Point of Sales programs, budget management, art, music, even crude information retrieval systems (anyone here remember DataQuest? In those days there were so many BASIC dialects that programs written for one computer will NEVER run on another, either partially or at all. To my dismay DataQuest was never available for IBM BASIC, which is a shame since the PC had a nice 80 column, 16-color text mode display. It was also the most common type of computer in Malaysia. So I took it upon myself to write a PC equivalent). I even had a crude CLI shell going at one point. Lots of good memories.

      Sure, the jump to Pascal was a shellshock (no GOTO damn it!), but it made me what I am today.

      RIP sir. Thank you for the music.

    6. Fingernail

      Re: Thank you

      Same here! I read the guide to BASIC cover-to-cover the day I got it, and never looked back.

  2. 'bluey

    you made it easy, fun, and interesting... we salute you

  3. Antony Shepherd

    I do love how the LGP-30 brochure describes it as Small, and Mobile (presumably because it was on castors)!

    Like a lot of people out there of a certain age, BASIC was where we cut our programming teeth as the first high level language we used, mostly because it was on pretty much every home micro by default.(Unless you were one of those people who had a Jupiter Ace!)

    All made possible by Kurtz and Kemeny's decision to make the language public domain rather than controlling it.

    1. GlenP Silver badge

      Unless you were one of those people who had a Jupiter Ace!

      I wasn't, but a distant relative bought one. Programming in Forth was "interesting", I had it running on a Spectrum when I was experimenting with an I/O interface - IIRC it was popular for controlling radio telescopes.

      1. munnoch Silver badge

        I didn't have a Jupiter Ace either but I read about it and Forth at the time it came out and something stuck with me. Several decades later I wrote a little stack based expression evaluator (RPN basically) and it just seemed incredibly obvious to implement the stack manipulation words like SWAP, DUP, ROT as well. The rest of the team thought I'd lost my mind with this extreme weirdness. It worked exceedingly well however and became the core of our test verification predicates...

        1. Sylvain :-)

          Yeah. There's various paradigms and Engineering dictates that for a given tasks there's optimal paradigmatic choices...

          It's most likely that a Forth like stack based programming environment was an optimal design for your problematic. At least, as valid and optimal as the other possible optimal solutions.

          Engineers may be as prone as anyone to stubbornness. You were right to follow your own genius . :-)

      2. AceRimmer1980
        Pint

        I knew someone that had a Jupiter Ace, kind of like a ZX81 but with FORTH instead of BASIC. Never used it meself, but when I had a Spectrum, I had a go on White Lightning (the FORTH compiler with games API, not the beverage, tho probably no less brain rotting)

    2. Paul Crawford Silver badge

      Also the 17ms time for multiply/divide suggests around 2k clock cycles from 120kHz clock, so I'm guessing a single bit ALU and it sequences through the words over and over again to get the answer? All done with valves (and some diodes...)!

      1. Anonymous Coward
        Anonymous Coward

        Also multiply/divide time is about 60x add/subtract time.

        This was before the days of RAM - memory wasn't necessarily random access but read off a magnetic drum as here or stored in delay lines as in the Pilot Ace. This meant that the programmer had to optimise where values were stored to avoid waiting for the drum to come round for next access (worst case almost a whole rotation). The ALU would effectively be 1-bit but clever use of hardware enabled some operations to be parallelised.

        For the amount of hardware (113 tubes ~= 250 transistors), very productive.

        1. An_Old_Dog Silver badge

          Drum and Disc Memory

          Optimising interleave and optimising skew values are things modern programners no longer have to worry about.

          1. Liam Proven (Written by Reg staff) Silver badge

            Re: Drum and Disc Memory

            [Author here]

            > things modern programners no longer have to worry about.

            You say that, but...

            Well, read this.

            https://gist.github.com/hellerbarde/2843375

        2. ICL1900-G3 Silver badge

          Have a look at the wonderful Usagi Electrics channel on YouTube. He has built a one bit valve computer which uses paper tape as storage.

      2. Nick Ryan

        Multiply and Divide were implemented very simplistically, and reliably, and with as few logic gates a possible. In essence each tended to operate exactly as long multiplication and long division worked as we were taught in schools at the time (shifting and adding). This process while reliable was rather time consuming and add in the need to reduce the number of logic gates used to a minimum wound up as a repeated sequence of the same (micro) operations all controlled by the algorithm of the original operation. With the capacity to add more logic gates it became possible to optimise these operations and a lot of very smart thought went into how to do this so more of it could performed in parallel rather than in sequence.

      3. swm

        A multiply or divide took one revolution of the drum. The LGP-30 was a bit serial machine. By properly positioning the instructions and operands one could get the speed up to about 200 instructions per second. Otherwise it ran about 60 instructions per second. It had a drum memory of 4096 31-bit words. The accumulator, instruction register, and program counter were also recirculating registers on the drum. A fun machine to work with.

    3. Antron Argaiv Silver badge

      Royal-McBee's *other* connection to Computer History

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

      1. keithpeter Silver badge
        Windows

        Re: Royal-McBee's *other* connection to Computer History

        And a connection to the history of mathematical physics

        https://www.lindahall.org/about/news/scientist-of-the-day/edward-lorenz/

        (off topic for this thread so I won't go into details: just remember C-x M-c M-butterfly on emacs :-)

      2. jake Silver badge

        Re: Royal-McBee's *other* connection to Computer History

        I wouldn't say "other", Mel Kaye has always been inextricably linked to the LGP-30.

        Many of the weirdos reading here (self included!) might be interested in knowing that SIMH has a very, very good sim of the -30 (and the later LGP-21). Fun way to while away a rainy afternoon or three, especially if you're feeling nostalgic. Last time I checked, it ran Mel's blackjack program quite nicely.

      3. Liam Proven (Written by Reg staff) Silver badge

        Re: Royal-McBee's *other* connection to Computer History

        [Author here]

        > Royal-McBee's *other* connection to Computer History

        I did specifically say that:

        «

        (This is the hardware immortalized in The Story of Mel, a Real Programmer.)

        »

      4. swm

        Re: Royal-McBee's *other* connection to Computer History

        This is how we all programmed in those days. You had to modify instructions as there were no index registers.

    4. MyffyW Silver badge

      I am utterly charmed by the LGP-30 brochure. I love the idea of wheeling this thing "smaller than a desk" to the engineer concerned. And those diagrams of the potential uses are a masterpiece of sparse but insightful illustration. It gives just a glimpse of how revolutionary such machines must have been.

      RIP, Prof Kurtz.

      1. munnoch Silver badge

        "Easily mastered by the average engineer"...

        and an oscilloscope to monitor internal activity.

        Brings a new meaning to the term "bare metal".

      2. Jonathan Richards 1 Silver badge

        The bit of the brochure which gives me the shivers:

        > Stored program operation means greater flexibility as all programs may be internally self-modifying.

        Self-modifying code *can* be very space-efficient, with small op-code sets like this, I suppose, but all I can say is that I tried it once (6502 assembler) and it almost scrambled my brain.

        Alright, which one of you at the back said "Almost?!?"

        1. Yet Another Anonymous coward Silver badge

          Re: The bit of the brochure which gives me the shivers:

          Hands up anyone who's written self-modifying code.

          Deliberately?

          1. jake Silver badge

            Re: The bit of the brochure which gives me the shivers:

            I suspect that most of us who started coding before Apple or Microsoft existed have done the first. Many of those did so on purpose.

          2. Anonymous Coward
            Anonymous Coward

            Re: The bit of the brochure which gives me the shivers:

            My COSMIC ELF(?) with an RCA1802 processor had one instruction that if set up right, would load itself into the next program location to the end of memory.

            Mine had 4 K of ram and I wrote assembler on paper, but I then wrote in the HEX code for the instructions so I could enter it. I bought a BASIC interpreter for it, but I only had the HEX keypad for input. But it had a "graphics" chip so I could do B/W bitmap on a TV.

            1. An_Old_Dog Silver badge

              Re: The bit of the brochure which gives me the shivers:

              I had a friend who owned an Elf. Even doing just machine language programs with a hex pad was tons of fun!

            2. Torben Mogensen

              Re: The bit of the brochure which gives me the shivers:

              "My COSMIC ELF(?) "

              That would be a COSMAC ELF: https://en.wikipedia.org/wiki/COSMAC_ELF

          3. This post has been deleted by its author

          4. Sapient Fridge

            Re: The bit of the brochure which gives me the shivers:

            Yep, I wrote an ARM emulator for the Acorn Archimedes as I wanted to be able to watch what the code did, and do things like setting breakpoints in ROM.

            It worked by copying the next instruction into the emulator code (after checking it wasn't a jump etc.) then executed it and analysed what registers etc. changed and what the new values were.

          5. Sylvain :-)

            Re: The bit of the brochure which gives me the shivers:

            Hahaha hahaha hahaha hahaha...

          6. HorseflySteve

            Re: The bit of the brochure which gives me the shivers:

            <hand raised>

            I wrote a program for the above mentioned DG Nova system that used 8KB of core storage which caused a bit of a problem as multiple people started to use it since the Nova only had 10KB of core & the disk/core swapping caused it grind to a halt when user number exceeded 3

            Unsurprisingly, the system technician asked me to make it smaller but I didn't know how to chain programs as subroutines so I devised a scheme where subroutines in text files were loaded as program modules that overlaid each other (literally overlays).

            For this to work, every overlay module had to have *exactly* the same line numbers....

        2. John Brown (no body) Silver badge

          Re: The bit of the brochure which gives me the shivers:

          "Self-modifying code...almost scrambled my brain."

          I had a similar reaction when I first came across recursion :-)

        3. An_Old_Dog Silver badge

          Self-Modifying Code

          Tsk, tsk, tsk -- self-modifying code is not safely re-entrant, nor is it safe in an interrupt-driven environment. If you need compact code, use Forth.

        4. HuBo Silver badge
          Gimp

          Re: The bit of the brochure which gives me the shivers:

          Ahhh, but the linked "Story of Mel, a Real Programmer" says it best imho:

          "If a program can't rewrite its own code", he asked, "what good is it?"

        5. Torben Mogensen

          Re: The bit of the brochure which gives me the shivers:

          "Self-modifying code *can* be very space-efficient, with small op-code sets like this, I suppose, but all I can say is that I tried it once (6502 assembler) and it almost scrambled my brain."

          Some early processors only had constant addresses for jumps, so to return from a procedure call, the caller would modify a jump instruction at the end of the procedure to jump to the correct place.

          I, also, tried self-modifying code on a 6502 when making a sprite routine for my BBC Micro. To allow the sprite to overwrite, XOR, OR, or AND with the screen contents, I modified an instruction in the code for this operation. The alternative would have been either several almost-identical copies of the code or slower operation, but both memory and clock cycles were limited.

    5. swm

      Yes - I programmed DOPE on the LGP-30 in 1962. Tom Kurtz just threw an LGP-30 manual at me and said, "go to it." My first program played NIM and then in the Spring term I wrote DOPE and then discovered that Kemeny had a freshman class use it to verify that amateurs could use a computer. Tom was always smiling and enjoyed life. The actual time sharing system was programmed by undergraduates John McGeachie and Mike Bush and went online in 1964. Tom Kurtz was an excellent statistician and mathematician. He was always ready to talk with anyone. I knew him for many years. He will be missed.

  4. Andy Non Silver badge
    Happy

    The start of my career as a programmer

    BASIC on a ZX81, then Commodore 64, (then 6502 assembly), then BASIC again on a commodore PET, then on the first IBM PCs. Then BasicA, GWBasic, Husky Basic, Visual Basic multiple versions, VB.Net, DEC Basic, all interspersed with other languages, Fortran 66, 77, COBOL, Clipper, C, C++, C#. Happy days.

    1. ForthIsNotDead

      Re: The start of my career as a programmer

      Pretty much identical for me.

      My maths teacher and I bonded at school (I hated him!) when he read the Z80 machine code snippets I had been writing in the back of my maths book to do screen scrolling and the like! We began swapping tips and tricks. Next thing I knew I had unlimited access to the school's computer room - BBC model B's, PETs, C64's, and a couple of Speccy's and ZX81s!

      My love for computing crystalized because of BASIC programming. Being able to give the computer instructions and watch it execute and obey them was the greatest feeling.

  5. DJV Silver badge

    BASIC was my first language as well

    I had been into electronics and had been following the various electronics magazines (Practical Electronics, ETI, Elektor etc.) when they had started exploring microprocessors in the early 1970s before going on to develop their own systems. By the time I had my first hands-on experience with a computer (Commodore PET 2001-8) I could already understand BASIC programming. The first program I received payment for was a payroll system written for a PET with disk drives written for the PCB company I was working for.

    After BASIC came 6502 assembler, some 6800 assembler, Pascal (when I moved on to programming Burroughs B20/25 systems), C, TurboBASIC, Modula-2 (for a later university degree), C++, Java (which I learned in order to move to a better job), Visual C++, HTML, JavaScript, Perl, PHP and countless others dabbled with. For a while, I had two broken Jupiter Ace machines from which I built a single working one. Forth was "interesting"!

    Fun days!

    1. joeldillon

      Re: BASIC was my first language as well

      I never worked with an actual name-branded Forth but in a couple of my first jobs I was working with PostScript, which is Forth with the serial numbers filed off. You can still see elements of it in modern PDF.

      1. ForthIsNotDead

        Re: BASIC was my first language as well

        I still work with Forth to this day! Hence my handle ^^ :-)

  6. Tony Gathercole ...

    Sort of at the start of mine too...

    On starting work in summer of 1978, first assignment after induction was to go on a course on "Instructing the instructor". Couple of weeks later off to Bristol to run a customer course on BASIC (XEROX Sigma variant of BASIC, whoch I'd not run across before starting this job) - having attended my graduation ceremony in between!

    Best bit of that course was the run on the Great Western mainline to Bristol on a then almost brand-new IC125 (High Speed Train) in First Class - no 1st class trips on a student railcard before that!

    1. werdsmith Silver badge

      Re: Sort of at the start of mine too...

      It was me also, learning BASIC still at school with line numbers and all that.

      I got my first job on the basis of that tiny knowledge. So ignorant I was that in my first job I sat down at a DEC VT100 terminal (disconnected) and with ECHO on, I tried to type in BASIC code, because I imagined that was how all these things worked.

  7. user555

    Forth is just cryptic

    If you don't have the workings of the dictionary memorised, you're lost. Assembly is a breeze in comparison.

    1. Blue Pumpkin

      Re: Forth is just cryptic

      The worst part is coming back to something you did ages ago and try to figure out what you did - although it's not as bas as APL !

      And just like BASIC, it's still going https://www.forth.com

      I remember attempting to write a FORTH interpreter in 8086 assembler for fun ... with only 4k available - those were the days.

      1. Liam Proven (Written by Reg staff) Silver badge

        Re: Forth is just cryptic

        [Author here]

        > And just like BASIC, it's still going

        More than that. There is successor language, which uniquely uses colour for syntax.

        https://colorforth.github.io/cf.htm

        It can, alternatively, use type styles for colour-blind users.

        And creator Chuck Moore has massively-manycore chips, programmed, of course, in Forth.

        https://www.greenarraychips.com/

    2. ICL1900-G3 Silver badge

      Re: Forth is just cryptic

      Assembly is a breeze. You know exactly what is going on.

  8. ComputerSays_noAbsolutelyNo Silver badge

    I like the naming of stuff

    DOPE

    street BASIC

    I guess, these guys had humor.

    1. dmesg

      Re: I like the naming of stuff

      Especially given the number of blue-blood frat/sorority nobs at Dartmouth. I've been through there a number of times and the feel is palpable just walking down the main shopping street near campus. Pleasant, but you can smell all the money underneath it.

      Well played, Drs K & K!

    2. swm

      Re: I like the naming of stuff

      These names were named by Kemeny who loved acronyms.

  9. Doctor Syntax Silver badge

    I never found FORTRAN a difficult language to learn, nor did the instructors in QUB. It had been decided that all the lab staff (included me as research assistant but not SWMBO as a research student) would go on a 1 week (i.e. 5 days) course in this mysterious computing stuff.

    Compulsory courses did not go down well with me and that may have been how the timing of the previous week's field trip to Scotland for SWMBO somehow ended up with missing the Monday of the course. I never found out what they did on that day because all the programming was fitted in on the Tuesday to Friday and I had no sense of having missed anything. And it was easy.

    Having said it was easy we were using coding sheets and punched cards with professional keypunch operators to join the two together. It wasn't something that would have been quite so easy dealing with the rigid line formatting at a terminal although I did, much later, use Microsoft's CP/M version. It also helped that FORTRAN was at its best with what I wanted to do with it - doing some calculations and producing nicely laid out tables of results to plot by hand. Nevertheless, a four day course surely makes it an easy language to learn.

    1. Roland6 Silver badge

      Agree, Fortran IV was my second language (circa 1976), for someone who understood basic mathematical/logical thinking and flow charting, Fortran especially combined with the coding sheets was straight-forward.(*)

      I think the process of filling out the coding sheets led to better code first time, than when we all got terminals and were able to directly key stuff in.

      (*) COBOL is another language which seemed to make more sense when combined with the coding sheets.

    2. Phil O'Sophical Silver badge

      I still have some QUB Fortran coding sheets. I've no idea why I kept them...

      1. jake Silver badge

        "I've no idea why I kept them..."

        Same reason I still have a box full of recordings of John Peel's Radio1 shows from the mid '70s through the early '80s ... on cassette.

        Totally useless spools of slowly randomizing rust on Mylar, but I can't quite bring myself to chuck 'em.

        Don't panic ... they were all digitized decades ago.

        1. steviebuk Silver badge

          Never chuck them. Mention it over at datahoarder on Reddit. Someone would love to archive those.

  10. Neil Barnes Silver badge
    Pint

    multiple incompatible versions they termed "street BASIC,"

    They would be disappointed with my latest amusement: I'm currently porting a tiny basic I wrote in C to 6502 assembly... I started with INS8060 assembly, then 6502 assembly, then BASIC (on a Microtan 65)

    To his memory: --->

    1. Captain Hogwash Silver badge
      Coat

      Re: multiple incompatible versions they termed "street BASIC,"

      I started on street BASIC (Microsoft on Commodore PET.) I found it was quite similar to normal BASIC but it could get quite cold.

      1. This post has been deleted by its author

    2. Antony Shepherd

      Re: multiple incompatible versions they termed "street BASIC,"

      First coding I ever did was 6502 on a Microtan 65, followed by the 10K Microsoft Basic after I'd bought the Tanex expansion card with its ginormous 7K of RAM.

    3. Phil O'Sophical Silver badge
      Pint

      Re: multiple incompatible versions they termed "street BASIC,"

      I started with Algol, briefly, then moved to FORTRAN. My early BASIC experience was with the "street BASIC" on early micros, and it was so primitive it never really seemed useful. Eventually I found VAX BASIC, which was full compiled ANSI BASIC and was a real revelation. Fast, complete, really useful for string handling, it made me realise that it wasn't just a toy language for toy computers. RIP guys.

  11. Tubz Silver badge
    Pint

    Thanks TK, you BASICally help start the PC industry. Without languages, PC's are just blinking boxes of lights and buzzing circuits.

    Have a beer on me, wherever you are now.

  12. mobailey

    GOTO END

    1. Roland6 Silver badge

      ? Surely:

      80 GoTo 100

      100 End

      Or

      80 GoTo Finish

      90 Finish:

      100 End

      DEC-10 Basic circa 1975.

      However, both examples nicely illustrate one of the reasons why GoTo’s were/are considered harmful.

      1. Anonymous Coward
        Anonymous Coward

        or..

        96 PRINT "GOODBYE"

        1. Roland6 Silver badge

          Re: or..

          No “or” needed, that is a perfect correction to an oversight in my second example; to facilitate amendment etc. is the reason why you used line numbers incremented by ten.

  13. Antron Argaiv Silver badge
    Thumb Up

    FOCAL for me

    I only used BASIC later. But it became the standard for introducing programming to the average person. Well done, Drs K & K...your legacy will live on, because BASIC is...well, basic.

    1. VLSI

      Re: FOCAL for me

      I learned BASIC in 1995 as my first language. So it was the way to learn programming back then even outside America. Have learned many more languages in the 3 decades since. Thank you Mr. Kurtz.

    2. Antron Argaiv Silver badge

      Re: FOCAL for me

      (the details)

      It would have been in the very late 60s, and our (private) school got a connection (dial-up, ASR-33) to a shared PDP-8 at a nearby public (state) school which was a node in a scheme was called "Project LOCAL" and it was a (federally-funded, I assume) way to introduce high school students to computers. This was in Eastern Massachusetts, so the computers were naturally the low-cost DEC machines. I suspect DEC made them available at cost, as they later did with the PDP-11 for universities...the "get 'em early" approach to training future customers. Anyway, one school got a computer, and several others got a Teletype and a timesharing connection.

      1. VLSI

        Re: FOCAL for me

        I probably learned on a 486 or early Pentium, but the first assignments were paper and pencil!

    3. John Brown (no body) Silver badge

      Re: FOCAL for me

      To an extent, it's a bit sad that every computer (or at least OS) doesn't come with an "original" BASIC, or something approaching it. Most languages, even those intended for teaching beginners, tend to be overly complex in my view. If you can't read the manaul in one sitting and remember most of it, then it's probably more complex than it needs to be. Adding support for GUI toolkits was the start of the rot :-)

      I wonder if something like Bash could be considered the current equivalent of BASIC? :-)

      1. fg_swe Silver badge

        Bash

        Bash exactly exposes the punctuation craze, even worse than C.

        Just because it comes preinstalled on most Unix like machines means little.

        From a pedagogic point of view, Pascal, Ada, Java, C# or VB.Net are probably the best beginner's languages. Pupils should be shown the light before you take them down into the dungeons of C and C++. And of course there should be proper algorithms+data structures education, otherwise "learning a programming language" is rather pointless.

        Pupils should know what variables and mathematic functions are. Which means that bothering 10 year old children with Scratch is not a good idea.

        1. Anonymous Coward
          Anonymous Coward

          Re: Bash

          Scratch has variables and mathematic functions, all you needed to do was look at some of the things it can do in the right hands before posting (3D Pen Sketcher, Circles Raytracer, Fibonacci Sphere, Optics, Ragdoll Physics...).

      2. Antron Argaiv Silver badge
        Thumb Up

        Re: FOCAL for me

        The IBM PC did...if you didn't insert a floppy, it booted into PC_BASIC.

        Brilliant idea -- in the BIOS ROMs.

  14. Torben Mogensen

    My first programming language

    was not BASIC, but close. It was (in 1976) COMAL, a BASIC-inspired language that had structured control statements and procedures/functions with parameters -- similar to the later BBC BASIC. COMAL ran on my high school's RC7000 computer (a rebadged Data General Nova), with ferrite memory and no screen -- we used a paper teletype terminal and punched tape.

    I have programmed in many different BASIC variants over the years: Commodore BASIC (first on the PET 2001 and later on VIC 20 and C64), Sinclair BASIC, BBC BASIC, ABC-80 BASIC, BASIC for TI-81, and a few more. Of these, BBC BASIC was my clear favourite.

    Without BASIC, the home computer revolution would have been very different. Few other languages could be implemented in a few KB of ROM. Forth was and alternative and used for Jupiter Ace, but it didn't get a huge following since Forth was too difficult for beginners. LISP might have been another alternative, but while a simple LISP interpreter can easily be implemented in 1KB or less, programs tend to use more memory than BASIC. LOGO was available for some 8-bit computers, but requires graphics or an external "turtle" to be interesting. LOGO also uses more memory than BASIC. Of these alternatives, BASIC is by far the easiest to learn, and it was sufficient for home computer programs that don't need other data structures than arrays.

    1. Casca Silver badge

      Re: My first programming language

      They still teached COMAL in school on COMPIS computers when I was there. We also had ABC 80 computers which used a variant of BASIC.

      I still have my AMOS books for the Amiga.

  15. Will Godfrey Silver badge
    Happy

    A good innings

    I started out on BBC Basic, and soon cottoned on to the in-line 6502 assembler. Then I discovered this could compile from text files using the SPOOL command, so was able assemble 16K ROM images. After that there was not stopping me.

    P.S. We need a happy bouncy icon!

  16. Apocalypso - a cheery end to the world

    From another site:

    When asked about his work with Einstein, Kemeny wrote: "People would ask - did you know enough physics to help Einstein? My standard line was: Einstein did not need help in physics. But contrary to popular belief, Einstein did need help in mathematics. By which I do not mean that he wasn't good at mathematics. He was very good at it, but he was not an up-to-date, research-level mathematician. So he needed an assistant for that, and, frankly, I was more up-to-date in mathematics than he was."

    and from an acquaintance:

    "Yes, it's very sad. He was a brilliant man but he also was a warm human being. I wrote to him several times with questions about TrueBASIC (a language he and John Kemeny wrote to bring BASIC up to modern Dartmouth standards) and he always answered me with the correct answer and more than that, he gave me real world problems to solve and challenged me to solve them in BASIC and send him the resulting program. After I did, he'd write back and we would discuss alternate ways of solving the problem. He seemed to revel in our discussions. Even though I never had a class with him, I learned more about programming from him than I did in five years of college."

  17. f4ff5e1881
    Boffin

    Basically wonderful!

    Being a kid of the 80s, I love BASIC. It was wonderful that pretty much whatever home micro you got for your birthday/Xmas in that glorious decade, you’d switch it on, and you’d be plonked straight into a BASIC interpreter. A quick look at the manual for the BASIC commands, and off you’d go! For us 80s kids, it was the perfect, gentle introduction to programming.

    The early PCs generally came with a BASIC interpreter too (which was usually easy to find), so it does annoy me that modern PCs ditched including a BASIC with the OS years ago. Considering all the pointless cruft that’s stuffed into Windows these days (don’t get me started on Co-Pillock), would it really hurt Microsoft to re-introduce a minimal BASIC interpreter with Windows?

    Even though I’m in my fifties now, I’m still happily playing with BASIC – for me, as a long-time Acorn user, BBC BASIC is my dialect of choice. Although during my work life I have also sampled the delights of compiled versions such as Microsoft QuickBasic and PowerBasic; discovering ‘compiled’ BASIC was quite a revelation at the time, I can tell you!

  18. AndrueC Silver badge
    Happy

    Sinclair BASIC, BBC Basic, Locomotive BASIC (Amstrad CPC).

    The first three languages I used which set me on the path of a nearly 30 year career. Thanks, guys!

  19. ThomH

    10 PRINT "Thanks for igniting the spark that led to the career"

    20 GOTO 10

    1. Andy Mac
      Pint

      I can’t upvote this enough.

  20. Portent
    Pint

    VIC 20 for me

    10 PRINT "RIP"

    20 GOTO 10

  21. captain veg Silver badge

    the screen grab illustrating this article

    That takes me back. Remember DATA statements? MAT READ?!!!

    I freely admit to having initially struggled to get to grips with file IO when starting with Pascal. But really, what the EFFing EFF was DATA doing in any kind of program listing?

    -A.

    1. AndrewA

      Re: the screen grab illustrating this article

      The screenshot was from the book Illustrating BASIC written in 1977 by my late father Donald Alcock. Back in the day, one of the key problems that computers were used for was engineering, specifically finite state analysis of columns, beams and slabs. The key tools programmers used to attack this were vectors (or array), the matrix and its cousin the tensor, and these concepts were therefore implemented in the languages of this era, Fortran and BASIC. The MAT READ statement you see is for reading a matrix data structure into memory. DATA was used for populating an array.

      I remember, as I grew up, we discussed the compatibility issues of the multiple versions of BASIC and what he decided to include in the book - it was a very difficult decision. Anyway, this is what he wrote in the Preface:

      "There is soon to be a standard for "Minimal BASIC" by the American National Standards Institute (ANSI X3J2), and "Specification for Standard BASIC" by Bull, Freeman & Garland has been published by the National Computing Centre, UK (1973). These have not yet had time to encourage everyone to fall into line, so the BASIC that you meet will probably not be standard. I have accepted this as a fact of life, and, in writing this book, kept at my side ELEVEN manuals - each defining a different BASIC. Four of these versions are available on big computers operated by international "time-sharing" services; the other seven on computers ranging from big to "desk-top". From these eleven manuals I have tried to discover and point out where BASICs commonly differ from one another and recommend ways of avoiding dependence on any one particular version. I have used the word "portable" to describe a BASIC program written with independence in mind - and treat the need for portability as an axiom".

      At the time, as a civil engineer, he was writing an engineering-oriented OS that ran on a Ferranti (later ICL) minicomputer and so had access to a more fully implemented version of BASIC that implemented matrices.

      Regarding compatibility and standards: Argh! it's amazing how little has changed over the years - I'm looking at you SQL.

      1. This post has been deleted by its author

  22. Nifty

    I had a BASIC program published in an Amstrad PCW hobby magazine. The program allowed you to write structured BASIC with not one GOTO or line number in sight, it would 'compile' your structured program with it's named subroutines into a BASIC program that the PCW would execute. But my first and fond memory of learning and using BASIC in earnest was the BBC Micro, which if memory serves, did manage structured BASIC.

  23. Terry 6 Silver badge

    Dammit. I don't know what they were

    Mid 70's we were taught some coding in school.

    There were the cards that we had to use with special pencils- then send the stack off to Manchester University where they ran the code, and sent the cards back with the errors ( or deliberate attempts to smuggle in nasty loops that would sabotage the uni's computers). I have no idea what the language we used was called.

    Also IBM supplied us with a training computer they were trying out. It was red and looked like the supermarket tills they made.- Probably because they were similar inside too. This was programmed with lots of numbers. There were the numbers that had to be laboriously entered by hand to create what I assume was the OS. And then the numbers that told the machine what operation to perform with the contents of what memory location, and where to place the result, which was the programme

    I then did an IBM test, where they told me I had the aptitude to work with computers, but not be a programmer. I subsequently found from friends who did go into it, that they had practised before, whereas I literally wandered in off the street.

    So I went for my other career choice ( teaching kids with reading difficulties), but also taught myself BBC basic, 6502 assembly and some other bits. And for several decades I did educational IT support and training alongside my day job. Literally, at one point, being the only person training school heads and deputies how to use the new shiny RM PCs that had arrived in their offices.

  24. Kingstonian

    A useful language to learn

    The first thing I ever programmed (in 1969 at university ) was an olivetti programma 101 https://en.wikipedia.org/wiki/Programma_101 which was a programmable desktop calculator (desktop in the same way a laserjet II printer was thought of as a desktop printer) followed very shortly afterwards by BASIC on a PDP-8 (complete with a fast tape reader!). Shortly after that it was FORTRAN on an ICL 1900 I think - 50 years is a long time to remember. I then never got anywhere near a computer for 10 years until I trained in COBOL in 1981 and got a job as a trainee programmer.

    When IBM PCs were introduced it was back to BASIC on them including designing and writing programs interfacing with an IRMA card (3270 emulation) to interact with the mainframe programs written in COBOL and taking the output back onto the PC. The PC running BASIC was networked with other PCs running programs in C and interfacing with a NetWare server via token ring networks using IPX. A sort of early bespoke middleware I suppose between LANs and SNA networks.

    Sounds clunky but it worked well for many years. I like to think of it as proper programming but it would probably make anyone used to modern design methods wince.

  25. AndrewA

    If you were wondering about the graphic on the main page ...

    ... these are pages from "Illustrating BASIC (A simple programming language)" by Donald Alcock, published 1977, a book that introduced a lot of people to BASIC, especially in the United Kingdom. (https://www.amazon.co.uk/Illustrating-Basic-Simple-Programming-Language/dp/0521217040)

    The entire book was written and drawn by hand, and so could illustrate defective code with little bugs crawling over the mistake, or highlight important concepts.

    This book introduced me to BASIC on the ZX81, Dragon 32 then Sinclair QL as a pimply preteen just getting started on my life's passion. If there was anything I didn't quite understand I would go and trouble the author for additional explanation. But then again, he was my father.

    RIP Thomas.

    1. Kingstonian

      Re: If you were wondering about the graphic on the main page ...

      I have that book. Got it many many years ago

  26. Tron Silver badge

    BASIC may have done more than most things to kick start the computer revolution.

    For me, Sinclair BASIC on the ZX81 and Spectrum. Both came with superb manuals that took you right through BASIC programming. For younger readers, a manual is a printed book of instructions that came free with stuff.

    How many of us owe our interest, passion or career in tech in great part to those two, for creating BASIC and for placing it into the public domain.

    In the 80s it was a universal constant in computing. Almost everything had the ability to run BASIC.

    RIP.

    1. Dan 55 Silver badge

      Re: BASIC may have done more than most things to kick start the computer revolution.

      I think it was the right language at the right time (alright, released about 10 years before home computers, but still...). No other language would have been as accessible to the beginner and an interpreter could be fit into as little as 4K, although the original Dartmouth BASIC was compiled.

    2. This post has been deleted by its author

  27. Bump in the night
    Windows

    More BASIC nostalgia

    I learned it around 1970. Took to it immediately and used it to try and predict how high my model rocket would fly. I read about it's inferiority and using GO TOs, etc but had little idea about why. In the 80s, I managed to use it at on a simple project to handle a data file at work. The sales department demanded they have it, which I kind of smirked at because it was pretty crude.

    I really didn't learn much past that and thought my skills were pretty mediocre. I tried other languages, but never really advanced much.

    Then I happened to look up Intuit yesterday and learned that the first version of Quicken was originally written in BASIC. Maybe there was more to it than I gave it credit.

    1. AndrueC Silver badge
      Happy

      Re: More BASIC nostalgia

      I wrote a Unix clone in Locomotive BASIC (written on a CPC6128). One of the cornerstones was that Locomotive BASIC supported loading programs by line number range. Thus it was easy to write utilities - you just ensured that you stuck to a specific range of line numbers so that when they were loaded they didn't overwrite the OS' lines.

      It had a version of NRoff which modified screen font definitions to emulate underlining, bold and italics when writing to the screen.

      It had a compiler that faked procedure/function calls. Or maybe it should be a called preprocessor? I don't remember how I did that but I do remember using it to write some of the utilities and a couple of games using it. The end result was a normal Locomotive BASIC program that used GOTO and GOSUB I think.

      I wrote an interpreter as well (unless that's what I'm thinking of above). One annoyance was that unlike Sinclair BASIC whose VAL$ function could evaluate entire expressions Locomotive's could only evaluate numbers so I had to develop an expression parser. That was fun and educational though.

      it had a (very slow and limited) assembler and debugger using a fake CPU that I designed.

      It was capable of multi-tasking using Locomotive BASIC's event handling and timers (though sadly when it was waiting at a keyboard input prompt they were queued up until the input was entered).

      It supported slash terminated file paths by mapping them to the user areas on the disks.

      I called it Centrox. To be fair it was slow in a lot of things it did but I enjoyed it and learnt a lot.

  28. Grunchy Silver badge

    Just a collection of sub-programs

    Every command or instruction in any computer language is just another program.

    Even “machine language,” in which the instructions are programs that had been encoded with logic circuitry.

    https://www.dartmouth.edu/basicfifty/commands.html

    Basic has 15 main commands, 5 arithmetic expressions, and 10 numeric functions. Basic also has variables; arrays; string variables (just a special kind of array, with a handful of string-specific functions); plus user-defined functions.

    All told, basic is a collection of probably not even 100 core sub-programs (none of which are all that complicated).

    One thing that ticked me off, you could never do something cool like A=10:GO TO A, instead you could only do something like ON A GO TO 10,20,30 etc.

    1. fg_swe Silver badge

      False

      A good programming language has a proper syntax, grammar and quite a few semantic rules.

      If you look at a compiler or interpreter as a bunch of sub-programs, you miss the important parts.

      1. Anonymous Coward
        Anonymous Coward

        Re: False

        Not sure what point you're trying to make, if you look at any ROM disassembly of the time you'll find the interpeter code is split into sub-programs and related routines are usually found next to each other in the memory map.

    2. Dan 55 Silver badge

      Re: Just a collection of sub-programs

      One thing that ticked me off, you could never do something cool like A=10:GO TO A, instead you could only do something like ON A GO TO 10,20,30 etc.

      That depended on the version of BASIC, Sinclair BASIC could do that. Also GO TO 100 + A * 2 and so on.

    3. s151669

      Re: Just a collection of sub-programs

      MSX Basic had ON A GO(SUB|TO) 100,200,300

      Only gotcha of course was that the values of A were always 0,1,2 (could have been 1,2,3 - can't remember) for the example above. To get something like drawing program tool bar to work you needed to divide cursor coordinates so that values would fit. Cascading if to check if coordinates were within first button do this elseif coordinates were within second button etc was too slow.

      Of course, it was Microsoft there, what did you expect ? Flood fill was especially slow and entertaining to watch. Especially when you left 1 pixel gap somewhere.

  29. This post has been deleted by its author

    1. This post has been deleted by its author

  30. steviebuk Silver badge

    Thanks

    Thanks to Prof. Kurtz for allowing me to walk in to a WHSmith as a kid in the 80s and write

    10 PRINT "HELLO WORLD"

    20 GOTO 10

    I was too square to type anything rude.

    1. This post has been deleted by its author

  31. snee

    Many thanks to Prof. Kurtz.

    BASIC was always a bit more of a struggle for those of us with the Acorn Atom (I see the posts about Jupiter Ace and feel the pain)

  32. Sylvain :-)

    "Hits END"

    That's probably the greatest salute to the inventor of a programming language possible to use a keyword he invented to announce his departure from our world...

  33. Blackjack Silver badge

    BASIC was my first programing language unfortunately it was also the last one.

POST COMMENT House rules

Not a member of The Register? Create a new account here.

  • Enter your comment

  • Add an icon

Anonymous cowards cannot choose their icon

Other stories you might like