Should All Programming Books be Written in TRS-80 Style?


The title, it was sort of a filter function.  I’m looking for intersection of two sets:  A. people old enough to know what a TRS-80 is, and B. people that read programming books.    If that isn’t you, I’d suggest going back to Facebook (us geeks need some alone time to talk about books, sorry.)

First, what is ‘TRS-80 Style?  You remember the “programming books” you had back when you were using a TRS-80.   They were 8’x10’, fixed-width font and they consisted of programs.   TRS-80 programming books were less books about programming and more “Program” books.  They listed an entire program in BASIC, line numbers and all.   Back in 1982 and 1983, I remember looking at these books and trying to work out exactly what they were all about.   Once I tried to type in an entire 5 page listing of a program to calculate your biorhythm.  It never worked.

trs80-i

Note: This was the quality of microcomputer programs in the early 1980s.  A five page BASIC program designed to print out some psuedo-science biorhythm on your screen.   It was either that or a program that would play Poker (a game that this six year-old had little interest in playing).

Yes, it would take hours.   You would type in every line of code (along with code line numbers), it would take hours for a kid to do this, then at the end of the process you would have to figure out what typos you added into this program listing.  Again, a six or seven year old has no idea, at least I didn’t.   I don’t remember how this was done back then because I didn’t pick up a modern editor (emacs) until I was in High School.   It may well be true that we were just typing these program listings into the command line, and running them… who knows?

Back then, it wasn’t like we were all in the hurried rush we are today where I get irritated if Netflix doesn’t start streaming Josie’s Hannah Montana episode in less than a second.    In the 1980s you had enough time to wait.  You had enough time to buy a book with 100 pages of BASIC and take the time to type the thing in even if you had no idea what all the code was doing.   Bruce Lee took 10 minutes to load, just enough time to listen to Grandmaster Flash or Kool Moe Dee.

Fast forward your TRS-80 Storage Tape 30 years…

Clearly, typing in program listings from computer books in 1982 puts you in a good position to become a programmer.   I did that, then I started writing programming books… the kind of programming books that have program listings in them.

If you look at some of the books I’ve written, I’m been pretty religious about making sure that, when practical, I don’t just list an excerpt of a Java class.  No, programming books have to have the whole file listed in its entirety, right?    This means that all of my examples have to be fairly constrained and overly simple.  I can’t write a book about some complex web application because it would be a waste of paper to print it out.

But, I think the time has come to break this style of writing.  When I started writing books in 2004, print was still King.  In fact, electronic distribution didn’t really exist, I mean it did, but it was an after-thought.  I mean I don’t even think that O’Reilly handled the conversion of books from pre-print to Safari for years… I think that was all farmed out to someone else (maybe I’m wrong about that).   These days, it’s a different story, books are electronic first and print material later (if ever).

If most books are electronic these days, and if books can contain live URLs and links to Github repositories (and soon, live code), does it make any sense at all to continue my TRS-80 program listing ways.   I’m thinking no.  I think we’re at the point where I can write a book with the following paragraph:

“If you want to follow along with this chapter, please click here to download the example.   If you are reading this on a dead tree, go download the examples, and if you are not connected to the Internet then, I’m really very sorry, but you probably need to get your head checked and find a new place to work with a less restrictive firewall.”