Future Tense: Turbo Redux
Back in the pre-Cambrian era of programming for the personal computer, there were only two options: assembly language and BASIC.
Assembly language was a compiled language, producing object code that was the machine’s native language, but it was hard to learn and writing good code was a time-consuming process. Debugging it was even harder.
BASIC was an interpreted language. It was easy to learn, but because each line of code had to be interpreted on the fly, it was slow. And it wasn’t a structured language with functions and procedures, all you had were subroutines, so you ended up with a lot of spaghetti code. If your local dialect of BASIC allowed it, you could write your heavy-lifting functions in assembly and call them from BASIC, but that pretty much defeated the whole ease-of-use thing.
Yes, there were implementations of Fortran and UCSD Pascal and a few others as well, but for the most part, those weren’t the best solutions for desktop machines. In those first years, the greatest limitation in the world of personal computing was the lack of great programming languages.
Then one day Turbo Pascal crawled up out of the primordial ocean and triggered a Cambrian explosion of software evolution.
Turbo Pascal had several significant advantages. It was as easy to learn as BASIC. It had procedures and functions—as you wrote your library of routines, you were essentially expanding and customizing the language. And unlike early iterations of BASIC which used variable names like A10 and Z3, you could give your variables and routines actual names that made sense in the context of the code like FirstName and LastName and AreaCode, so your code was essentially self-commenting. For me, the real value of Turbo Pascal was that it made powerful programming not only accessible, but understandable. Not just the day you wrote it, but a week later when you came back to it as well.
Before Turbo Pascal, the common specification for Pascal was that the compiler would produce fast P-code and any machine that had a P-code interpreter could run that Pascal program. So it represented a halfway step between assembly language and interpreted language. Ease of use plus a significant improvement in speed.
But Turbo Pascal went that one better. It compiled to native code. While not quite as fast as hand-coded assembly language, the result was more than fast enough. (It doesn’t really matter if a program produces its result ten thousand times faster than you can see or only one thousand times faster, does it?)
While Pascal had been created as a ‘teaching language,’ Turbo Pascal proved that it could also be a very rugged production tool. The other great thing about it was that it combined the editor and the compiler into a single interface, so you could write code and generate test builds quickly without having to switch from one environment to another. The compiler was fast, often producing test builds in a few seconds for short projects and less than a minute or two for large ones.
Turbo Pascal cost $50 and shipped on a single disk, not copy protected. The manual was an easily understandable perfect-bound book. It was a gamble on the part of the company, they were betting the farm on those first ads, but Turbo Pascal was an immediate hit. Within months, Turbo Pascal pwned the market and it became the standard interpretation for Pascal on the PC. The first iteration was for CP/M, the second was for DOS.
Turbo Pascal was written by a young genius named Anders Hejlberg. A marketing genius named Philippe Kahn licensed the software and marketed it through a new company called Borland. Throughout the seventies and well into the eighties, Hejlsberg continued to expand and improve Turbo Pascal, adding powerful new features with every release: an integrated debugger, units (external libraries), case functions and variable records. With Release 5.5 Turbo Pascal evolved into an object-oriented language.
Object-Oriented Programming (OOP) was an important evolution for programmers. It required a different way of thinking. Fortunately for the Turbo Pascal community, a programming guru named Jeff Duntemann wrote a brilliant introductory manual that shipped with TP5.5. It was a very thin book by comparison with the rest of the manuals of the time, but it walked you up the learning curve so easily that by the time you finished the book you were thinking in OOP and writing OOP code.
The importance of OOP was immediately obvious when Windows 3.0 shipped in 1990. Programming for Windows requires OOP. You can’t think linearly, you have to think in terms of event-driven software. There were several versions of Turbo Pascal for Windows, then it became Borland Pascal and eventually part of the Delphi Rapid Application Development tool.
And somewhere on that long evolutionary path, Turbo Pascal became a dinosaur. Now, that wasn’t exactly a bad thing. Dinosaurs owned their environment. They survived for sixty-five million years, approximately sixty-four million and nine hundred thousand more years than human beings. Dinosaurs were big, which made them hard to kill, but you can’t exactly characterize a dinosaur as friendly.
Today, it seems as if we have no all-purpose programming tool as easy or as accessible as Turbo Pascal once was. Feature creep is inevitable, but it ends up making software bloated and harder to learn, and harder to use effectively. Adding too many ‘usability’ functions can actually weaken usability. (You know all those ‘tips’ articles about Chrome and Photoshop and Excel and Word? That’s because the programmers added all that extra usability that you wouldn’t know about otherwise.)
I used to write a lot of my own special-purpose utilities in Turbo Pascal. I don’t need to as much anymore. It’s faster and easier to Google around and see that someone else has already solved that same problem. And that may be the real reason why programming software has faded from the marketplace. We don’t need it as much as we used to.
If I need a special-purpose database, I can create it quickly in Filemaker Pro, tweaking, adding, and adjusting as I continue to use it. Anything that needs a chart, I can do in Excel, faster and more efficiently. And MicroLogic’s InfoSelect and Microsoft’s One Note are both good for free-form text storage. I don’t need to go back and rewrite my FLOG (Fast Little Organizing Glommer) utility when there are so many better tools already available.
But despite all the wonderful special-purpose tools, there are days when I still wish for a fast-and-simple programming environment for Windows—the contemporary equivalent of Turbo Pascal, rugged, easy, fast, and immediately useful—something I can use for fast-coding a specialized utility or even play with a game idea I have.
I could be wrong (it wouldn’t be the first time), but I suspect there’s a healthy market for a new ‘Turbo Pascal’ targeted for the weekend warrior. We don’t need another Cambrian explosion, we’re still in the middle of the current one with no signs of any impending slowdown, but I wonder if perhaps easy computer programming might have moved out of reach for the common user…?
What do you think? What would you suggest?
Comments
Comments are closed on this article
![]()
ClarenceDonath
March 07, 2011 at 8:25am
A point made is that you can pretty much find any logic you need by Googling for it. While this makes our jobs easier and enables us to finish our projects faster, I miss the creativity and the fun we used to have back in the days of Turbo Pascal.
![]()
iadams
March 05, 2011 at 5:36pm
Always a pleasure to read your articles and books Mr. Gerrold.
Though I never programmed in Pascal or Turbo Pascal, I whole heartedly reccomend Python. Its brain dead simple to use, easy on the eyes, runs on damn near everything, and though slow, its rapidly getting faster and is plenty good enough for messing around with and non-professionals. It also for the professional or more adventurous amateur has a massive number of easy to use libraries and toos.
![]()
Rich Sadowsky
March 03, 2011 at 6:38am
Hey David, I share your love of Turbo Pascal. Those were amazing days. I credit Turbo Pascal with driving a giant growth spurt to the software industry as hobbiests and professionals alike increased their development velocity. The point I disagree with is I feel there is just as much need for small utilities as ever. The nature of those utilities has changed. In fact the whole role of the average software development professional has evolved. The new world often involves integrating many systems into a single workflow that yields some new functionality. In the last week alone I've whipped up utilities to create a set of thumbnail images representing progression through a video, a tool to grab unique IP addresses from my web server logs and graph the geographic distribution of our visitors, and I often test new algorithms in stand alone utilities before integrating into the bigger system. None of the tools I use have that same nurturing feeling that Turbo Pascal had, but they certainly offer high productivity. These days I use Groovy, Python, Java and C++ as needed. When necessary maybe a little PHP or ActionScript 3. Heck, I've even had to code in assembly once or twice in the last year. I favor the IntelliJ IDEA development editor for bigger projects and simple-but-effective BBEdit for smaller tasks. I do all my development on Mac OS X and Linux. The Mac makes a perfect dev platform since it is Unix-based, like the servers I deploy to, and can run Windows as needed in a VM even while I continue editing in OS X. So in some ways modern systems offer productivity explosions we couldn't of conceived of. Sure there was DesqView and similar tools that gave us a sneak peak at what was to come, but they always felt a lilttle kludgy and weren't always the most stable.
My point here is that there will always be a need for tools that provide productive environments for simple and complex programs alike. For me 80% of my programming is server-side but I still spend maybe 2 out of every 10 hours on some utility that runs locally. None of today's platforms inspire the love and sense of community TP did, but that was a special place and time in the evolution of desktop programming. After all, that's when I met you, and Anders, and Neil Rubenking, and joined devtools powerhouse TurboPower Software, and went to Jeff Duntemann's TurboTechnix parties... While none inspire the love, they certainly do boost my productivity and make it possible to write more software than I ever could have in those days. Groovy and Python stand out as outstanding tools for boosting your output.
Some of the very things that made Turbo Pascal wonderful also assured its demise. In those days Borland wasn't concerned with standards or cross platform programming. That is what forced me to C++. Borland choose performance on one platform over standardization and cross platform compatibility. I understand their reasoning and that was fine for some of their customers, but it left us professional commercial software developers with little choice but to explore alternatives. Even way back then it was clear that Microsoft would not emerge as the server platform of the future. It is interesting to me that Anders went on to Microsoft where he created C#. It's a wonderful and highly nurturing environment much like TP, but also locks you in to a single platform making it not a viable tool for my needs. One can't ignore the growth of Linux-based servers and the rise of OS X's desktop presence. Why write code in a platform that makes migrating to others difficult? They made their bet that people wouldn't care, and I personally cast my vote in favor of platforms that didn't restrict me. IMHO, this is what triggered the demise of these platforms.
Last thought: I remember the day I bought my first Turbo Pascal for CP/M for about $30. My life changed that day and my career choice locked in. Now nearly 30 years later I think fondly of those days. I owe Anders and Philippe my gratitude for inspiring me to head down this rabbit hole. I hope there's a copy of TP in the Smithsonian as a true historic treasure!
Check out my latest project currently up on forbes.com. I Smiled, Did You
![]()
MattyMattMatt
February 24, 2011 at 3:21pm
Being that I do program quite a bit, I know how useful something like Turbo Pascal can be. Something relatively easy to pick up and use while still fast and versatile enough to allow you to create solutions to your own problems.
There are a few languages that in my opinion can fulfil those requirements. I used to use Java to quickly develop command line tools. Now I tend to use C# which is in turn very much inspired by Java. Ruby can also be easy and fun to hack with, despite the fact that many use it with a very strong web focus thanks to rails.
![]()
TechLarry
February 24, 2011 at 10:19am
Turbo Pascal was simply wonderful. A tool like it would be great to have today. VisualBasic.Net ain't it.
The only shareware I ever let loose on the world was back in 1989 and it was written in Turbo Pascal and I utilized a wonderful set of add-on's I purchased in a kit called:
The "TechnoJock's Turbo Toolkit". It was an amazing group of functions and procedures that made coding in TP so much easier, and expanded it greatly.
And I remember one day I had a problem getting something to work right. I called the support number. None other than the actual author of the Toolkit answered the phone within 3 rings, and not only helped me figure out my problem, but spent another half hour teaching me how to do a few things better. He was a very nice Austrailian gent (I believe) and a pleasure to chat with.
His name was Bob Ainsbury and I often wonder what he's doing today :)
![]()
pastorbob
February 24, 2011 at 5:47am
I jumped on the Turbo Pascal bandwagon the first time I read an ad in Byte magazine in the early 80's. The price was right and it served the purpose for me. I upgraded each time a new version came out through version 5.5. I even took several credit courses at UIS in the Computer Science program that were based on it. But then around 1993, I discovered a Windows based IDE called Visual BASIC and Turbo Pascal went by the wayside. Anyhow, I decided I didn't really want to be a career programmer changed my major and focused more on hardware applications in the compact disc manufacturing environment. It's been fifteen years since I have even written a program of any type.
But Turbo Pascal could be used for the quick and dirty or the complex. I once saw a fellow student write a really neat graphics based game that consisted of 20,000 lines of code in version 4.0. It took him over a year to complete it.
Though I wouldn't have any need for it, I can see where having similar tools available for today's systems would be advantageous.
![]()
Johnes
February 23, 2011 at 10:47pm
As for the opinions expressed, it all depends on why and for whom you write code - as D.G. pointed out explicitly and implicitly. Having come through the same time period as he, but with other goals, projects, and preferences, I too lament the fact that there are no longer relatively simple but powerful programming languages for individuals who write for themselves and who write for their own projects - as I often did in basic research where money was tight and ambitions grand. The latter required high-speed synchronous data acquisition and control for controlling experiments and gathering data as well as a higher level-of-abstraction language to create and manage unique data sets and test numerous hypotheses on that data quickly and efficiently. Putting a "programmer" in the loop greatly increases the difficulty of moving quickly and efficiently and, as the code was one-use only, there would be no way to recapture the investment. GUIs - for the convenience of others were a complete waste of resources. I have no gripe with programmers who make their living creating programs for others - or them expressing their opinions, but for individuals who need powerful inexpensive tools available for their own explorations, the easily obtained choices have dwindled to near zero.
![]()
dramsey
February 23, 2011 at 7:52pm
Yeah, I'll respectfully disagree here. There is no modern equivalent to Turbo Pascal's ease of use. Pascal was a simple enough language that a motivated hobbyist could pick it up easily; contrast that with C++, which has so many ways to hang yourself (quick, describe the difference between const_cast, reinterpret_cast, static_cast, and dynamic_cast) that even programmers who've been using it for years still shoot themselves in the foot regularly.
Modern OO languages are much more powerful than Pascal ever was, but that's beside the point, which is the ability of non-professionals to easily write simple utilities and other programs.
And David Gerrold isn't "employed" by Maximum PC; he's a well-known science fiction author who does these columns for fun (presumably). Like Pournelle back in the Byte days.
![]()
habraham
February 23, 2011 at 7:15pm
I kept my old Turbo Pascal book around for years. It was a great reference for Delphi.
![]()
Jipstyle
February 23, 2011 at 4:51pm
How does this guy remain employed at MPC? Fact-checking, anyone?
Yes, TP was great and it could do far more than wipe your butt .. but the world has moved on.
Pining for TP is akin to wishing car manufacturers would go back to the good old days of carburetors .. just because you don't understand the modern technology does not mean that it is inferior.
C#, java .. even good old C++ .. are all considerably more useful than TP.
Oh .. and, back in the 'good old days', we used C. BASIC has always been strictly for hobbyists.
![]()
David Gerrold
February 24, 2011 at 9:24am
Turbo Pascal hit the market in 1983, the same year as the IBM PC-XT.
Implementations of C started showing up in the mid-to-late eighties. Turbo C 1.0 came out in 1987 and 1.5 in 88 and 2.0 in 89. Although the C programming language had been around since the early seventies, it wasn't until 1990 that ANSI finally ratified a standard based on the Kernighan and Richie standard, this was version C89. I did a tech-edit on a C textbook a couple years later.
Pascal had initially been intended as a 'learning language.' C was always intended to be a serious production tool. Turbo Pascal hit the personal computer market first, and at just the right moment because many personal computer users wanted something more than BASIC.
C only came into its own a decade later and has since evolved into C++ and C#. It's a powerful programming tool for professional programmers, but even as late as the mid-nineties, there were still a lot of programmers using Turbo Pascal in production environments.
The point of the article was not to tout Turbo Pascal as a superior programming tool, but to point out that the professional programming tools available today are not suitable for non-professionals who want something a little less intimidating.
![]()
David Gerrold
February 24, 2011 at 9:24am
Turbo Pascal hit the market in 1983, the same year as the IBM PC-XT.
Implementations of C started showing up in the mid-to-late eighties. Turbo C 1.0 came out in 1987 and 1.5 in 88 and 2.0 in 89. Although the C programming language had been around since the early seventies, it wasn't until 1990 that ANSI finally ratified a standard based on the Kernighan and Richie standard, this was version C89. I did a tech-edit on a C textbook a couple years later.
Pascal had initially been intended as a 'learning language.' C was always intended to be a serious production tool. Turbo Pascal hit the personal computer market first, and at just the right moment because many personal computer users wanted something more than BASIC.
C only came into its own a decade later and has since evolved into C++ and C#. It's a powerful programming tool for professional programmers, but even as late as the mid-nineties, there were still a lot of programmers using Turbo Pascal in production environments.
The point of the article was not to tout Turbo Pascal as a superior programming tool, but to point out that the professional programming tools available today are not suitable for non-professionals who want something a little less intimidating.
![]()
sojrner
February 24, 2011 at 8:24am
"BASIC has always been strictly for hobbyists."
...and that was the point here. The fact that you did not see that shows that you don't see the need the article reveals either.
![]()
arkarkwin
February 23, 2011 at 4:00pm
Program Thankyou
var int a;
var string test;
const int b = 5;
writeln("Thank you for a flashback");
writeln("Man, great time I had learning pascal");
writeln("My syntax is off thought");
while a = b
{
writeln("Thank you");
}
writeln("Type any key to exit from the program");
readln();
end;
![]()
dramsey
February 23, 2011 at 3:49pm
Ah, I remember Turbo Pascal fondly. Ran it on my Gavilan to start, and later on various desktop machines. When I started at Apple in 1986 I annoyed the MPW people by asking why we didn't have something like this.
Scripting languages like Python and PHP cannot replace Turbo Pascal since they have little if any UI facilities. Especially with later versions of TP, throwing up dialogs and writing content to windows was trivial. Anyone who could spend a few days learning the language could write their own native *.exe programs, and that was a powerful thing.
Apple gives away their current XCode development environment, but the learning curve for Objective C and the current Mac OS is very steep. I think Microsoft has cut-down, freebie versions of Visual C++, but that's not any better, really.
![]()
d3v
February 23, 2011 at 2:16pm
There's always PHP cli. You can use it to write scripts on Windows or Linux.
Log in to MaximumPC directly or log in using Facebook
Forgot your username or password?
Click here for help.















