Wednesday, April 09, 2014

BASIC Turns 50

The BASIC programming language is turning 50 years old on April 30, 2014. Dartmouth is preparing to celebrate the day with a series of events on campus. If I lived in the area I'd certainly attend. BASIC has impacted my life in ways more positive than I can relate.
BASIC (Beginners All-purpose Symbolic Instruction Code) is the programming language developed by John Kemeny and Thomas Kurtz that later built Microsoft a programming empire. Versions of the language were included in lieu of operating systems in nearly every microcomputer in the 1980s. The language was later expanded, expounded upon, and otherwise improved to add the ability to use objects and events and structured syntax while retaining its simplistic roots.

I've written BASIC programs on and for the following machines: 
  • a timeshare system which I only knew by its terminal 
  • the TRS-80 Model I, II, and III
  • the TRS-80 Color Computer
  • the TI-99/4 and TI-99/4a Home Computers
  • the Commodore VIC-20, Commodore 64, Commodore Plus 4, and Commodore 128 computers 
  • the Atari 400 and Atari 800XL
  • the Apple II family
  • the IBM PC, in the following dialects:
    • Asic ("almost BASIC", a really awesome little DOS native compiler)
    • GWBASIC
    • QuickBASIC and QBASIC
    • Visual Basic
    • Visual Basic for Applications (VBA)
    • VB.NET
    • LotusScript (Yes, the primary language of Lotus Notes is a BASIC dialect)
  • for Linux in the following dialects:
    • FreeBASIC
    • Gambas
  • I've also had a few calculators (Casio and TI) that used BASIC as their programming language.
Gambas! (click)
Of the modern variants, I do like Gambas best, and make a decent living writing in LotusScript, and the various Visual Basics.

Haters Gonna Hate

BASIC is a language that it's very fashionable to hate.

Edsger W. Dijkstra famously said, "It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration." Meh. That's a snobbish attitude of the sort that would deride Captain Kirk for splitting his infinitives.

Besides, the criticism is largely obsolete. It's completely possible to write "good" code as defined by computer science snobs. Keep in mind, though, that "good" code isn't always defined by how elegant it is, or how "supportable", or how it conforms to one man's idea of mathematical purity and logical rigor. Often a task needs to be done, quickly, with a minimum of fuss and effort. A "good" program is one that does the job. Often, a few lines of procedural code will suffice to replace a rather complicated object-oriented affair, most of which exists to do nothing but frame the procedure that never required an object in the first place. A good modern Basic (like Gambas) does both, and you get to choose.

In truth, just as the freedom of English produces better poetry than the strictures of Latin, there is chaotic beauty in BASIC that isn't appreciated by coding purists who walk around as if they had punch cards up their butts that they're not allowed to fold, spindle, or mutilate. So beat up on BASIC all you like. Then we can talk about how fat your momma is, just to raise the maturity level of the conversation. ;)

Presents for All!

I think a really good idea for BASIC's birthday is to give away some free programs, written in BASIC. So I'll be doing that. On April 30 I'll release a program written in Gambas. Don't expect too much... it'll just be a nice little program that'll keep you clicking for a little while. You'll be able to tear it apart, look at the source code, see how an event-driven Gambas program works, etc.

Happy Birthday, BASIC!

0 Comments:

Post a Comment

<< Home