They don't make 'em like that any more: Borland Turbo Pascal 7
kevinboone.me
kevinboone.me
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.
Fun times, and very formative to me!
And: "A Personal History of Compilation Speed, Part 2" https://prog21.dadgum.com/47.html
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.
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.
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.
It worked the same, rebooting the computer would restore the frozen state, because changes were never committed to disk.
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.
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.
--
[0]: https://web.archive.org/web/20040210055959/http://www.custod...
You could have different templates that all built off of the same base which made switching between different specialized classes in the lab super easy.
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 agree, but AI also there is hope!
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.
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.
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.
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.
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 that deep.
[1]https://tech-insider.org/discord-electron-rust-gpui-rebuild-...
The fact that we are celebrating that a chat app only uses 300MB ram at launch instead of 1GB seems absolutely ludicrous to me
The early versions of Skype used about 30MB RAM while in a video call and by the early 2000s standards it was bloatware. Before that we used WebEx in the 90s which was a browser ActiveX or Java applet and RAM use was about 6MB in a video call. In the early / mid 90s I used CU-SeeMe for video calls and its RAM footprint was just over 2MB on Mac System 7
Something has clearly gone very wrong in the software development process in the last 2-3 decades and while Im encouraged to see that some people are interested in reversing that trend I still find the resource wastage has me shaking my head sometimes
Sometime in the late 90s there started a fundamental change in the software development process. We changed from optimising software for the end user (development is difficult) to optimising the software development process for the developer at the expense of user resources
One of the main selling points of Turbo Pascal was OWL: the Object Windows Library, which was just a big OOP abstraction over Win16. Here's some sample code:
https://github.com/TeamVault/pascal-programs/blob/master/Pas...
Doesn't look radically different to how a GUI app that targets a native framework would look today. OWL added bloat to make developer lives easier. It was ever thus.
>Doesn't look radically different to how a GUI app that targets a native framework would look today
Modern "Native" frameworks are part of the problem. I cant comment on Windows current state as I havent used Windows since I moved my gaming rig from Windows 7 to Linux many, many years ago but even then Windows frameworks were a complete mess
Take Libadwaita for example. I migrated an old, very simple disk image manipulation utility app last year from GTK2 to modern gnome. No change in capabilities, a simple clone in GTK4 / Libadwaita. It went from using ~19MB to ~185MB without any additional functionality simply by switching the "Native" framework
After my comment https://news.ycombinator.com/item?id=49235430 I've investigated the high RAM jump issue a bit further. It turned out, 60 MB comes from MESA / video graphics driver, right after the first function call, that triggers OpenGL/... context initialization. Thus:
GTK2 14 MB
GTK3 24 MB
GTK4 38 MB (+ 60 MB video acceleration)
Looks a bit better. But we still need 98 MB total.What’s our disaster recovery strategy in the event of war and loss of internet?
Or worse yet, a near extinction event and we are forced to rebuild civilisation from memory?
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.
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?
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.
Absolutely we should use all the tools at our disposal which enhances productivity. But that doesn’t mean we shouldn’t also learn how’re to do things for ourselves too.
To use a contrived example, there’s no shame in using a dishwasher. But if you cannot wash dishes by hand when the dishwasher breaks down, then you know you have problems.
I made the general tech-dependence statement, but it sounds like you think it is only AI tech that shouldnt' depend on. I wouldn't worry about it; humanity has proven itself to be INCREDIBLY resilient and adaptable when the things we've come to depend on go away or change materially.
Like I said, I have zero issue being “AI first”. 90% of my day-to-day is using AI. But the part I objected to in the OP was “we don’t need to know things because we have AI” (to paraphrase. So I was asking the question: what if AI goes away?
I agree humans are resilient. But that’a not a good excuse for complacency.
Do we really want to put ourselves in the same situation?
It's like a religion isn't it.
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 :)
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.
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.
Damn, the 90s, IRC and Quake were awesome!
It was written in TurboPascal and saved its data with BTrieve. The whole thing ran under MP/M (a CP/M variant that had the concurrency support we needed) on a closely coupled network: A box with an S-100 bus where each user had their own system-on-a-card with an 8088 CPU. Our application wasn't client-server, each user had their own app and we had written our own code for network-based cooperative multitasking, as we called it in those early days.
Fifteen years later I was on a team that created a concurrency linter for Java. It inspected the behaviour of running J2EE servers and flagged runtime anti-patterns as concurrency smells to be investigated.
Everything felt so familiar, despite all of the tooling being complete different!
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.
A cool thing about TP was that it had simple and convenient support for inline assembly, which was the gateway drug for me learning more low level programming.
It’s really sad that Delphi didn’t take off like VB. It was a superior environment in every way. Faster programs, better UI, much better language, and I would argue easier to use (in VB you spent a lot of time working around the limitations of BASIC in my experience). Hard to compete with Microsoft though.
I didn’t realise at the time that, with the advent of web apps (and my interest in them), that chapter of my life would be the last time I would work with such a clean, integrated dev environment.
So here's me this Linux guy coming to a Windows shop that came from C/C++ and Turbo Pascal, loving Delphi - and I broke their brain. Naturally instead of investigating if the tool is good, they just write off the person using it. Nothing to see here!
It's one of those things that was ahead of its time (think Smalltalk / Lisp, etc). C++ obviously had (and kind of still has) its place, but Delphi could do 80% or more of that, and in radically less time, code, compile time, etc.
I used Turbo Pascal in 8th grade to create a simple type of 3d wireframe CAD-like tool on the PC in my bedroom.
Then in AP Computer Science in high school we had (TUI) Turbo Pascal also.
I always remember that type/style of TUI fondly. It periodically pops up in my head out of nowhere. Like just yesterday I randomly decided to add a Borland-style menu to my Starship prompt as an experiment. I accomplished that by writing about two sentences to an AI.
My actual job at this point is feeding tasks into AI and judging whether it answered just the way I wanted.
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.
> The ad broke in November, and that month we took in 1100 orders. So the ad was paid for. The second month we took in 2500 orders.
It's a bit tricky to figure out the exact breakdown since it requires knowing when people got a copy of that issue of Byte, how long it took for their mail order to get to Borland, and how many copies were sold per order. Turbo Pascal wasn't even released until November 20.
Still, my eyeballing says 150K in the first month is pretty much spot-on.
The ad, by the way, cost $9,000, to be read by 400,000 people world-wide. Each physical unit cost about $4 to produce. And all the orders were filled by hand for the first couple months.
FWIW, they also did word-of-mouth (like at COMDEX) and used dealers.
I tried but failed to find the ad. Archive.org is having problems, with very slow response times, failing searches, and failing downloads. I think the Byte issue is at https://archive.org/details/byte-magazine-1983-10/ . Wow! It's 675 pages long, and a topic for that issue is "Unix on Micros", with 9 articles about different aspects of Unix.
(I assume it needed all those articles to balance out the humongous number of ads, so they could get a lower postage rate.)
Here's Borland's ad a year later for TP 2.0 - https://archive.org/details/Computer_Language_Issue_01_1984-... and here's Dr. Dobbs' review of 1.01 in their June 1984 publication - https://archive.org/details/1984-06-dr-dobbs-journal/page/74... . Oh, and an article about it in Germany in September 1984 at https://archive.org/details/peeker-1984-01/page/50/mode/2up?... .
If you ever feel like you need a palate cleanser after reading AI code, go dig into any Fabrice Bellard project.
This final version for Windows 3.1 might be compatible with 32-bit Windows installations under WoW16, no?
Windows 11 was the first version to ship that was 64-bit only.
I'm pretty sure Turbo Pascal 7 and Turbo Pascal for Windows were two different products.
Almost nobody back then had the skills to implement something like TP, that's why it was so exceptional.
I think I used TP 7 and it was the usual blue IDE for DOS.
Although Turbo Pascal 7 has MS-DOS extenders support, and could target Windows 3.1 as well.
Then came Delphi.
"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 Latin root of "turbo" and "turbine" is turbo, 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 turbo as well, as are "perturb", "turbulence", "turbid", and even "trouble"!
"Why don't you just run it at the faster speed all the time, and make that the regular speed?"
"Ours have turbo"
Devs learned how to use the timer chips pretty fast after that though, so for a long time the turbo button existed but appeared to be useless. Pushing it would toggle a light but nothing appeared to change.
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 that surprising, really.
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.
The terminal IDE that it came with, if you can call it that, was ahead of its time.
OS/2 was more popular than Windows 3.1.
Update: or maybe it wasn't. Seems like different bubbles had different mainstream OS.
Back in 1992, it would had cost me about an extra 500 euros on today's money.
Sure, that's anecdote. Do you have data?
Never knew anyone who ran it at home.
But then I remember how OS/2 was dying a slow death while Windows 95 rose.
So yes, an anecdote it is.
[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.]
never forget
The printed documentation alone was half a meter long.
There’s just no reason to be mad that something is popular. Sure, VSCode is the most popular, if that person doesn’t like it they should just use something else.
I already have 32GB of RAM plus an M2 Max in my laptop because my company issued it to me. I already have 32GB of RAM and a 9850X3D in my desktop because I play games.
What non-ideological motivation do I have to ration computing resources on my IDE? Even if I had an 8GB MacBook Neo, VSCode would run fine.
If I was coding on a raspberry pi my story would change (although I suspect VSCode would run fine on that, too), but I’m not so I don’t care. It’s fast enough to get the job done and the rich featureset is more important than raw performance.
One: A very many programmers have their tools selected by their jobs, not their own choices.
Two: There are very few competent programmers.