[Tutor] Newbie Anxiety

Alan Gauld alan.gauld at freenet.co.uk
Fri Nov 11 12:18:57 CET 2005

Ah, memory lane time again :-)

>A good natured word of explanation for Chris and others:
> 10 FORN=1TO10:?N:NEXTN: REM  It is bad form not to name N after NEXT to
> label which FOR NEXT loop is being incremented.

Oh, you had advanced BASIC - it allowed nested for loops! :-)
My first BASIC only allowed for loops that could be written in a single
line...Anything more complex you had to call a subroutine with GOSUB.

> and replacing big IBM systems with tiny multi-user systems, and we had
> only 48,000 bytes of RAM CORE, of which 20,500 bytes was used for the
> entire operating system,

Yes, I remember those days, in fact 48K was quite generous!
My original box only had 16K RAM and 16K ROM for the OS and interpreter.

> SPEED, which meant a lightning fast BASIC (which we hired Steve Jobs to

Ah yes, now there's another difference. Our BASIC was SLOOOOOW!
The machine was slow too, it had a 500KHz clock - yes, half a megahertz!

> accomplished in a single program, thus forcing a jump to a new program,
> all of which again cut down on speed of getting things done because we
> had to write our variables to disk before making the jump,

You had Disks?!! We were using loops of punched tape...

> reloaded them in the "chained" program next to be executed making a big
> PAUSE in the process of processing.

Yes, the forerunner of Overlay programming, I used to have such fun
debugging Overlays! :-(

> line-number-orientated language, and GOTO naturally follows as the size
> of the program increases.

And here we have another advanced feature. Our BASIC didn't renumber
GOTO or GOSUB statements, you had to do that manually. Thats why we
used a lot of GOSUB but very few GOTO. And SUBs were all given 1000
lines each to minimise risk of renumbering...

> point of view, that the real grade for excellence that counts, is the
> real world reward of what happens and continues to happen with your
> business's bank account.

Depends on how you measure excellence. A lot of excellent software has
been written by companies that went bust. The software was sufficiently
excellent to survive and be bought out or just made publicly available as
open source. So excellence can also be measured on how long lived the
software is regardless of how long lived be the commercial body that created

> And while I am sure someone is thinking Spaghetti Code, our style was
> highly conventionalized, something that we enforced rather strictly.

Yep you can write structured assembly and spaghetti Python. Its ultimately
about behaviours not language.

> writing 99% of our code in Basic. (IT WAS A VERY
> VERY VERY FAST BASIC.) So, you see, Basic was my ONLY language.

But I've fortunately never been limited to one language, even on my most
primitive machines I've had recourse to assembler, and usually some kind
of scripting environment. Only on very early PCs, where BASIC was the OS
was I so restricted - and PEEK/POKE were my friends :-).

> only real concern has been in how the flow of python works for the WHOLE
> PROGRAM FLOW, and you all have help me a lot here.......and I really

One of the things that some folks find hard is divorcing themselves from 
old line by line way of thinking. Modern languages can seem a little like
black magic at times(*) - especially when you start programming with 
The trick is to trust the language and just believe it will work! :-)

(*)I'm having the same problem right now with the JSP Tomcat/Struts
framework where all sorts of magical things just seem to happen. I keep
fighting my desire to go trawl through the source code to see what's going
on. Then I tell myself  ' just trust in the force Luke...'

Enjoy your voyage of discovery and question us freely here on tutor.

Alan G
Author of the learn to program web tutor

More information about the Tutor mailing list