From: Jeff Duntemann - duntemann.com
Sent: Friday, November 21, 2008 8:02 AM
Subject: Turbo Pascal v1 25th anniversary…
[ David I. note: Jeff Duntemann is a self described "writer, editor, technologist, and contrarian". He is the author (and co-author) of many programming books. And, for a time, was a Borland employee as the editor-in-chief of Turbo Technix Magazine. ]
Turbo Pascal, for me, was instant lust. It wasn’t solely the language; at the time I discovered it I had programmed in several languages, and apart from FORTH and APL I liked them all. What sold me on Turbo Pascal forever was that it reduced the time cost of making mistakes almost to zero.
Consider how I learned FORTRAN in high school in 1969: I waited in line for a free card punch and spent half an hour pounding in a card deck, which then sat in a cubby rack waiting its turn to run on the mainframe downtown. I came back three periods later and with some luck my card deck was back in the cubby rack, wrapped it its printout like a burrito. Any errors (compile time or runtime) meant I had to start over. If I made too many, I would miss the deadline for turning in the project.
What this meant is that I became a sort of 17-year-old, hormone-maddened FORTRAN preprocessor. I wrote my code in block printing on a quadrille pad, and I went over every line eight or ten times, scanning characters from left to right and triple-checking syntax and other details in my textbook. Only after I was virtually certain of its correctness did I dare commit the program to cards. The cost of mistakes, in time wasted waiting in line for a card punch and the risk of missing deadlines, was very, very high.
The cost of mistakes went down incrementally over the next fifteen years, but pre-Turbo it remained fairly high. In January of 1984 I was working at Xerox MIS/DP in Rochester, New York. I was porting a data validation/store-and-forward system (using 300-baud acousticouplers!) from an awful in-house language to the Xerox 820-II, a rugged but backward-looking 4 MHz Z80 CP/M system with dual 8” floppies and no hard drive. I was using Pascal/MT+, which Xerox had paid $350 for at my insistence. I had over 15,000 lines or so ported by then, and a full compile/link step took about 20 minutes. I didn’t consider that remarkable; it was just how the world worked—and it was way better than bashing cards full of FORTRAN. Precompiling code on a quadrille pad was just the price of admission to the programming priesthood.
Then one day Dave Smereski, a programmer friend of mine in another building, barged into my cube waving an 8” floppy in the air. He practically shoved me out of my chair plugging it into my 820, and executed TURBO.COM.
He loaded a test program that he had written, which ran to a few hundred lines. The editor was very nice; in fact, it looked and worked a lot like WordStar. When he reached over my shoulder and pressed the C key, I thought something was wrong. There was no pinball-machine racket from the 8” drives, and no status dots slowly crawling across the screen. Nothing seemed to happen at all. Then he reached over my shoulder and pressed the R key, and (again, silently) the screen cleared and his test data-entry grid appeared.
I ordered my own copy that night. I learned it by making mistakes. Each mistake took a few seconds to notice, and then a few seconds to fix. In an hour or so I was completely fluent at the machinery. (I already knew Pascal, and was in fact writing a book on Pascal/MT+ that soon became /Complete Turbo Pascal/.)
I sometimes wonder where Dave Smereski is now; I’m pretty sure I owe him dinner. We all should recognize that Turbo Pascal made it possible to learn programming quickly by making mistakes. Supposedly you can learn programming by reading about it in a book, but that’s not true. You learn programming by /programming/, and the less time you spend waiting for compiles to happen, the more programming you actually /do/. The books remain necessary, but only after the fact: /They explain your mistakes/. The more mistakes you can make and fix per unit time, the faster your learn, and over time, the fewer mistakes you ultimately make. It’s not what the universities want us to think, but it’s true, and more than any other reason that’s why Turbo Pascal changed the software development world forever.