Turbo Pascal was a glorious tool for my imaginative 15-year-old brain. The first programs I sold were all written in Turbo Pascal. I had the Turbo Pascal reference books near my bedside, and I wish I still had them because they were dog-eared, post-it noted, margin-scribbled, and it's kind of strange but those books guided my future almost more than any other written text.<p>One distinct memory stands out. I could not wrap my mind around the Object-Oriented extensions on Pascal. I read, re-read, and re-re-read the section of the book describing what polymorhpism is and how it worked, probably at least a dozen times. Somehow it seemed really important and I kept coming back to it. I worked the examples. And then one day the ah-hah moment arrived. I remember it felt like a shock, why it was useful and what I could do with it. I promptly used my knowledge to write a new game using OOP principles to guide the rudimentary "characters" of various geometric shapes at the core of the game.<p>Fun times, and very formative to me!
Required reading, "Things Turbo Pascal is Smaller Than", <a href="https://prog21.dadgum.com/116.html" rel="nofollow">https://prog21.dadgum.com/116.html</a><p>And: "A Personal History of Compilation Speed, Part 2" <a href="https://prog21.dadgum.com/47.html" rel="nofollow">https://prog21.dadgum.com/47.html</a>
Man, I haven’t seen Turbo Pascal since high school. We were lucky enough to have a CompSci class taught by our Stats teacher.<p>He offered three courses. CompSci 1 used Turbo Pascal and Delphi. CompSci 2 used C++ and Java. CompSci 3 used Microsoft Turbo Assembly and a language of the student’s choice.<p>We had to write our code and save them to floppy discs for submission since the lab systems had DeepFreeze installed on Win95, so any local storage wouldn’t persist.
> He offered three courses.<p>We had two courses at my school in early post-Wende East Germany ('91 onwards, on Amstrad PC2386 386/20 MHz machines): a beginner's computer course with OS intro (MS-DOS 4.01 and Windows 3.0), office applications, and typing... and a programming course via the GW-BASIC (later QBasic) to Turbo Pascal (much later Delphi) pipeline.
> <i>We had to write our code and save them to floppy discs for submission since the lab systems had DeepFreeze installed on Win95</i><p>Didn't realize DeepFreeze is that old. My lab used Angel Custodius[0], which was a hardware-based solution. It used a PCI-slot and the buffer was an IC on the PCI board.<p>It worked the same, rebooting the computer would restore the frozen state, because changes were never committed to disk.<p>It also was OS-agnostic, because it ran before booting anything. If you had a Linux server and got hacked, you just restarted it, though it remained vulnerable until you disabled the protection and actually patched it.<p>If you wanted to introduce changes you had to press a combination of keys to bypass it, by introducing the password. Mainly to apply pending Windows Updates.<p>--<p>[0]: <a href="https://web.archive.org/web/20040210055959/http://www.custodius.com/" rel="nofollow">https://web.archive.org/web/20040210055959/http://www.custod...</a>
Similar experience here, except it was Qbasic followed by Delphi. Good memories of passing our dumb little games around the compute lab. It wasn't till later in life that I connected Pascal to Wirth when reading Algorithms + Data Structures = Programs (I still think the last chapter on compilers holds amazing as an introduction to the subject).
> "That almost nobody has the skills these days to implement something like TP is something we could eventually come to regret – or, rather, our grandchildren could. Software development is becoming a semi-skilled industry, and I doubt that the rise of AI will entirely compensate for this."<p>I agree, but AI also there is hope!<p>For many years I've worried about the ever-growing depth of abstraction in computing. There are few alive now who actually understand all of the layers on abstraction involved in modern computing, and who can debug the truly strange edge case bugs and vulnerabilities introduced by the interoperation of these many complex layers.<p>For a time I imagined it to be an unsolvable problem, and that there would always be only a special class of neurodivergent hyper-specialists who still mostly had to work in large teams to even come close to understanding a stack in full. We're reaching the point where a single human lifespan just isn't enough to learn it all, even for those of us with what Dilbert called "The Knack". By the time you're proficient in all of it - you're dead.<p>Now there is a new kind of intelligence. One that CAN fit it all in a single mind, and one that will outlive us all and continue to learn long after our meat has gone bad.<p>As long as the AI's stay aligned, and we find ways to build them more efficiently there's a non-zero chance that they actually make it all better instead of worse. Genuinely long-term planning and the ability to TRULY grasp the full stack COULD actually happen. At least if we use these new systems in service of the greater good, and not just to play silly games on the stock market.
AI is not trending towards small, minimal code with nice abstractions. It is faster at replicating "big team" code, but the code from a small team or a few authors still wins for elegance and simplicity.
I suppose it depends on what you mean by trending. Some of the recent rewrite news[1] for example suggest that, at minimum, it is the macro demand that is driving the software trends. In this case, issues with memory supply drive attempts at more sensible memory utilization.<p>[1]<a href="https://tech-insider.org/discord-electron-rust-gpui-rebuild-290mb-ram-2026/" rel="nofollow">https://tech-insider.org/discord-electron-rust-gpui-rebuild-...</a>
AI isn't fundamentally different to us and it does benefit from abstractions. So, I don't think that's going to happen.<p>Besides, it's an exaggeration. I've been programming for 35 years, and Turbo Pascal was one of my first languages. I wrote OWL code! Seeing that splash screen brought back memories. But I can understand and debug problems that cross almost any layer of the software stack. Anything from some ReactJS library to kernel code to UEFI. I'm now 42 so the idea nobody can understand or debug interactions across layers before they die is for the birds. The stack isn't <i>that</i> deep.
There’s no substitute for human knowledge. What if the climate crisis gets to the point where we cannot justify boiling the ocean to perform tasks we’ve come to depend on?<p>What’s our disaster recovery strategy in the event of war and loss of internet?<p>Or worse yet, a near extinction event and we are forced to rebuild civilisation from memory?<p>Some of these might seem like extreme edge case scenarios but then history is full of disasters that people didn’t prepare for because they assumed they were too big to fail.
> There’s no substitute for human knowledge.<p>Would you not say that AI is an expression of the sum of all human knowledge? And as humans continue to generate more knowledge, it too, will be added to the AI's representation of it all?
There's much more about humans then there is writing about them, a lot of cultures with oral histories, a lot of nuance in behavior we take for granted, can it all be digitized?
I would say your reply feels like you didn’t read beyond the first sentence of my comment.<p>If you did, then I apologise. But my point is about accessing that knowledge when AI isn’t available. Not about how AI discovered its corpus to begin with.
That already happened many times in history to many civilizations. Knowledge was discovered and lost, and rediscovered years later or never.
We do have free pascal and it looks pretty good I think.
>I agree, but AI also there is hope!<p>It's like a religion isn't it.
Or we could just ask them to build something less embarrassing?
I’m not sure where he got that idea. All I could learn about TP was like one book sold in one bookstore in my entire city. The barriers to entry back then were astronomically higher than they are today, especially given how AI has democratized access to information, knowledge, and expertise.
[dead]
Fun anecdote: When I was in college, my dad read an article in the Wall Street Journal about Turbo Pascal, so he bought me a copy for my birthday. That was version 1. I stuck with TP through grad school and a little bit beyond. It seemed like there wasn't anything it couldn't do. Some of my hardware hacking adventures even required inline assembly. Some of the version bumps were really timely, such as a new compiler that created stand-alone executables. I was extremely lucky that the original TP ran on my non-PC-compatible MS-DOS machine, a Sanyo MBC550.<p>My graduate advisor had Microsoft FORTRAN, and I tried it out. It was a monstrosity. The compiler and linker had to be on separate floppies, and took eons. My advisor admitted that he had largely switched to BASIC.
Borland-linked piece of lore I like the best is that upon release of the original Turbo Pascal, which was advertised in the Byte magazine for $49.99, they were <i>drowned</i> in orders so much so that the Post Office put stop on incoming checks because they suspected it was some sort of fraud.<p>Don't know if the last bit is true, but they did make 150K in sales in the first month ... from a single ad and in 1980s dollars, which is quite remarkable.
My first real programming project was creating a pong clone on DOS using Turbo Pascal, as a 12 year old, in the mid 90s. Many years later, when I was in the penultimate year of uni, I worked as a freelance Delphi programmer. I had no idea Pascal would help me buy my first car many years later.
This hits home. Turbo Pascal was the thing (although I've barely noticed at the time) where I learned actual programming, as we know now.<p>I had played a lot with the Spectrum (a Sinclair zx spectrum 128k) and its BASIC interpreter but that was mostly copying from magazines and changing some parameters. And BASIC is weird :)<p>A few years later in school in the 90s, Pascal was "the" language that most people learned the basics in, at least in my country.<p>Unknowingly I sort of absorbed all that and it only started making sense when a few years later I decided to get into actual programming with perl and eggdrop bots and plugins or whatever they were called.<p>Damn, the 90s, IRC and Quake were awesome!
The only real association I have with "Borland" is that I needed their $199 compiler to share my LibertyBasic programs with friends as .exe's when I was in middle school. That was a ton of money in the late 90's. It was singlehandedly the catalyst to me realizing I could pirate more than game roms on IRC.
> The name ‘Turbo’ was associated with what were regarded as hobbyist products<p>"Turbo" was also a short-lived pop-slang term roughly meaning "cool" or "awesome." I never heard it used much but a lot of products in that era had "turbo" in the name.
The intensifier meaning of "turbo", connoting something powerful and fast, is also interesting. Its original uses are in engineering, simply denoting something that has a turbine in it. Thus turbopump, turbojet, and turbocharger, the last of which probably being the primary driver of the semantic shift.<p>The Latin root of "turbo" and "turbine" is <i>turbo</i>, meaning a whirlwind, a spinning top, or more generally any spinning motion as a noun, and "agitate, disturb" as a verb. The latter word is, of course, derived from <i>turbo</i> as well, as are "perturb", "turbulence", "turbid", and even "trouble"!
"Turbo" was a name of a physical button on early PC models that bumped up CPU frequency.
There was that “Turbo” button on my (self-made) 386sx, that magically doubled the CPU clock. This is what “turbo” meant in the 90s, weird.
As someone born after the release of TP 7, this was a fascinating read!<p>I wouldn’t necessarily have expected for Microsoft to make development (at least the “intended” way) for early not-just-DOS Windows this unergonomic, but now in hindsight, it’s also not <i>that</i> surprising, really.
Oh those were the days, I remember developing my first non-trivial piece of software (an international checkers game), while still a student, with Turbo Pascal. It run to more than a thousand lines of basically the Minimax algorithm plus various optimizations (alpha beta pruning, quiescent extensions, etc)<p>I have fond memories of the language, the IDE, libs like TurboVision, ObjectWindows, etc... And fun times with the demos TVChess and OwlChess, which gave me inspiration.
Man, I have so many good memories as 9 or 10 year old kid writing Turbo Pascal 7.<p>The terminal IDE that it came with, if you can call it that, was ahead of its time.
TP 7 you say?? That's the one that made me quit - they could pry the blue ascii IDE out of my cold, dead (high schooler) hands
Is Turbo Pascal 7 really the same as Turbo Pascal for Windows 1.5?<p>I think I used TP 7 and it was the usual blue IDE for DOS.
tcc/tinycc doesn't have the IDE but is the same compiler approach applied to modern(ish) C. Tiny, fast, and fun to use.<p>If you ever feel like you need a palate cleanser after reading AI code, go dig into any Fabrice Bellard project.
I used Borland OWL under Windows at school. I moved to Java later on and felt the sting on the last line...
I can definitely vouch for Turbo Pascal, having learnt it before C was definitely a good school that strongly typed languages doesn't hinder systems programming, nor higher level ergonomics.
great writeup, fun reminder windows 3.1 sat on top of dos
TPC.EXE /C<p>never forget
> Windows 3.1 [] not that there were many alternatives at that time<p>OS/2 was more popular than Windows 3.1.<p>Update: or maybe it wasn't. Seems like different bubbles had different mainstream OS.
Oh man, the good old days. Running Windows apps in OS/2 and having OS/2 run them faster because it was true 32bit.
OS/2 more popular, not in my part of Europe, although it had its fan base. there were even OS/2 (Warp) freebie cd-roms at the time. I was quite fond of it, but Win 95 killed it
It certainly wasn't in Europe, plus it required more expensive hardware.<p>Back in 1992, it would had cost me about an extra 500 euros on today's money.
Source? That's sure not the way I remember it. I don't think I <i>ever</i> saw OS/2 outside of in computer stores. I don't think I ever saw a single customer actually <i>using</i> it, either professionally or on a home computer.<p>Sure, that's anecdote. Do you have data?
OS/2 was somewhat popular in corporate settings that were already "IBM shops." And I saw a bit of it in academia/scientific workplaces.<p>Never knew anyone who ran it at home.
Nah, no data. Too lazy to dig around. I vividly remember that in my bubble OS/2 was running everywhere. Literally everybody used it, me included. We considered Windows a joke. Some networking software that we used (Fidonet) was literally OS/2 only.<p>But then I remember how OS/2 was dying a slow death while Windows 95 rose.<p>So yes, an anecdote it is.
Well, I asked, because I'm also too lazy to dig around for data. So, it's hard for me to complain...<p>[Edit: All right, I did a very superficial digging, and didn't get an apples-to-apples comparison. But it said that OS/2 sold 2.5 million desktop and 340,000 server versions in 1996. Windows 3.1 sold over 3 million copies within the first three months of its release in 1992. So by 1996, OS/2 may have been more popular than Windows 3.1, because the Windows world had moved on to Win95.]
OS/2 was _incredibly_ rare UI- and UX-wise. Very frustrating to use. As if they copied Windows, but somehow copied only 80% of it with some really common bits missing.
Never been a big Pascal fan (though learned and used it back in the day) but i learned C and built my first Win16 and Win32 Apps for Windows 3.x and Windows 95 in Borland Turbo C(++). That was truly magical a time!<p>The printed documentation alone was half a meter long.
No, now you are running an IDE that is badly pretending not to be a browser, while an entire second application has to work in the background eating even more RAM to provide you with access to documentation for each function at the cursor...
[flagged]
I have learned PC programming on the DOS version.