50 Years of BASIC, the Language That Made Computers Personal
harrymcc (1641347) writes "On May 1, 1964 at 4 a.m. in a computer room at Dartmouth University, the first programs written in BASIC ran on the university's brand-new time-sharing system. With these two innovations, John Kemeny and Thomas Kurtz didn't just make it easier to learn how to program a computer: They offered Dartmouth students a form of interactive, personal computing years before the invention of the PC. Over at TIME.com, I chronicle BASIC's first 50 years with a feature with thoughts from Kurtz, Microsoft's Paul Allen and many others."
I mean Basic isn't difficult either, but I really don't understand the perspective at the time that FORTRAN was so complex that BASIC and COBOL were really needed for their syntax changes alone. All of the explinations I've read about them, invariably have the line somewhere about FORTRAN being so difficult to understand that only scientists could master it. I understand they were all invented for different problem domains and that's kind of a good reason in and of itself, but sheesh, its not like it was brain fudge.
Well.. maybe. Or Maybe not. But Definitely not sort of.
I grew up with a little TRS-80 on which you had to learn BASIC to so much as load a file. In Grade Three I was learning things like coordinate geometry and algebra, while my peers were struggling with their multiplication tables. I remember when my peers were introduced to algebra for the first time, some of them had difficulty understanding how x could be a number, while I was busy making adventure games at home.
Thanks to this head start in life, I now have a job in IT. BASIC gave me a great head start in computer literacy!
"The single biggest problem in communication is the illusion that it has taken place." George Bernard Shaw
10 PRINT "Happy Birthday, Basic"
20 GOTO 10
The BBC Model B equipped with BBC BASIC was released in 1981. As well as the usual litany of BASIC like features (i.e. goto), it had proper named procedures and functions with local variables, which allowed structured programming. It didn't have proper block structured if though.
It also had dynamic memory allocation and pointer indirection (not that wretched peek and poke stuff).
It was still tied to line numbers though, but in practive you (a) didn't need them except for computed goto and jump tables and (b) it had a proper renumbering command if you needed to insert space which corrected all the gotos, gosubs and jump tables (but not obviously computed goto).
It had a 5 byte floating point system build in too, which while slow was pretty decent.
Was quite powerful. It also had graphics and sound built in, which made it very nice to play with.
And then I graduated on to QB when I switched to a PC. Mostly QBasic then a pirated version of QuickBasic. Actually my dad was very against piracy but relented when we phoned a Microsoft sales office and they denied all knowledge of such a product and tried to hawk us an early version of Visual Basic.
QBasic was a fantastic system, especially given it was free with PCs, and I challenge anyone to claim otherwise with good justification.
SJW n. One who posts facts.
Richard Garriott (of Ultima fame) is running an interesting challenge to port his very first RPG computer game, written in BASIC on a teletype connected to a PDP-11, into a web-friendly or Unity version. https://www.shroudoftheavatar....
The truth about C:
https://www.gnu.org/fun/jokes/...
Now seriously. Pascal was published some 2 years before Kernighan and Ritchie released their masterpiece. Having the opportunity to have a long look at Pascal and yet coming up with something like C shows a very strong character.
If IBM had gone to Chuck Moore instead of Bill Gates (or rather, his mom) for their 4.77MHz 8088 PC, your title might have been "50 years of FORTH, the Language That Made Computers Personal".
But, then again, if IBM had done that, the personal computer era might have been bypassed entirely with the network computer launching the equivalent of the WWW in 1983.
Seastead this.
I bought a VIc-20 in 1982 to use in my woodworking business. I learned BASIC on it by trying to key in the Tank vs UFO game that was printed in the manual. I don't know if it was all of my typos or errors in the printed listing (both likely), but through debugging that ASCII character game, I got started in the direction that took me to working in IT.
No, it just shows habit. C was descended from B, which descended from BCPL. They just did more of the same, instead of going to someone else's syntax.
And, having programmed in Pascal for 15 years. Pascal as defined was not suitable for large projects, whereas C was. Every Pascal compiler had to have some non-standard add-ons to handle modularity. And they were all different. Obviously, the Borland model came to have the status of a de-facto standard, but that was not till some years later. You could not have written Unix in standard Pascal; it was written in standard C. Wirth acknowledged the modularity failings of Pascal in his Modula language family, but by that time he had missed the bus.
Consciousness is an illusion caused by an excess of self consciousness.
Lisp was invented in 1958. Can you imagine a world were personal computers had Lisp instead of BASIC? We would have had the singularity the year after IBM released the AT!
I haven't coded in Pascal since the good old DOS days, when I was about 17, but at the time was writing TSR apps, picture viewers (GIF, PCX, BMP, TIF), some graphic-mode UI, including mouse support, even some VGA graphic demos. I can't think of anything that I couldn't do in Pascal (and some ASM, I give you that). In fact, it's the reason I never got too heavily into C...
I started working on computers in the early 80's... The first one I used was a TI 99 4a. It had tape drives and a TV set as a monitor, and a horrific keypad (note: not keyboard). Then my brother got a PC Jr. and I started hacking with that and then went off to college. As an engineering major, I learned FORTRAN on punched cards. I hated it! Swore I'd never have a job where I used computers.
.Net - recycle old VB programmers and old C programmers using the CLR. At the end of the day, not much difference between C# and VB.net. Now I don't code anymore, I'm a VP at that insurance company. But I owe a lot of my career for having a tool like Basic available to me in my formative years. Sure, it teaches you some bad coding habits. But just like anything else, you learn from that, and others, and classes (and objects for those who like puns). Those who say that you can't be a good programmer after having learned basic are either elitist snobs or idiots. Sometimes you have to do it wrong first to see how doing it right makes all the difference. So Happy Birthday Basic - I love ya' baby.
Then my brother got the family to chip in and buy me a Tandy 1000a. It came with DOS, Deskmate, and Basic. I started programming in Basic using the concepts I had learned in FORTRAN. By the end, I think I had dumped about $5,000 into that computer. Printers, memory upgrades, floppy upgrades, hard drive, monitor, etc. And still was able to do amazing things with Basic and with BAT files.
My first job was with Arthur Andersen. COBOL. Batch COBOL. 2.5 years of it. Learned it in 6 weeks, and spent the rest of my career there either coding it or writing tech specs for it.
Went to work at an insurance company coding SqlWindows, a now obscure 4th gen programming language. But hey, it was Windows programming. Spent 10 years there in a variety of roles.
After that I set up my own web development shop... Wrote classic ASP which is essentially Basic for the web. And then went to work at another insurance company, writing, you guessed it, Microsoft VB.net. Granted, VB.net was a far cry from the original basic, and probably would have been better off learning C#. But that was Microsoft's strategy with
Brawndo: It's what plants crave!
``Pascal as defined was not suitable for large projects...''
Unless of course, one is Dr. Donald Knuth, then one creates a brand new programming paradigm: http://www.literateprogramming...
and writes programs such as TeX: http://www.ctan.org/tex-archiv...
Somewhere, I have a copy of the Oberon language manual printed out --- it's quite cool, and very concise.
Sphinx of black quartz, judge my vow.
That's not really a good idea, Basic is hardly thread-safe!
We used to have a Bill of Rights. Now, with the rights gone, all we have left is the bill.
I do not deny that Knuth, and Wirth, created other, very cool, programming languages later. But I stand by my statement that Pascal, as originally defined, was not suitable for large projects, a failing that Wirth himself recognised.
Consciousness is an illusion caused by an excess of self consciousness.
So, if you are surrounded by idiots as early as middle school, you'll get better grades.
When I was a kid, I wanted to be a machinist. I love working with my hands.
In Middle School and High School, there were these "idiots" who took shop barely passed Algebra and took jobs that gave them credit to graduate.
My parents didn't want me to be a blue collar worker and demanded I go to college. Part of it was that they wanted something more for me - blue collar jobs were being sent down South (Carolinas, GA, FL, etc ..) at the time and the "college boys" had their cushy salaried jobs and were the ones laying people off and sending jobs to the South - "those Southerners took our jobs!" (The good ole days before Globalization).
Years later, I was patting myself on the back for making 6 figures when I bumped into an "idiot" I went to school with. Well, I met him for lunch at his $5 million tool and die company - and I let my parents know about it.
Well, today he's lost a bit of business because of off-shoring but is still doing well and he's still respected for being a business owner.
I'm unemployable with savings dried up, investments gone, and people telling me that I'm no good and stupid - Maybe so.
Of course today, being a machinist is pretty much "monkey pushes the button" for these high tech CNC machines - the designers write the programs.
I digress.
tl;dr: "Stupid people" have their place and don't be surprised if they are more successful than you.
PS, think about what you are doing in IT/Software development. What do you really offer society and humanity?
Looking at the "apps" and "technology" coming out of Silicon Valley, I have to say, they offer no value. The just contribute to our mindless consumer society.
Google, Yahoo!, Apple, etc ... are just consumer products and services that exist for us to ... consume. No value.
My corner mechanic offers more to society than all of you in Silicon Valley. Same goes for the nurse at my hospital. We in software and IT like to think we offer so much but really, what do we do? Or what does you job do? All of you working at Facebook are a waste. Same goes for you Google "engineers" - you are nothing but marketing people.
Just a waste.
Basic was my first programming language, and I actually spent almost 10 years using it before moving onto more structured languages like C, but it wasn't too long after I learned Basic that I found that my favorite features of the language were the ones that enabled me to extend it with my own customizations, which I would have to write in assembler. If I remember correctly, the relevant basic keywords in the implementation that I used were 'usr' and '&... practically turning it into another language with all of the extensions that I would throw in.
File under 'M' for 'Manic ranting'
editors:
s/University/College/
(hoping that wasn't an editorial 'correction' since TIME got it right)
Also, there's a party all day on campus tomorrow.
My God, it's Full of Source!
OUTSIDE_IP=$(dig +short my.ip @outsideip.net)
Then you've probably never even touched COBOL in your live.
All shops I've worked for are actually pretty hardcore about performance, testing against other languages whenever a compiler is updated.
Nobody wants to program COBOL code, it's just that it's a produces very good binaries for the specific (financial) tasks it was designed for.
Or do you really think all those COBOL programmers still active are only doing it out of legacy support?
Slashdot social media options: AIM, ICQ, Yahoo, Jabber and Mobile Text. Why no MySpace?
The reason I promoted Forth as a graphics communications protocol alternative to NAPLPS is the Western Electric Videotex terminals for the Viewtron service were so limited in RAM and ROM (far more limited than the first 4.77MHz IBM PC) that it needed a highly compressed representation of the firmware for decent graphics performance. Forth provided that and it would have further allowed dynamically downloading tokenized Forth stack functions (called 'words'). I talked about this with the guys at PARC late 1982 (prior to PostScript spinning off). Forth was lousy as a high level language but great as a macro-assembler for a hardware Forth chip -- a macro-assembler in which implementing the Smalltalk -- or Simula -- as an OS user interface would have had a very small memory footprint compared to a full-blown Smalltalk environment. Performance wise, the NOVIX chip was 16,000 transistors and was a full 16-bit wide FORTH hardware machine running at 24MIPS whereas the 8088 was 29,000 transistors but had an 8 bit bus running at about 2-3MIPS. Both were 3um technology. This initial implementation wouldn't have had enough memory to allow the full optimizations, such as type inference w/JIT etc that were then known possible and are now realized in the V8 JS interpreter, but it would have been at least as fast as BASIC as well as providing a clear migration path to vastly superior software development. As for price, well, Tesler was at PARC and had published on type inference -- and Jobs got him away. There's no particular reason something like small Simula core couldn't have been quickly implemented atop the Forth machine and Chuck Moore's low level drivers etc. In any event, IBM could have gone to Xerox and offered to buy PARC from them and Xerox would probably have sold it cheap. Xerox undervalued the work at PARC.
Seastead this.