Google
 

Aardvark Daily

New Zealand's longest-running online daily news and commentary publication, now in its 25th year. The opinion pieces presented here are not purported to be fact but reasonable effort is made to ensure accuracy.

Content copyright © 1995 - 2019 to Bruce Simpson (aka Aardvark), the logo was kindly created for Aardvark Daily by the folks at aardvark.co.uk



Please visit the sponsor!
Please visit the sponsor!

Another computer-tech birthday

3 May 2024

You know you're getting old when you find that the language you once used to program all manner of microcomputers has turned 60.

Yes,good old BASIC has just celebrated its 60th birthday, something that should be significant to anyone whose first introduction to microcomputers was a machine like the Apple II, ZX80 or TRS80. It's significant because this was just about the only accessible and understandable language available to computer hobbyists way back then (in the late 1970s and early 1980s.

How many of us spent many long hours typing in program listings from the myriad of magazines and books that contained the BASIC code for dozens or even hunreds of games within their covers?

How many of us also then carefully saved that game to a cassette tape and crossed our fingers that it would load again when we wanted it... only to be disappointed?

Although BASIC was simple enough to be understood by even the dimmest bulb behind a keyboard, all the best programs were littered with huge blocks of DATA statements containing an incomprehensible array of numbers that were then programatically POKEd into various memory locations to to the heavy lifting.

During the 1980s I spent several years teaching BASIC programming at a polytech and loved every minute of it. Watching people go from complete ignorance to being able to create their own working programs was a delight.

Of course "real" programmers looked down on BASIC with disgust.

The most common version, MSBasic, was almost completely unstructured offering only subroutines and very primitive functions as a concession to the concept of modularlity and structure. You couldn't write anything other than a trivial program without use of the horrific GOTO statement.

I recall joking that the only thing worse than BASIC's GOTO would be a COMEFROM statement.

Also, with most implementations of BASIC being intepretive, it was slow -- sometimes very slow, especially when the garbage collection routines kicked in. I recall writing a sorting routine that would run fine, until it wouldn't. Turns out that after a certain number of iterations BASIC would spend several minutes re-organising its memory to create a contiguous pool and that effectively froze the whole machine for the period of that garbage collection.

I ended up rewriting that routine in Z80 assembler. The result was that it was about 10 times faster and never paused at all.

Eventually we saw a number of compilers come onto the market including the very excellent CBASIC that was actually a semi-compiler. It didn't create machine-code but an intermediate code that was both very small and pretty fast. Aimed at the business market it also used BCD maths rather than binary which meant it didn't suffer from the accumulating binary errors that other compilers of the day were prone to.

Even Microsoft eventualliy updated their basic to a more structured variant but by that time the likes of Turbo Pascal had arrived with all the benefits it offered. Faster compiles, a fantastic IDE with great debugging, dynamic overlays and super-efficient executable code combined with the benefit of a highly structured language meant that Turbo Pascal effectively replaced BASIC for a great many programmers on the PC platform.

Of course these days we're just spoilt for choice and there are more programming languages than you can shake a stick at.

Over the course of my lifetime I've programmed (with varying levels of success) in the following: Assembler (2650, 8080, 8085, Z80, X86), BASIC (MBASIC, CBASIC), Pascal (MT+, Turbo), Modula2, Java, Javascript, C, C++, Perl, Python, Kotlin.

Each of these languages has its own strengths and weaknesses but the one which I'll always hold dear to my heart is not BASIC. It's the assembly code of the Signetics 2650 processor that introduced me to microcomputers and their programming. Yeah, I was a *very* early adopter.

Right now I'm cutting quite a bit of code in Python and Kotlin as I polish my ADSB alarm and create another similar device for logging landings at the local airfield. While Python has some loose equivalence to BASIC, building Android apps with Kotlin is a very long way from those early days stuck behind the keyboard of a TRS80 Model 1, typing in a variant of noughts and crosses in BASIC.

Carpe Diem folks!

Please visit the sponsor!
Please visit the sponsor!

PERMALINK to this column


Rank This Aardvark Page

 

Change Font

Sci-Tech headlines

 


Features:

The EZ Battery Reconditioning scam

Beware The Alternative Energy Scammers

The Great "Run Your Car On Water" Scam

 

Recent Columns

The new pet rock?
Studies indicate that pets reduce stress levels, improve longevity and quality of life...

New scam: make your own snake oil at home!
So many people, so much stupidity, so little intelligent skepticism...

Youtube has a new scam for you
Yet again, Youtube is allowing scammers to hawk their wares on its platform...

The sky is not falling, but it is glowing
Did you get to see some aurora over the weekend?...

IToldYaSo -- the energy shortage
"Try not to feel too smug" ...

The fat new Apple iPad Pro
You can never be too rich or too thin, or so the saying goes...

Would you fly in a Boeing?
Boeing was once one of the USA's showcase corporations...

Spacely Sprockets is just around the corner
I guess it is now easy to see how the industrial revolution affected so many low-skill, low-paid workers back in the day...

Do we need some inspiration?
We live in a world that is loaded down with rules, regulations, bureaucracy and...

Another computer-tech birthday
You know you're getting old when you find that the language you once used to program...