BASIC History: Kemeny & Kurtz

Good article on the origins of BASIC at Dartmouth. Andy Bernard (of Cornell) would be jealous!

http://www.i-programmer.info/history/people/739-kemeny-a-kurtz.html
"When you make a thing, a thing that is new, it is so complicated making it that it is bound to be ugly. But those that make it after you, they don’t have to worry about making it. And they can make it pretty, and so everybody can like it when others make it after you."

- Pablo Picasso
«13

Comments

  • 89 Comments sorted by Date Added Votes
  • Gates has been quoted as telling his development teams that he could get the same job (no matter what it was!) done using BASIC in just a few minutes. Kemeny and Kurtz really should have been proud of him.

    +1

    PropBASIC ROCKS!
  • Perhaps we still need BASIC.

    +1
    "When you make a thing, a thing that is new, it is so complicated making it that it is bound to be ugly. But those that make it after you, they don’t have to worry about making it. And they can make it pretty, and so everybody can like it when others make it after you."

    - Pablo Picasso
  • Mickster,
    Gates has been quoted as telling his development teams that he could get the same job (no matter what it was!) done using BASIC in just a few minutes.
    Do you have a link to such a quote?

    Sounds silly given that doing anything interesting in BASIC is all but impossible.

    Of course things improved with Microsoft's Visual Basic and such. But they are not children of BASIC as much as they are children of ALGOL.

  • Heater. wrote: »
    Sounds silly given that doing anything interesting in BASIC is all but impossible.

    -1
    "When you make a thing, a thing that is new, it is so complicated making it that it is bound to be ugly. But those that make it after you, they don’t have to worry about making it. And they can make it pretty, and so everybody can like it when others make it after you."

    - Pablo Picasso
  • As someone who has written Basic compilers and a C compiler, Basic is anywhere from 2-10 times faster, depending on the architecture.

    On applications where speed doesn't matter, imagine having twice the battery life.

    Heater, I have said this before: Parallax is an embedded control company. Do you notice how the Propeller was designed with concerns about determinism, not database programming? If you go to learn.parallax.com, there's robots and stuff, not cloud services.
    I am the Master, and technology my slave.
  • Some lines in BASIC made a good mainloop for own assembler subroutines disguised as (homegr)own BASIC keywords in TRS-80 and later C64 days. ;-)
    Windows.
    No Source – No Go!
    Please help: http://rosettacode.org/wiki/Category:Spin
    Why Asimov's Laws of Robotics Don't Work - Computerphile
    DNA is a four letter word.
  • Heater. wrote: »
    Sounds silly given that doing anything interesting in BASIC is all but impossible.

    -1

    Re-inventing the wheel is not a waste of time if, when you are done, you understand why it is round.
    Cool, CA, USA 95614
  • The_Master wrote: »
    Heater, I have said this before: Parallax is an embedded control company. Do you notice how the Propeller was designed with concerns about determinism, not database programming? If you go to learn.parallax.com, there's robots and stuff, not cloud services.
    While I agree that Heater does regularly make unsubstantiated statements about the Propeller's programming environment. In this case, the topic that Erco has linked is all about general computing and the embarrassing existence of BASIC well beyond it's intended primitive purpose. So Heater can validly make such broad comments.

    Do those performance BASIC compilers of yours build for general computing platforms?
    "Since 1978, the cost of textbooks has risen 812%, outpacing even the cost of medical services and new housing."
  • The linked article was about a language alone, on a forum at Parallax.

    So if the platform DID come into play, I guess it would have to be Stamp or Propeller.

    I am the Master, and technology my slave.
  • @erco, tomcrawford,

    Ouch! Got some down votes there.

    What I said was "..doing anything interesting in BASIC is all but impossible"
    Well, has anyone tried to write an expression parser or tree traversal algorithm in BASIC?
    I mean good old Dartmouth BASIC. Not the newer BASICs that are children of ALGOL.

    The_Master,
    Heater, I have said this before: Parallax is an embedded control company. Do you notice how the Propeller was designed with concerns about determinism, not database programming? If you go to learn.parallax.com, there's robots and stuff, not cloud services.
    Please, I am not a spring chicken web developer. I have spent a good chunk of my life creating real-time systems. Starting on the first 8 bit microprocessors. Even punching our code into the ROMs in hexadecimal because there was no assembler available.

    Imagine how hard it is to get four Intel 8085s to work together with shared RAM. A Propeller at that time would have been great!
    As someone who has written Basic compilers and a C compiler, Basic is anywhere from 2-10 times faster, depending on the architecture.
    Hmm...You might have to specify what BASIC you are talking about. There are so many. In my experience it's hard to beat a C compiler even writing assembler by hand. Almost never worth the bother.








  • 10 print "Welcome Back!"
    20 goto 10 
    
  • David BetzDavid Betz Posts: 11,192
    edited February 23 Vote Up0Vote Down
    xanadu wrote: »
    10 print "Welcome Back!"
    20 goto 10 
    
    There's something appealing about BASIC for simple programs. :-)

  • Heater. wrote: »
    Mickster,
    Gates has been quoted as telling his development teams that he could get the same job (no matter what it was!) done using BASIC in just a few minutes.
    Do you have a link to such a quote?

    http://www.i-programmer.info/history/people/739-kemeny-a-kurtz.html?start=2
    Just above the pic of the vanity plate
    Heater. wrote: »
    Sounds silly given that doing anything interesting in BASIC is all but impossible.

    Of course things improved with Microsoft's Visual Basic and such. But they are not children of BASIC as much as they are children of ALGOL.

    You mentioned that you were once in business for yourself, I have been since 1987, thanks to Gates' QuickBasic. By 1989, I was turning-over > $800K, 1993 was $7M.
    I hired two REAL programmers (from Westinghouse) who both worshipped their K&R bibles and it was agreed that they would be allowed to re-write the code in C. It never happened because once they started to work in MS-PDS 7.1 (professional QuickBasic), they realized the possibilities such as not having to compile-link (threaded p-code) until after debug.

    I skipped VB in favour of PowerBasic.

    Business is booming for me and my programming is ALL Basic + a small amount of asm for the deterministic stuff.
    PropBASIC ROCKS!
  • Hmm...

    When BASIC was the thing, think C64, Sinclair, etc it was more like:
    10 print "Something horribly rude, crude and offensive"
    20 goto 10 
    
    Then run out of the store that was demoing such machines.

    Kids learn fast.

    Ah, happy times.

    Despite my downer on BASIC, David, you are right. For that first introduction to even the idea of programming BASIC works just fine.


  • GordonMcCombGordonMcComb Posts: 2,939
    edited February 24 Vote Up0Vote Down
    In the late 70s I worked for Radio Shack selling TRS-80 computers. When a parent came in to ask if the thing would help their son or daughter in school, I typed in something very close to Xanadu's example. Nine times out of 10 I made the sale.

    Regardless of the landscape of languages today, BASIC had a profound impact on spreading an interest in programming and home computers. As a one-afternoon lesson, it's still a great way for tweens to learn the basics of coding.

    I don't think Gates would really believe he could code DOS or an applications program in BASIC, but he was a champion of the language, having written a version for the Altair back in 1975. It's what prompted his now-famous anti-piracy plea. He made sure it remained prominent in PC/MS-DOS. Microsoft still offers Small Basic, which is pretty neat for teaching kids. It includes a turtle object similar in function and design as that in Turtle Logo.
    While (1=1)
      TextWindow.WriteLine("Welcome Back!")
    EndWhile
    

    You could use Goto if you wanted.

  • I have never used line numbers with Basic. You're just showing how out of touch you are. It's like the worst of all worlds-- out of touch, and yet dogmatic about the BAD bad aspects of something 'modern'.

    The few platforms decades ago that used line numbers for Basic also used them for other languages. Line numbers definitely aren't what defines something as Basic.

    "Kids today" who think of 'Basic' might think of the Basic Stamp, or VB, and have no idea what those line numbers are. Time to enter the 80's, dude.
    I am the Master, and technology my slave.
  • Old school BASIC was second only to Forth in the "doing a lot with a little" sweepstakes, and much easier for a n00b to understand. Tiny BASIC managed to fit the interpreter, interactive console, and somewhat useful user programs in 4 kilobytes of RAM. The interactive environment improved as computer capabilities expanded, always delivering a lot for a little. The first BASIC compilers were very primitive, just stringing together what would have been interpreter CALLs in the object code, but they gradually got more sophisticated throughout the 80's, taking advantage of optimization techniques that had been developed for more "powerful" languages.

    BASIC always stayed a very safe language, with thorough bounds checking and immune to things like buffer overflows. Strings did not have to be declared for length and elaborate manipulations were both safe and efficient. In the 80's garbage collection glitches were still apparent but at some point in the 90's Microsoft managed to make them invisible. VB3 was still a token interpreter that couldn't compete with "real" compiled languages, but VB4 sported a surprisingly good compiler. For rapid application development it ran laps around C, and ruled the GUI world until Microsoft stabbed everyone in the back with the thoroughly incompatible dot-Net which was not so much BASIC as C# with different keywords.

    BASIC might have faded in the 90's except for VB3 reducing "hello world" for Windows from several hundred lines of code back to one line. And BASIC was the perfect language for that seduction of the application programming community. Even bloated up to automate the making of GUI programs and handling of other common business logic, the basic efficiencies built into the language made it perfect for those early machines to deliver a graphical user interface.

    I still use VB6 for most PC development; as long as you avoid glitchy plugins (I code everything to the API) it's stable, efficient, and runs on everything including Mac and Linux via Wine. Array functions aren't as advanced as Javascript's but are much faster and predictable. Megabyte strings are handled without obvious GC glitches. The time and date functions are among the best ever deployed. The byte codes are no more and the compiler is fast, the compiled code is fast, and it's a mature product that hasn't given me a buggy surprise in many years.

    VB is indeed very bloated compared to legacy BASICs, but that's because it runs on fantastically powerful systems where that bloat isn't costly. And it is still a recognizable relative of legacy BASICs. You can easily transition back and forth, because when you strip out the features in VB that obviously can't work on a VIC-20, what you're left with is pretty close to VIC-20 BASIC.
  • The_Master,
    I have never used line numbers with Basic.
    Ah, so you have never actually used BASIC.
    You're just showing how out of touch you are. It's like the worst of all worlds-- out of touch, and yet dogmatic about the BAD bad aspects of something 'modern'.
    Really.

    Currently I have to be prepared to roll up my sleeves and deal with Pascal, C, C++, Go, Java, Javascript, Python, PHP.

    For fun I mess with the Propeller and Spin.

    Good grief, what more do you want?
    The few platforms decades ago that used line numbers for Basic also used them for other languages
    That is a funny thing. In 1974 when I was first introduced to programming we were shown BASIC and assembler. Guess what, BASIC had line numbers, the assembler had actual labels.

    Admittedly there was FORTRAN which I think had line numbers, and I know nothing about. But by 1976 we were into ALGOL which did not. Neither did other languages you may have heard of, like C.
    Line numbers definitely aren't what defines something as Basic.
    Actually, I think it does.

    When you get away from line numbers you are recreating the ideas of ALGOL and it's descendants. Not following the BASIC lineage.
    Time to enter the 80's, dude.
    Please don't be so rude as to call me "dude". I'm probably old enough to be your grandfather.

    In the 1980's we had things better than BASIC. One of them was PL/M.

  • All this discussion has me waxing nostalgic to pull my Commodore 64 down from the attic and move some sprites around a TV screen. Now where did I leave my Super Expander cartridge, Vorpal loader and 1541 alignment tester?
    "When you make a thing, a thing that is new, it is so complicated making it that it is bound to be ugly. But those that make it after you, they don’t have to worry about making it. And they can make it pretty, and so everybody can like it when others make it after you."

    - Pablo Picasso
  • Phil Pilgrim (PhiPi)Phil Pilgrim (PhiPi) Posts: 20,865
    edited February 24 Vote Up0Vote Down
    The_Master wrote:
    I have never used line numbers with Basic. You're just showing how out of touch you are. It's like the worst of all worlds-- out of touch, and yet dogmatic about the BAD bad aspects of something 'modern'.

    You've obviously never had to edit BASIC programs on a KSR33 Teletype terminal.

    -Phil
    “Perfection is achieved not when there is nothing more to add, but when there is nothing left to take away. -Antoine de Saint-Exupery
  • The_Master wrote: »
    The linked article was about a language alone, on a forum at Parallax.
    It's about the origins of BASIC. Which is of the general computing arena. Mickster quoted from the article and Heater responded appropriately. And both have continued that discussion which you'll note has nothing to do with the Propeller.

    The article also compares with today's general computing uses only. Ending with references to BASIC being ideal as a teaching aid for the uneducated. I'm happy to say that's exactly how I got started. There was no-one providing any leasons at school, I taught myself on the only computer the school had. It was a CPM machine that had a floppy disk with BASIC preconfigured to boot straight to the interpreter. BASIC was all I used, I never knew what CPM was until years later.
    "Since 1978, the cost of textbooks has risen 812%, outpacing even the cost of medical services and new housing."
  • KeithEKeithE Posts: 639
    edited February 24 Vote Up0Vote Down
    Heater, a little research finds quotes such as:

    "Around 1975 or so we ceased using line numbers at Dartmouth, and what a relief"

    Thomas E. Kurtz
    Co-inventor of BASIC

    That's over 4 decades ago!
  • In the years before full screen program editors, line numbers were quite useful for editing and adding code to an existing program. You could only view a few lines of a program at a time (often on a wide but short LCD screen) to decide where the new code should go, say between lines 60 and 70. You had the luxury to potentially add lines 61-69. Or to delete line 70, just hit 7-0-Return. Like magic!
    "When you make a thing, a thing that is new, it is so complicated making it that it is bound to be ugly. But those that make it after you, they don’t have to worry about making it. And they can make it pretty, and so everybody can like it when others make it after you."

    - Pablo Picasso
  • Don't forget the RENumber command, for when you ran out of interpolative line numbers.

    -Phil
    “Perfection is achieved not when there is nothing more to add, but when there is nothing left to take away. -Antoine de Saint-Exupery
  • evanh wrote: »
    The_Master wrote: »
    The linked article was about a language alone, on a forum at Parallax.
    It's about the origins of BASIC. Which is of the general computing arena. Mickster quoted from the article and Heater responded appropriately. And both have continued that discussion which you'll note has nothing to do with the Propeller.

    However, IIRC, the benchmarks published on this forum (can't find them) show that PropBasic is the most efficient HLL available for the Prop. Not bad for something that Bean APPEARS to have just thrown out there, how many years ago?
    Presumably, C is now able to get close.

    PropBASIC ROCKS!
  • @KeithE,

    That is an interesting factoid about line number free Dartmouth BASIC that I did not know before.

    Of course that change did not reach any machine I had access to up until the last year I had to use BASIC, 1976. Soon after that the world was flooded with microcomputers that came with BASIC with line numbers, Apple, Commodore, Sinclair, etc, etc. Thank you Bill Gates.

    @Mickster

    PropBASIC is impressive. Not sure why it's got BASIC in the name. It does not look like a BASIC.

    Perhaps I should fire up my Z80 emulator for the Prop and have a play with Microsoft's 4K and 8K BASIC. For old times sake.

  • KeithE wrote: »
    Heater, a little research finds quotes such as:

    "Around 1975 or so we ceased using line numbers at Dartmouth, and what a relief"

    Thomas E. Kurtz
    Co-inventor of BASIC

    That's over 4 decades ago!
    Interesting. When the got rid of line numbers, what did they use as targets for "goto" and "gosub"? Did they use alphanumeric labels?
  • This is interesting. The last Dartmouth BASIC manual I can find is from 1968. For sure it is still using line numbers.
    http://www.mirrorservice.org/sites/www.bitsavers.org/pdf/dartmouth/BASIC_4th_Edition_Jan68.pdf



  • ceptimusceptimus Posts: 38
    edited February 24 Vote Up0Vote Down
    I think BASIC with line numbers was remarkably good for those limited computers we had back in the 80s. It ran well on machines with only a few KB of RAM; it was ready to go as soon as you switched on the computer (usually the slowest thing from hitting the power switch was waiting for the CRT to warm up); it was virtually impossible to crash the machine by accident - you had to use POKE or SYS calls to do that.

    Contrast with FORTH, which was the only real alternative that could run on a similar low-powered machine without needing disk drives and such. FORTH was/is faster and more powerful, but much harder for a beginner to learn and likely to crash the computer very often during development without even trying.

    ?SYNTAX ERROR
    READY.
    -_-
  • ceptimus wrote: »
    I think BASIC with line numbers was remarkably good for those limited computers we had back in the 80s. It ran well on machines with only a few KB of RAM; it was ready to go as soon as you switched on the computer (usually the slowest thing from hitting the power switch was waiting for the CRT to warm up); it was virtually impossible to crash the machine by accident - you had to use POKES and SYS calls to do that.

    Contrast with Forth, which was the only real alternative that could run on a similar low-powered machine without needing disk drives and such. Forth was/is faster and more powerful, but much harder for a beginner to learn and likely to crash the computer very often during development without even trying.

    ?SYNTAX ERROR
    READY.
    -_-
    One of the things I really didn't like about Forth back in the beginning was its way of accessing disks. It used a raw block scheme rather than a filesystem. I guess that was the minimalist approach but it seemed rather backward to me.

Sign In or Register to comment.