return to table of content

Turbo Pascal Turns 40

hankman86
20 replies
8h50m

Turbo Pascal is what got me into programming. I remember spending hundreds of German marks on a license for Borland Pascal 7.0 and later Delphi 1.0 and 2.0. I ended up developing my first “commercial” software that I sold for money.

In the DOS era, Turbo Pascal was probably the easiest way to get into programming, outside of Basic. And on Windows 3.1/95, Delphi was eye-opening how easy GUI programming could be.

In many ways, I feel like we have gone backwards from there. How was it possible for the Turbo Pascal / Delphi compiler to produce a small binary for a fully-featured GUI program when today similarly powerful software is orders of magnitude larger in size?

ivan_gammel
9 replies
8h39m

There was at least one elephant missing in that executable - Unicode support. It would not fit into PC RAM back then probably.

benj111
5 replies
6h54m

Unicode support is cheap memory wise. The expensive thing if having the fonts. The fonts can live on the hard drive until actually needed.

I suspect the issue is more of the runtime overhead of supporting it over the entire stack. That's a bigger cost that people would only want to pay if they were actually going to use it. So then you're in the situation of having to support unicode and non unicode versions of everything.

ivan_gammel
4 replies
6h17m

Most programs written in Pascal were UI programs (even in client-server model client was typically a specialized program, not browser), so rendering a string would indeed require a font file. You could pre-render and cache in RAM some frequently used glyphs (locale-specific alphabet, digits etc), but hitting HDD every time to render an emoji won’t be fast enough. Modern Unicode was simply not feasible.

zozbot234
2 replies
5h1m

HDD and memory sizes were growing very fast back then. So it would've been feasible even on fairly low-end hardware, starting from the mid-1990s or so. If you could have "multimedia" or "DTP" software on such PC's, modern fonts ought to have been possible. The flip side is that old computers became obsolete very quickly back then, a few years were enough for very real generational changes.

ivan_gammel
1 replies
3h50m

Low-end hardware in 1995 was something like i386 with 1 Mb RAM, meaning that just a modern Unicode font would consume most of the memory available to a program, probably leaving no enough space for the rendering code (which is not small by standards of that time). In 2nd half of 1990s I still maintained a classroom with 15 IBM PC XTs, which were still doing their jobs (our most modern hardware were Pentiums with 16 Mb RAM IIRC).

benj111
0 replies
3h13m

modern Unicode font

That isn't unicode though. That's a font. You can have bitmap unicode fonts if you want.

Let's put it this way. Say you have a unicode aware library and only ever use the ASCII compatible codes. You aren't using more space for fonts.

If you want to read a Chinese document, yes you would need to then install Chinese fonts. That would take space yes. But it's possible. If you only speak Chinese that's something you have to deal with.

Could you have a font for every unicode point at the same time, probably not, but most people don't need to read most code points most of the time.

benj111
0 replies
3h20m

If you use an emoji load it into ram then. You aren't (generally) going to be using Arabic, Chinese, Japanese, Sanskrit, ancient Egyptian and emoji all in one document on one screen. If you're using Japanese load the Japanese font, if Chinese, use the Chinese font.

waynecochran
0 replies
1h48m

Extended ASCII was the way forward then.

pasc1878
0 replies
6h21m

Yes because Unicode did not exist at the time

anthk
0 replies
7h9m

Today you can just use Lazarus and recompile. The lower of the bottom machines are Atom netbooks, Core Duo's and Raspbery Pi's. I'd consider using an Atom or RpiB+ the same as a 496 in 1999.

On fitting in RAM's, in depends. From 1993 to 1998 the changes where huge.

ReleaseCandidat
3 replies
8h7m

fully-featured GUI program when today similarly powerful software is orders of magnitude larger in size?

That's because the "fully featured" of the 90s would be barely usable today. Or to rephrase: the frameworks and programs of today are not "similarly powerful" to the ones from the mid 90s, even if you just recompiled the app from 25 years ago with the current version of your framework (theoretically ;), it would gain support for unicode (codepages where just...), internationalization, accessability, support for networks (who still knows Novell?),... . Except for SAP, they somehow succeeded at combining the user-hostileness of the 90's UIs with the resource consumption of contemporary programs ;).

Turbo Pascal had been the language I used after BASIC, with which I started.

_glass
1 replies
6h59m

Depends on what you mean for SAP. Reports at least are super easy to write and have better usability than other in-house stuff I saw. UI5 now has components that you can use with React, which give the web experience. SAP GUI is kind of okay, and fast. What do you mean?

cvak
0 replies
3h5m

probably core ABAP development in some module.

vanderZwan
0 replies
4h8m

Joel Armstrong once said "You wanted a banana but what you got was a gorilla holding the banana and the entire jungle.". That's a very catchy metaphor, although he was talking about C++ style OOP with bloated classes. Still, it feels like it could be generalized to software bloat, rigth?

What you're arguing seems to be "you think you just wanted a banana, but it turns out the customers needed various banana sizes, levels of ripeness, even special alternative hypoallergenic banana breeds, so instead you get a gorilla to fetch you the right banana from the jungle for each situation."

I do think that there is truth to that, but to be honest I think that in an ideal world that would account for some these orders of magnitude, but leave out the majority of them. It is really, really easy to underestimate just how much faster and bigger computers have gotten in the last thirty years.

What I find a more compelling argument for the majority of this increase in software size and CPU usages is that letting the software bloat and slow down the level that the customers tolerate is a form of externalizing costs for developers. A lot of developer convenience comes at the cost of the end-user, imo. And even if the developers care, then the companies that employ them don't mind saving money that way.

benj111
2 replies
7h3m

Its about 2 marks to the euro apparently.

For anyone not up to date with ~30 year old exchange rates.

CRConrad
1 replies
4h41m

~20. The Euro (or "Teuro", as it was often called in Germany at the time) was introduced in... Uh, 2000 or 2001, thereabouts.

benj111
0 replies
1h35m

Ok. I googled and it said ~1.9.

I seem to remember it being the late 90s so that's my bad memory.

Funny, we also call it t'euro in Yorkshire too!

walthamstow
0 replies
4h33m

Ah, the mark. It's been a while. Maybe this was just in Britain but the name of the mark was never translated into English when spoken or written, it was always just the Deustchmark.

pantulis
0 replies
5h53m

Turbo Pascal is what got me into programming.

And not only top-down procedural programming as was the norm for Pascal in those days, the Breakout demo was a lesson in OOP.

acqq
0 replies
6h53m

Changing the code and seeing the results was even on the machines of that time practically immediate with the first versions of the Turbo Pascal, as long as the program and the source were able to fit in the RAM. And the interaction was designed to be immediate too. If I remember correctly the compilation error didn't cause infinite screens of report, it just repositioned me to the line where the error was. If the cause was a typo, I was able to edit recompile and run in a second. Most more recent tools have other ideas, requiring more unnecessary activities from a developer.

rezaprima
11 replies
19h37m

25 seconds to compile it? How come ?

giancarlostoro
6 replies
19h35m

My understanding is the compiler was insanely efficient and parts of it coded in assembly if I'm not mistaken.

tomcam
4 replies
19h11m

It was completely written in assembly

agumonkey
3 replies
18h53m

hand written and also optimized for throughput right ? maybe pascal syntax was also parsing friendly.. i don't recall

one thing for sure is that it felt near instant if not real time building small projects, to the point that 14yo me was completely unaware of meaning of Compile until years later.

bear8642
1 replies
18h49m

maybe pascal syntax was also parsing friendly..

Yep, designed to be single pass, recursive descent friendly

vram22
0 replies
9h37m

And despite being single pass, you could call functions and procedures before you defined them (later in the code), by using the forward declaration feature of Pascal.

Because of this feature, the language could also support mutually recursive functions, which some other languages might not have been able to (not sure).

tomcam
0 replies
16h42m

What bear8642 says. I worked with Anders and interviewed the poor man about it!

ale42
0 replies
19h32m

I think that the question was rather why it took 25 seconds to the current compiler to compile an Hello world on a contemporary computer... Turbo Pascal would have definitely done that in a second or less on an 8086 CPU...

qznc
2 replies
19h8m

Niklaus Wirth (Pascal inventor) had the rule that compiler speed must never regress. So if you add an optimization (which means the compiler has to do more work), the optimization must "pay for itself" and make the compiler faster.

That philosophy probably seeped into Turbo Pascal to some degree.

kant2002
0 replies
14h28m

That’s very interesting. I see similar attitude in the C# JIT/Roslyn developers where they take this very seriously. Interesting are this is influenced by Anders, or just whole thing tick for a lot of compiler developers?

cxr
0 replies
5h17m

You're saying that the reason for the slow compilation speed we see here is a commitment to keeping the compiler fast. That's not a logical sequence of thought.

stg22
0 replies
17h49m

Also, Pascal is a direct descendant of a very, very old language (ALGOL-58 from 1958). In the 1950s, HLL compilation was at the extreme edge of what computers were capable of doing and a key goal of language design was (or should have been - cough COBOL cough) to make it as efficient as possible.

By the time Ken Thompson was designing languages, hardware had improved a lot and he could make compilation efficiency a lower priority.

neilv
10 replies
19h20m

When I was a kid, a kindly computer store owner (who also made me a great deal on an PC-semi-compatible running MS-DOS 1.25, for approx. a hundred lawns mowed and babies sat) sold me a copy of Turbo Pascal for generic MS-DOS (no PC BIOS assumed) on 8" floppy. He transferred it to the 160KB 5.25" format that my semi-compatible used.

I hope I was appreciative enough at the time, as I am now. That helped bootstrap my career.

CoastalCoder
9 replies
18h18m

Okay, I'll bite :)

What's this "PC-semi-compatible" of which you speak?

neilv
2 replies
16h24m

Sanyo MBC-550 series. It later got MS-DOS 2.11.

https://en.wikipedia.org/wiki/MBC-550

jdhzzz
0 replies
6h21m

Missed this and commented separately. Thanks for reminding me of the model. This was my upgrade to the TI 99/4 I drove across the state of CT to spend 995 1980-ish dollars on.

analog31
0 replies
15h50m

That was my first computer too.

whartung
1 replies
16h21m

Back in the early days, MS-DOS was very much like CP/M in that there were several different 8088 machines. The “PC Compatible” hadn’t quite exploded yet, so MS-DOS (and CP/M 86) compatibility was enough.

But soon, Flight Simulator became the benchmark for compatibility, and I think the final nail was that Lotus 1-2-3 required an actual PC compatible machine. That plus the rise of clone BIOSs pretty much ended the brief era of generic, 8088, non-PC compatible machines, save for niche domains.

An interesting artifact of this era was when Steve Ciarcia of BYTE magazine released his 8088 board, and it was not PC compatible. He made some different design decisions.

ngcc_hk
0 replies
9h57m

Flight simulator as a test … still remember my boss tick that out as said you really cannot put that as requirement. We are in business not playing game …

mschaef
0 replies
17h50m

Interesting question... based on DOS 1.25, I can't imagine there are many choices. (Maybe the earliest Compaq machines among them).

jdhzzz
0 replies
6h25m

Not the OP but in my case it was a Sanyo with 2 floppies.

cardiffspaceman
0 replies
17h16m

That was the version of DOS that the Columbia MPC ran, and it was almost 100% compatible. I ran some code based on articles about the video card, and it couldn’t do the 160x100 mode that people wrote about.

So a lot of “clones” may have been this close as the Columbia was.

CRConrad
0 replies
4h31m

Wang had some funny ones. They ran both MS Word and MS Multiplan.

compiler-guy
9 replies
16h55m

It's hard to overstate just how much faster Turbo Pascal was than its competitors. So fast that it was hard to believe it wasn't cheating in some way. And then the resulting program was faster too.

A tour-de-force of its day, and it deserved all the acclimation that it got.

Narishma
2 replies
15h44m

It's biggest downside was that it was limited to producing 64KB .COM files until version 4 or 5.

dosk
0 replies
2h20m

This is not TP compiler limit. It's format and memory model limit.

https://en.wikipedia.org/wiki/COM_file#DOS_binary_format

EXE (aka MZ) is using other memory models

https://devblogs.microsoft.com/oldnewthing/20200728-00/?p=10...

acqq
0 replies
7h12m

AFAIK it was initially made to run on CP/M 8-bit systems, that 64 KB limit was a consequence.

I know I've used it on CP/M first.

It was really, really fast.

unnouinceput
0 replies
10h54m

Delphi, the successor of it still does that. Here is a link to an article about having a real project that contains a bit over a million lines of code. Has a video in it as well, and the comments there also discuss the times regarding Win64 compilation times:

https://www.tmssoftware.com/site/blogold.asp?post=759

imjonse
0 replies
6h51m

Indeed, Ctrl-F9 in Turbo Pascal was almost instantaneous, whereas the same in Turbo C++ would let you read through the list of files in the popup window as they were processed.

hankman86
0 replies
8h48m

Exactly, on the slow processors of the day, the Turbo Pascal compiler absolutely sprinted through the code.

A far cry from today’s complex build systems that take forever to compile a program which can do exactly the same thing.

corysama
0 replies
14h46m
chiph
0 replies
4h40m

In my college graphics class (taught by Jack Bresenham, no less) I asked for permission to use the new Borland Turbo C for my class projects. After a quick recompile for the demo (the PC in the classroom wasn't a 80286) I found my code ran a third of the speed of everyone else's, which had been written in Turbo Pascal v4.

And that's how I learned that mature compilers are better than 1.0 release compilers.

anta40
0 replies
12h39m

Even until today, Pascal is still mentioned as language than can be compiled fast (including Go vs Rust debate).

Many years ago, I remember building FPC 2.0 something on a Windows PC (512 MB RAM) and it took no more than 5 minutes.

blorenz
9 replies
18h48m

My first exposure to TP was when I pirated it off a warez BBS in the winter of 93 at the age of 14. The raw power I felt when I compiled my own EXE in contrast to running just a .BAS file was enthralling! I started modding Renegade BBS and writing door programs. I tried to, unsuccessfully, create worms, Trojans and viruses. It changed my life and set me on a course for where I am in tech today. Moreover I’m reformed my deviant teenage tendencies. I owe Borland a lot.

thsksbd
5 replies
12h43m

"I owe Borland a lot."

A belated license to be exact :P

deepspace
4 replies
12h23m

I pirated Turbo Pascal back in the day because I was a poor student in a Third World country and there was no way I could afford it. Ditto Turbo C.

After I started working, I had a hand in selecting Borland C++ as our in-house development platform, and we paid Borland a fortune in licensing fees. Which would have gone to Intel or another company if it were not for my, and other folks in my cohort's experience with pirated Borland products as students.

There is a lesson in there, somewhere.

usrusr
1 replies
8h57m

The lesson is that piracy (and to an only slightly lesser extent, free student licences) was an extremely powerful tool to keep a tool market cornered: impossible to compete on price when piracy is so ubiquitous that payment is essentially opt-in.

(I had a mouse driver disc, 5.25, that wasn't pirated, it felt like something from a parallel universe with its machine-printed label)

actionfromafar
0 replies
8h44m

A deliberate strategy by some companies. (Microsoft comes to mind.(

thsksbd
0 replies
4h54m

I was joking. I think IP laws are broken anyway, so I really dont care.

omgmajk
0 replies
8h29m

I really wonder when all this changed. I seem to have this idea, that I share with many others that software houses back in the day explicitly didn't care much about piracy because it got people hooked on their software and in the end enterprise would foot the bill.

I'm not sure how true this was, as I've yet to see any real official sources speaking about this myself but it seems like it was like that. But most of my thoughts about this comes from being in the piracy space back in the days so I really have no idea if this was ever a real thing or not.

technothrasher
0 replies
18h20m

Ah, the good old BBS days. I wrote a door library for Turbo Pascal back in '89 when I was 17 after I learned how to write an interrupt based serial driver, and then released it as shareware. It saw quite a bit of use until the mid-90's when the BBS scene fell off a cliff.

msmith
0 replies
17h31m

I had a similar experience in the same era. In addition to the deviant stuff I also used it to tinker with graphics programming using inline assembly for the “performance critical” (for a 386SX) parts. That experience definitely laid the foundation for what I do today.

dual_dingo
0 replies
11h1m

That throws me back. Being a teenager without any real understanding of compilers, interpreters etc., being able to create my own EXE file in TP4 felt like having superpowers - like being a real(TM) programmer :)

A few years later at 16, I actually got paid for developing a small app for managing my dad's customers, paid by the company he worked for. Part of that money went into getting a legal version of TP6.

Good times :)

doubloon
7 replies
14h16m

The main thing I recall about TP was that it came with simple, easy to understand code examples for every function that were organized logically and easy to find and use. So as a teenager who barely understood basic I could teach myself TP without the internet, just using the IDE.

So many modern systems do not have anything even close to this. I wonder if its inherent in the nature of the simpler x86 DOS based systems of the time, where its simply impossible with modern pace of change, cross-platform needs, and complexity to have something like that.

vanderZwan
3 replies
13h59m

Processing (P5) had this: you can select any string of text in its IDE anl search for it in the docs, and if it's one of the built-in functions or constants it will open the associated static html page that came installed with the software, so no internet nor server required. And despite being offline you can still navigate the docs too. This feels a lost basic skill in static site generation these days.

It was the only creative coding framework that had complete, offline documentation like that at the time I might add. OpenFrameworks is still mostly autogenerated stubs for example.

IMO it was one of the things that gave Processing an edge in educational contexts over all alternatives. I was pretty sad to see p5.js not fully continue that tradition and require that you go online to read the docs, and that it's not a static website but that text is rendered with javascript when you open it (still complete and with examples though).

https://processing.org/

https://p5js.org/

enraged_camel
2 replies
10h42m

You speak in past tense but isn’t Processing still in use? I distinctly remember using it to program my Arduino just five years ago.

vanderZwan
0 replies
7h59m

It is, but I haven't used it in a long time so didn't want to imply anything about the current implementation, since I don't know if anything changed in the last decade. I hope it's still as good as I remember!

edu
0 replies
8h20m

Yes, it's in use and well alive. The latest release, 4.3, is from July 26, 2023.

Although I think that p5.js is growing faster, as it's more accessible (browser IDE, not typed) and the artworks are easier to distribute online.

pasc1878
0 replies
6h18m

No it is because people don:t write documentation any more.

New languages tend to be open source and the ethos is read the source. Which I think is wrong.

hulitu
0 replies
9h40m

This was true also for TurboC.

Today, good luck looking for examples.

ReleaseCandidat
0 replies
7h54m

I wonder if its inherent in the nature of the simpler x86 DOS based systems of the time

I also learned Turbo Pascal without any books (I had a Basic book, because that came with the computer). But it was way easier. Drawing pixels was as easy as just selecting your (double buffered!) display mode and, well drawing pixels. Same with the reading of e.g. the joystick port or the mouse, you'd just read it.

bdcravens
6 replies
19h47m

Never wrote a line of code in Turbo Pascal afterward, but taking it in HS (somewhat on accident) in 1995 was what set the trajectory for the rest of my life.

cvwright
4 replies
19h36m

Same here. Even now, I still sometimes set my vim colors to blue background and yellow/white text.

zozbot234
1 replies
18h52m

That was a common choice for TUI software running in the 16-color PC textmode palette. I suppose the blue provided a "dark" background with less contrast than actual black. (TUI programs of the era generally had a pure black-and-white mode too, and the overall look there was not unlike that of *nix terminal-based software.)

CRConrad
0 replies
2h50m

I suspect it was in rather large measure because white on blue was the default for the DOS prompt in the early-mid eighties, and that in turn I always thought was because those were the colours of IBM's logo.

vram22
0 replies
18h33m

Cool. I should try that. I was a heavy TP user too.

Man, this reminds me of amber screen monitors. I liked them better than the green screen ones, but somehow, the amber ones seemed to be much less popular, at least in areas where I was.

mschaef
0 replies
17h49m

I used blue/yellow in Emacs until I bought a laptop with a glossy screen in 2011. Now it's grey/yellow. Some habits die hard.

anonyfox
0 replies
4h0m

Similar story here. I started with like 12 casually with C and later C++ in multiple attempts and failed, but TP brought me the joy of programming. And later I could master all other languages (including C/C++).

I will never forget how great it is to have some simple IDE with a "run" button/key, and build simple UI toys with points/lines/rectangles/... (what was it? tortoise? turtle? idk) for a school kid in that age. it was pure magic to bend pixels to my will.

zozbot234
5 replies
19h11m

Free Pascal still has a look-a-like of the original TP IDE! But that code is bitrotting by their own admission (it still relies extensively on obsolete quirks of the original MS-DOS platform) and it's sad that we don't have a look-a-like version that can work as a general editor in the terminal (like neovim or emacs) and integrate with modern IDE-oriented facilities like the LSP, tree-sitter parsers or the debug adapter protocol. That could even be a game changer for editing code remotely from SSH/terminal connections.

5-
2 replies
17h24m
rezaprima
1 replies
15h20m

Sadly, iirc, turbo vision was pascal first then ported to c++.

pjmlp
0 replies
9h14m

It was, firstly delivered alongside Turbo Pascal 6.0 for MS-DOS.

kccqzy
1 replies
15h47m

A little over a decade ago some of my friends who were Turbo Pascal fans transitioned to Lazarus. Seemed like the logical successor to Turbo Pascal and Free Pascal. (Personally I transitioned to writing C++ in Emacs as I did not really appreciate the Pascal language.)

chungy
0 replies
15h27m

Seemed like the logical successor to Turbo Pascal and Free Pascal.

To be more accurate, Lazarus is a GUI IDE for Free Pascal, not a successor. The same way Emacs can be an IDE for C that you'll compile with GCC.

I know, Delphi effectively replaced Turbo Pascal from the Borland side, even though Delphi could have been "just" an add-on to Turbo. They just didn't take that route.

kasajian
5 replies
14h48m

Is anyone going to mentioned that that's not at all what Turbo Pascal looked like when it was first released? Not in 1983. The UI was significantly simpler.

I remember it looking like this: https://imgur.com/EuOVL8c

stevekemp
1 replies
12h30m

That's what I remember too.

I briefly documented how to run Turbo Pascal 3.00A on a CP/M system a while back:

https://github.com/skx/z80-playground-cpm-fat/blob/main/TURB...

I'm doing that on a single-board Z80-based system, and it has to be said that writing pascal is a pleasure on such a machine. 64k of memory, and yet code compiles to real executables "instantly".

linker3000
0 replies
33m

May I interest you in a game of Snake for that.

https://github.com/linker3000/Z80-Board/blob/master/snake.pa...

nmfisher
0 replies
2h41m

I’m one year younger than TP, and the blue screen in TFA is the one I remember when I first used it (1990 or so I guess), so that must have been a later version.

Narishma
0 replies
2h0m

It looked like that until version 4 where they switched to the more common interface with windows, menus and whatnot.

CRConrad
0 replies
3h30m

Looks about like what I recall: https://news.ycombinator.com/item?id=38486499

allanrbo
5 replies
16h49m

Fun fact: the original author of Turbo Pascal, Anders Hejlsberg, went on to lead development of C# and then later TypeScript.

sneed_chucker
4 replies
16h40m

Woah. Had no idea he was responsible for Turbo Pascal

Keyframe
2 replies
15h50m

And Delphi, where at least he tried to do something with strings hah. Never got used to them, and never really liked Wirth languages, but respect is due of course.

robocat
1 replies
11h5m

Delphi strings were really well implemented. Garbage collected (RC), multithread safe, length in first integer, fast, make them as big as your memory could handle. Reduced bad memory pointers a lot compared to competition at the time. Didn't handle the Unicode transition well: but virtually no languages did.

magicalhippo
0 replies
6h24m

On the contrary, I'd say they handled the Unicode transition very well.

At work we had many, many thousands of lines manipulating strings, high and low level, and full project was over 300kLOC plus many heavy dependencies. We spent just a day or two to convert it to be Unicode capable.

Since we've had hardly any issues, and Unicode is not something we need to think about in the day-to-day.

nextos
0 replies
15h17m

Yes, he wrote Turbo Pascal while he was studying at DTU in Copenhagen.

DennisP
5 replies
18h8m

In high school I thought "structured programming" would cramp my style. I'd spend hours with BASICA printouts spread out over the floor, tracing through chains of GOTOs to find my bugs.

One day my dad brought home Turbo Pascal so I gave it a shot. I wrote Conway's Game of Life, and was shocked when it ran correctly the first time. Never wrote another line of BASICA.

Much later I turned pro and moved on to other languages, but my dad kept messing around with Pascal until he was in his 70s.

zozbot234
4 replies
17h51m

was shocked when it ran correctly the first time

This overall "if it compiles it works" philosophy is quite common among Pascal-family languages, and derived languages like Ada. Though there is also PL/I if you want a language with a loosely Pascalish syntax that relies on the complete opposite design style - the one that was carried over to C and its derivatives.

trealira
3 replies
12h14m

I doubt that by modern standards, Pascal seems to work if it compiles, compared to languages like Java or Go. They were comparing it to writing spaghetti code with GOTOs everywhere in BASICA, so no wonder their code seemed more reliable. Nowadays, the jump in reliability comes from strong and helpful type systems, not structured programming. Ada still seems good there, but Pascal is just an ordinary programming language.

CRConrad
2 replies
3h40m

Yeah, the benefits of strong typing have nothing to do with Pascal...

Sigh. Kids nowadays, etc. Look up which was the original language ridiculed for its "belt-and-braces" approach to type safety, in contrast to C, the freewheeling language of Kewl H4xx0rs (although they weren't yet spelled that way).

Now excuse me, there's a cloud I have to go shake my fist at.

trealira
1 replies
2h59m

I genuinely didn't realize Pascal was recognized as providing having a strong type system. I guess there is Brian Kernighan's "Why Pascal is Not My Favorite Programming Language," where he complains that there's "no escape" to the type system as in C, where anything can be cast to anything. But I took it to mean that C just had an exceptionally loose and liberal type system.

ben7799
0 replies
2h40m

Yah you have to think about this in the context of really bad C code from the 1990s.

It was really common for people to stuff pointers in ints and ints in pointers and do all kinds of really abusive things with the memory system in C. It was all fun and games until the program died with nary a stack trace. (Stack traces were pretty amazing the first time I saw them!)

There were even big commercial libraries that did really odd stuff. Motif (big early Unix UI framework) did a lot of weird stuff.

Pascal was pretty straightforward and disciplined compared to that, although I'm sure developers who were too clever for their own good found ways to do silly things.

mobilio
4 replies
19h6m

I started with TP 5.5...

narag
3 replies
17h10m

My uni had two micros halls, one with 5.0, the other with 5.5. What's the difference? I asked. It turns out the 5.5 had some new shit called "Object Oriented Programming"... and a Breakout clone to illustrate the paradigm.

At some moment Borland released, free as in beer, the 3 and 5 versions. Binaries should be out there somewhere for those curious.

I'm sure young people would be surprised to see what 5.5 provided. The on-screen help was amazing: cut and paste useful examples from the help of many functions. And the instantaneous compiling... :)

TomaszZielinski
2 replies
16h50m

Ha, thanks for refreshing my memory that it was 5.5 that added OOP!

I started with 4.0, so that's my baseline. Then 5.0 added overlays (IIRC) and 6.0 introduced Turbo Vision, which was a kind of magic to me :).

It's interesting how a _programming language/IDE_ can bring such warm feelings.

Eugr
1 replies
16h21m

I remember I learned Turbo Vision and OOP in general by writing my own Turbo Vision equivalent for the graphics mode (vs. text-only). Good times!

TomaszZielinski
0 replies
15h56m

That's very cool! IIRC I tried to write a very simple Turbo Vision clone (or subset) but I couldn't fully comprehend how the nested widget initialization worked. I mean, I knew the last parameter was a pointer to the next widget, and so on and on, but somehow I couldn't "integrate" everything in my brain :).

fm77
4 replies
4h11m

For all who wonder why Turbo Pascal was so fast here some insights:

50% is certainly due to the language Pascal itself. Niklaus Wirth designed the language in a way so it can be compiled in a single pass. In general the design of Pascal is in my opinion truly elegant and compared to other programming languages completely underrated. Wirth published a tiny version of his compiler written in Pascal itself in a 1976 book called "Algorithms + Data Structures = Programs".

In the late 70s Anders Hejlsberg took that version and translated it into assembly. He certainly must have changed the codegenerator since Wirth's version emitted bytecode for a tiny VM whereas Anders version produced machinecode, however if you take a closer look especially at the scanner and parser of Turbo Pascal and Wirth's version you can see that they are very similar. Back then Anders was not so much a language guy in my opinion but much more an assembly genius. And that resulted in the other 50% of why Turbo Pascal was so fast:

-) The entire compiler (scanner/parser/typechecker/codegenerator/ and later the linker) was written in assembly.

-) The state of the compiler was held as much as possible in cpu registers. If e.g. the parser needed a new token from the tokenstream, all registers were pushed to the stack and the scanner took over. After the scanner fetched the next token, registers where restored.

-) The choice of which register hold what was also very well thought through. Of course the cpu dictates that to a certain extent but still lots of elegant usage of the "si"/"di" register in combination of non repetitive lodsb/stosb instructions were done.

-) The entire "expression logic" (expression parsing / expression state / code generation for expressions) was kinda object oriented (yes, in assembly) with the "di" register hardwired as the "this" pointer. If the compiler needed to handle two expressions (left expression and right expression), then one was held in the "di" register and the other one in the "si" register. Since the "di" register was hardcoded, you will find lots of "xchg di,si" in the codebase before a "method" (a procedure with the "di" register as a "this" pointer) will be called.

-) Clearly the cpu registers were not enough in order to hold the entire state of the compiler so heavy use of global variables were made. Global variables have the advantage of not needing a register in order to access them (e.g. "inc word ptr [$1234]").

-) Parameter passing was done through registers and were possible stack frames were avoided (too expensive), meaning no local variables (still heavy usage of push/pop within a procedure, does this count as a local?)

-) Parameter passing done through registers allowed procedure chaining: instead of "call someOtherProc; retn" at the end of a procedure just "jmp someOtherProc" was used to a great extent.

-) Jump tables everywhere. In general the compiler was quite table driven.

-) Avoiding of strings as much as possible and if needed (parsing identifiers / using filenames) then avoiding to copy the strings around as much as possible, meaning all strings were held in global variables. The big exception here was of course the copying of the identifiers from the global variable into the symbol table.

-) Starting with Turbo Pascal 4.0, hash tables were used as symbol tables. Arena allocator for memory management.

I am sure I forgot a lot, I reverse engineered Turbo Pascal back in the late 90s. Most of the above applies to Turbo Pascal 7.0, but lots have not changed in earlier versions over time.

It is a shame that such a wonderful codebase is buried under the "closed source, proprietary software" label. It is clear that today nobody would write a compiler the way Turbo Pascal was written, not even in a high level language but the codebase has some many tricks, so many elegant solutions, that it is a real pity that this is not open source. Of course the codebase is on the web, just not the official one.

Thank you Anders Hejlsberg for such a wonderful piece of software.

dist1ll
3 replies
3h3m

All of this is fascinating. I believe single-pass compilation is underrated, and quickly disregarded by a large body of the PL community as anachronistic. I think that's complete nonsense. Just take one look at the massive build infrastructure that's driving modern monorepos to see how incredibly crucial fast compile-times are.

Jump tables everywhere. In general the compiler was quite table driven.

It would be interesting to see how this approach fares in the face of modern branch prediction on modern CPUs.

zozbot234
2 replies
2h39m

Single-pass is a bit of a gimmick. It requires programs to be written sequentially in a strictly "bottom up" way, so that forward references to parts of the program that have yet to be defined are rare enough that they can be marked specially (e.g. as with C program headers).

It's also largely irrelevant if you want optimized code generation, especially across multiple procedures, since that requires you to read abstract representations of the code into memory and deal with them globally which is the opposite of single-pass compilation.

dist1ll
1 replies
2h30m

How often do you need highly optimized cg during development? Unless I'm working on games, 99.9% of my time (even on highly performance-critical software) is spent on evaluating debug builds with 0 perf requirements - because I need to implement it correctly first, and make sure tests are passing.

I think it's uncontroversial that most fast, statically compiled languages benefit greatly from quick debug builds. It's just that very few of them are designed with this in mind.

zozbot234
0 replies
2h4m

I think I have made the argument above that the feasibility of single-pass code gen boils down to how the program is structured, not so much the language design itself. Perhaps current compilers should be reworked to generate code about as quickly as TP did, if optimizations are totally disabled and the code is written to eschew unresolved forward references. But I'm not sure there would be much of a point. And you would still have many language features where going back and performing a second pass over what was previously parsed (and perhaps codegen'd) just can't be avoided.

browningstreet
4 replies
19h41m

I started with Turbo Pascal, and as is often noted by others, I spent a lot of time with the book Borland shipped with the compiler.

randcraw
2 replies
19h2m

And Jeff Duntemann's outstanding "Complete Turbo Pascal".

nxobject
0 replies
1h42m

I remember his x86 assembly book really well - I remember him first showing DEBUG.COM and I was like “what??? How is that possible???”

cylinder714
0 replies
12h26m

By the way, the x86-64/AMD64 Linux edition of his assembly-language text just came out:

https://www.contrapositivediary.com/?page_id=5070

lioeters
0 replies
13h14m

Turbo Pascal was my first real programming language (after BASIC and a bit of 8086 assembly) in my pre-teen years, and I read the manual very thoroughly. It was fascinating to learn, even though much of it was over my head.

I remember sitting at the living room table on many evenings, studying a stack of printed out source code. My task was to contribute to translating a bulletin board system called WWIV.

https://en.wikipedia.org/wiki/WWIV

I went on to study Turbo C, which came with a wonderfully informative manual also. That experience formed the foundation of my programming in the next decades (2~3).

5-
4 replies
17h26m

see also, "things that turbo pascal is smaller than" by james hague: https://prog21.dadgum.com/116.html

jodrellblank
2 replies
16h54m

"The entire Turbo Pascal 3.02 executable--the compiler and IDE--was 39,731 bytes"

On my computer now, it's smaller than:

    - License.txt which comes with "TurboPascal (with DOSBox)"  (42,044 bytes)

    - sqlanywhere.vim, syntax highlighting file for the SQL dialect of SQL Anywhere (41,929 bytes)

    - parse.py, the URL parser in Python's urllib (42,057 bytes)

    - doc_testing.html the Rust By Example section on writing tests in comments (42,059 bytes)

    - pwd.exe (print working directory) in GitHub Desktop (42,296 bytes)

    - WindowsExplorer.admx the XML policy file describing the available
        settings in Windows Explorer (42,461 bytes)

jasomill
0 replies
15h0m

Also smaller than half the binaries in /usr/bin on my x86_64 Fedora 39 system[1] and less than half the size of every binary executable in /bin and /usr/bin on my x86_64 Mac[2] in spite of the fact that all the Linux and Mac binaries are dynamically linked to at least libc / libSystem.

It's also less than half the size of Xcode's PNG-compressed Retina application icon (83,056 bytes).

[1] This includes such gems as cat (40,848 bytes), tac (40,808 bytes), and tee (40,968 bytes).

[2] Where even /usr/bin/true weighs in at an astonishing 100,512 bytes, despite its entire text section disassembling to

    pushq %rbp
    movq %rsp, %rbp
    xorl %eax, %eax
    popq %rbp
    retq

JNRowe
0 replies
15h42m

I was about to say there are a good few tools smaller than that on my system, but I was one hundred percent wrong.

    # zsh glob for regular files that are smaller
    print -l /usr/bin/*(.L-39731)  # Some ~500 results
    # Not interpreted or using system libraries
    file /usr/bin/*(.L-39731) | egrep -v '(script|dynamically)'  # 0 results
Turns out there are only smaller things if you accept big caveats.

corysama
0 replies
14h44m

Also an rant on how it was so fast https://prog21.dadgum.com/47.html

zwieback
3 replies
18h53m

Ran it on my Apple ][. It was interesting because another great platform on the Apple was UCSD Pascal but Turbo was so much slicker and easier to use.

fortran77
1 replies
17h47m

I don't think there was a version of Turbo Pascal for the Apple ][

https://en.wikipedia.org/wiki/Turbo_Pascal

..though you may have been able to run it with the Z-80 Softcard

zwieback
0 replies
17h37m

Yes, correct, it was only with the CP/M card, not 6502.

linsomniac
0 replies
18h19m

My High School had a computer lab of ~8 Apple ][s with dual floppy drives and the CPM board to run UCSD. It worked, but we were definitely limited in the number of computers we could use due to these limitations. I also had access to an HP 9835 also running USCD, so it was very familiar to me.

But part way through my class we switched from UCSD to Turbo Pascal, which only needed one floppy and just absolutely blazed. It was like a space age rocket ship.

tquinn
3 replies
19h8m

I first used Turbo Pascal in a high school programming class. I remember our teacher saying: "Make it work first, then you can make it look pretty."

zozbot234
2 replies
19h5m

It's being used to this day (or until very recently, at least) in some countries, generally running under dosbox because DOS software can no longer run natively in modern PC OS's.

Sunspark
1 replies
12h13m

FreeDOS exists.. https://freedos.org/

livrem
0 replies
9h26m

That can no longer run on many modern computers as the backwards-compatible BIOS is phased out, not to mention many computers switching to ARM.

orionblastar
3 replies
21h57m

I started with TP 3.0 in high school. It compiled faster than any other Pascal. It uses the WordStar editor. My teacher called it the cat's pajamas.

NikkiA
1 replies
18h51m

TP 2.x and 3.x had integrated editors that were functionally similar(inspired by) to WordStar, but were not wordstar, and using an external editor was a pain in the ass.

orionblastar
0 replies
14h57m

I mean to say it used WordStar commands. It was an early IDE and worth the money to switch from MGA to CGA to see the color highlights.

CRConrad
0 replies
2h42m

Hi Norm, hope everything is well with you.

benhoyt
3 replies
17h4m

One of my favourite computer games was written in Turbo Pascal: ZZT, written by Tim Sweeney of Epic Megagames. It was a quircky text-mode game with puzzles, shooting, and so on. It had a built-in game editor that came even with the free shareware version, and it even had a little programming language called ZZT-OOP.

ZZT's original source code was lost. Years later, Adrian Siekierka painstakingly reverse-engineered the original Pascal code till -- when compiled with the original version of Turbo Pascal -- produced a byte-for-byte identical executable. Amazing! Read more:

- https://blog.asie.pl/2020/08/reconstructing-zzt/

- https://news.ycombinator.com/item?id=22609474

- https://benhoyt.com/writings/zzt-in-go/

zzo38computer
0 replies
14h20m

ZZT is the reason I have Turbo Pascal on my computer.

vanderZwan
0 replies
13h58m

ZZT also inspired the overworld of Frog Fractions 2

scrumper
0 replies
3h7m

One of mine too, a really special bit of software. It was my real introduction to programming too. I'd typed in BASIC listings from magazines and done dumb stuff on the school BBC Micros before, but ZZT-OOP on my first PC was where I learned to make things I wanted from scratch.

stevage
2 replies
18h32m

Wow I wrote a lot of Pascal when I was a kid. I then did a bit of C but didn't like it much, and moved onto Delphi.

It hadn't occurred to me that Pascal is actually younger than me, though not by much.

mschaef
0 replies
17h48m

The interesting thing about Turbo Pascal is that by the time it was TP6 it was just about as expressive as C itself. (Evidenced by the fact Turbo Pascal for Windows could easily interoperate with the heavily C-based Win16 API).

anta40
0 replies
11h17m

I also learnt Turbo Pascal before Turbo C (in high school days: 2001-2004). Eventually I knew C had a major selling point: Linux/Unix.

Pascal? Limited interest among system/OS kernel programmer nowadays. Still a fine language for building applications, though.

icedchai
2 replies
18h13m

They taught Pascal in high school, for my AP Computer Science course. We used Turbo Pascal on PS/2 model 30's. There were no hard drives in the machines! The teacher handed out floppies at the start of the class. By that point, I already knew C but it was still fun learning a new language.

nsxwolf
1 replies
18h9m

One of my favorite vintage PCs is my PS/2 Model 30, and I had no idea it was available in a dual floppy configuration! It seems way too late to have been sold that way, but yup, checks out, that was the bare-bones configuration.

icedchai
0 replies
18h2m

Yes, it was pretty odd! This was around 1992 or 1993, so long after the PS/2 was even released.

geoelectric
2 replies
18h4m

Turbo Pascal was the first "real" programming language I learned past 6809E ASM, structured basic flavors and batch/shell back in the very late 80s. When I went to college for CS in the early 90s, they were still teaching the first year of classes in Borland Pascal so that turned out to be very useful experience.

A few years later, my Pascal background sailed me into a half-decade stint as a custom app dev working with Delphi. That, in turn, led to a job at Borland testing the Kylix and C++Builder IDEs. Good times.

I still miss Delphi. Nowadays it's normal to have IDE plugins to the point it's a dealbreaker if they don't exist. But at the time the idea of a component library and coding environment that was easily extensible in its own language was pure magic. I had so much fun playing with both VCL and the IDE itself.

It's a shame Borland left the grassroots devs behind in their quest for the enterprise market, and more or less killed any growth in community adoption. It was a really cool setup, at least through Delphi 7 or so.

upupupandaway
0 replies
10h28m

In my country Delphi was the most popular dev environment by a mile. It was really bizarre, with most of the world going for VB 5 and we in Delphi. It always seemed to me like a fantastic environment but for some reason it only took off in a couple of markets (my perception as an outsider).

mmgutz
0 replies
17h47m

That's close to the route I took, although I switched to Visual Basic 5 later on no thanks to job opportunities. Still don't feel anything rivals Delphi for GUI development. VCL was genius.

MichaelMoser123
2 replies
14h18m

looking at the perfection of Turbo pascal always made me feel stupid. At least it's not just me, wikipedia says:

"Scott MacGregor of Microsoft said that Bill Gates "couldn't understand why our stuff was so slow" compared to Turbo Pascal. "He would bring in poor Greg Whitten [programming director of Microsoft languages] and yell at him for half an hour" because their company was unable to defeat Kahn's small startup, MacGregor recalled.[21] " https://en.wikipedia.org/wiki/Turbo_Pascal

hulitu
0 replies
8h36m

"Scott MacGregor of Microsoft said that Bill Gates "couldn't understand why our stuff was so slow" compared to Turbo Pascal. "He would bring in poor Greg Whitten [programming director of Microsoft languages] and yell at him for half an hour"

They tried this on a project at my workplace. After six months of money spent on "yelling", they finally started to fix the issues.

acqq
0 replies
7h4m

Actually, how was Turbo Pascal faster than the competition was completely obvious to those experienced in the software development at that time:

It did everything possible in memory, avoiding reading and writing of temporary files. Microsoft tools did it with the file I/O for multiple passes, a traditional solution for coping with limited RAM and applying optimization steps and targeting different processors.

zzo38computer
1 replies
14h7m

I tried to view the article. First, I got a certificate error. I tried again, and I got a proxy error. I tried again, and then I got a "WebCommand Error". So, then I tried again, and this time the connection timed out.

sltkr
0 replies
13h58m

I can't get the site to load either. It's probably overloaded.

Archive.org has a copy though: https://web.archive.org/web/20231201001803/https://blog.marc...

Not that there is a lot of content on that page beyond the title.

theboywho
1 replies
8h17m

Fun fact: one of Niklaus Wirth (the author of Pascal) students was Martin Odersky, who went on to create Scala.

justin66
0 replies
38m

Robert Griesemer, one of the creators of Go, did his PhD under Hanspeter Mössenböck and Niklaus Wirth.

More relevant to the thread at hand: Martin Odersky wrote Turbo Modula-2.

https://www.artima.com/articles/the-origins-of-scala

https://news.ycombinator.com/item?id=16704733

(as with C# vs Scala, Hejlsberg's Turbo Pascal was faster and more popular than Odersky's Turbo Modula-2)

sbarre
1 replies
18h54m

Ok with a bunch of old hats here, anyone else remember

Technojock's Turbo Toolkit?

It was a UI and eventually object toolkit for Pascal apps and it was pretty damn cool for the time.

There isn't much online about it, but everyone I knew who was working in TP or BP swore by this in the early 90s..

https://www.computerhistory.org/collections/catalog/10277966...

boffinAudio
0 replies
7h54m

I remember it well, including the fonts it bundled .. burned into my retina even today, given the crazy code I wrote using that toolkit. Thanks for the nice memories, I always wonder what happen to TTK .. as well as PC-Write, for which I had the source code license, and always tried to pack along with the TTK in my backups for some reason (I was a weird kid) ..

rootusrootus
1 replies
17h0m

That's a blast from the past. Turbo Pascal 3 was the first "real" language that I learned when I was young. And then there was 5.5, which had a much nicer IDE. Ah the good old days.

serf
0 replies
16h56m

same here!

put together a sieve of eratosthenes from algorithm as a kid and thought I was hot shit. something about watching a computer slowly tick through primes was so satisfying.

good times.

myth_drannon
1 replies
15h27m

I'm currently reading "Assembly Language Step-By-Step" by Jeff Duntemann from 1992. In it, he calls TP "moron friendly" (unlike Assembly). Also something like Sears Catalog fallacy, "where you go hunting through veritable Sears catalog of toolbox products looking like: SearchDataFileForFirstRecordBeginningWithStringAndDisplayInRed Basically, this method glues other people's canned procedures into programs..."

30 years ago they had the same complaints like we have today

CRConrad
0 replies
2h40m

Duntemann may be a great guy, but he definitely isn't and hasn't always been right.

marcod
1 replies
17h23m

Perl at 35 (almost 36)

How do you do, fellow kids?
krylon
0 replies
15h30m

This made me giggle. :)

fzeindl
1 replies
11h57m

One of the best things about Turbo Pascal was having to declare all variables upfront at the beginning of functions.

I really don't know why languages like C, Java or JavaScript started to allow variable definitions everywhere. Needing to declare variables first leads to much cleaner functions.

blt
0 replies
9h7m

Strongly disagree. I want to have variables that only exist within an `if` block. That is something C99 got right.

But Python's leaky scopes are even worse than up-front declarations.

darkteflon
1 replies
17h4m

Fond memories of watching my dad sat in front of a bright blue screen covered in inscrutable glyphs. It looked like pure wizardry to me then.

While the original colours are too intense for my taste, I do sometimes switch to the Noctis Azureus theme in VS Code when I find myself thinking of him.

CRConrad
0 replies
3h34m

The colour scheme I recall was yellow on black. Version two, I think, but I'm not sure... I copied a copy I found -- no doubt already pirated by whoever left it there -- in the Economics computer lab onto a floppy ("crunchy", actually; a 3.5" diskette) back in ~1990-91. And then went on to implement a multi-variable linear regression algorihtm for my exam paper in statistics in it.

coliveira
1 replies
18h30m

My first language in college was TP. It was such a nice environment to use that when I first encountered gcc and similar UNIX compilers I thought them to be very primitive.

Lectroid
0 replies
16h2m

TP was also the first language that I learned in collage in 84. I remember the Prof always calling it the language of love. We made fun of him alot for that statement but I think he got the last laugh...

bytehowl
1 replies
1h1m

There's one thing I don't understand.

Whenever TP or Delphi get brought up, people wax nostalgic about how amazing they were, and that they are actually unmatched to this day in certain aspects.

I know the adoption of both got hurt by Borland's and Embarcadero's corporate shenanigans. However, FreePascal and Lazarus are reportedly just as good as Borland's products, but without the business issues. Despite that, they seem to barely get used. Why?

proaralyst
0 replies
46m

I'd guess it's the same thing that makes any niche language difficult to use for real: developer education, tooling and lack of third party libraries. Mainstream languages tend to have these three things in spades, and the language itself is good enough.

zubairq
0 replies
3h58m

What an amazing product!!!

wallrat
0 replies
8h16m

Still have the Turbo Pascal 1.0 manual on my shelf. It was the first language I picked up after Basic and QuickBasic as a child.

Wrote a couple of interesting things a few years later in TP 5.5, including a BBS/Kom system and a MUD (with 4 dial-in lines).

Found the source a few years back, was an interesting read a few decades later.

tomcam
0 replies
19h9m

It changed my life and made me want to write compilers for a living. I wrote the first one in Turbo Pascal.

thijson
0 replies
7h51m

I used the Turbo Debugger to crack or develop cheats for games, that is until I discovered Softice. It always amazed me that when I set a breakpoint, it would halt the running program, switch to text mode, I could single step for a bit, modify an opcode, then continue running, and the screen would flicker back as if nothing had happened. Even the key combination, I think it was <ctrl> <break>, would halt a lot of programs. This was in the DOS days when programs had a lot more control over the system.

My experience with Pascal was my first experience with a procedural language. Before that I had been writing BASIC. I didn't believe at first that I wouldn't need a goto statement somewhere. I recall later thinking that compared to BASIC, the resulting code was more satisfying looking. In highschool we used the Watcom compiler running on QNX on a 286. It was slower to compile I remember than my later experience with Turbo C.

therealmarv
0 replies
2h59m

When I first learned Turbo Pascal and later Delphi I thought we reached the peak productivity to create World-Class desktop programs and in the future there will be so many good desktop programs everybody creates because nothing came close to Delphi in my opinion.

Then the web came (and I got confused) and I've never regained such clarity in programming as with Delphi on my little Windows desktop.

swah
0 replies
3h14m

While SWAG seems to be a group (https://en-academic.com/dic.nsf/enwiki/9596219) I remember this executable "swag.exe" that ran inside Turbo Pascal and had tens of demos of this (for me, then) advanced coding environment, even with graphics demos.

Pressing F9 would compile and run the selected "demo" super easily.

One of my earliest memories of using a computer, I think.

sriku
0 replies
15h11m

My first "big" program was a school project submission done in TP. It had an editor for drawing pixels in a (text) grid .. one line at a time. You could draw polygons, name them and the next time you drew something similar to the earlier ones it would recognise it and suggest the same name. If it couldn't find one, it would ask you for a name to remember.

Was so much fun writing it. The interface was fun to write. You could use it to tell apart isosceles triangles from equilateral triangles, for example.

The machine I used only had two floppy drives and still I recall TP was fast as a Ferrari.

septynade
0 replies
12h5m

I swear I thought I read "Pedro Pascal Turns 40" and thought why would anyone here care about that lol

rf15
0 replies
8h42m

Turbo Pacal! It's been ages, but it's the first language I learned. The Borland IDE was amazing for its time and allowed me to learn the language in no time. My dad learned it too, and even developed some small games with it. Even now he likes to use its successor, Delphi.

pugworthy
0 replies
11h36m

Man - such memories. I used this for the first time in a commercial software product for Geophysical forward modelling of gravity and magnetics. It was such an amazingly fancy system at the time - the first "real" development system I'd ever used.

Byte Magazine, Philippe Kahn, Chaos Manor..

projectileboy
0 replies
3h17m

My first paying job! At least for the relatively simple problems for which I was using it (rating auto insurance premiums by insurer and by state), it was a very nice environment.

pjmlp
0 replies
18h28m

The language that taught me systems programming should be all about, with proper security, modularity and good high level code, no need for lack of security shortcuts.

I was blessed to have learnt TP before C.

Happy birthday Turbo Pascal!

nritchie
0 replies
16h58m

Turbo Pascal was a game changer. Prior to this, I'd been learning to code with Computer Innovations C compiler. It required multiple compiler passes involving swapping floppy disks. What a pain. Turbo Pascal was small, compiled fast and produced tiny executables. It was a joy to use. Later, I used Delphi to develop the GUI for an electron microscope. It made GUI development so easy - even developing custom controls for knobs and 2-D sliders.

ngcc_hk
0 replies
10h4m

I still have it installed to play the bridge.

mtillman
0 replies
18h23m

This brings back great memories. I wrote a text based adventure game in turbo pascal for a high school project (97/98) and had a blast. It was a really easy language for my needs and skill level. Started a life long love of code.

morkalork
0 replies
17h50m

I learned Pascal in highschool the last year they taught it before switching to Java! I remember the textbook we used had a Dune themed question/problem to solve which was delightfully nerdy compared to the corporate OOP blandness of Java

major505
0 replies
15h25m

I miss the turbo family of IDEs. I worked a lot in Turbo C, an did my graduation project in college on it.

Teacher would make us use vi in the first year. I still could not believe that you could just put a break point and stop the program in the middle of exectution to inspect variables. It was like magic to me.

livrem
0 replies
9h11m

I almost coded some Turbo Pascal earlier this year. I found the source code for one of the (not so great) games I (tried to) write in Turbo Pascal 2.0 as a kid. Had fun porting it to the latest stable Free Pascal. Never used Free Pascal before and was quite impressed. Well documented, stable, amazing cross-platform. Supports everything from creating 16-bit DOS COM-files to various modern 64-bit platforms and JS.

kristiandupont
0 replies
1h11m

To quote Joel Spolsky:

One day, a spiffy program called Compas Pascal appeared from Denmark, which Philippe Kahn bought and renamed Borland Turbo Pascal. Turbo Pascal was sort of shocking, since it basically did everything that IBM Pascal did, only it ran in about 33K of memory including the text editor. This was nothing short of astonishing. Even more astonishing was the fact that you could compile a small program in less than one second. It’s as if a company you had never heard of introduced a clone of the Buick LeSabre which could go 1,000,000 MPH and drive around the world on so little gasoline than an ant could drink it without getting sick.

keernan
0 replies
17h17m

Stirs memories of Clipper

jprd
0 replies
19h46m

oof.

jimmydoe
0 replies
16h0m

Still remember tinkering around the inline asm in TP6, taught me a lot about low level part of system.

jbgreer
0 replies
17h10m

I transitioned from Apple Pascal (based on UCSC p-system Pascal) on the Apple ][+ amd //e to Turbo Pascal on DOS in the early 80s. Turbo Pascal was a blast: the very quick compiler, good feedback, colorful editor, and use of the Wordstar keybindings, which I already knew, made for a great experience.

I recall writing programs large enough to require use of the overlay facility, which essentially let you page in different parts of your program under DOS.

I also recall meeting David Intersimone, a great ambassador of Borland, sometime in the 80s - might have been later 80s - when he visited my university as a guest of the local ACM chapter.

javier_e06
0 replies
1h39m

I was carrying a shoebox with my programs in 5 1/4 floppys in at 4th floor of my library where the had dozens of Apple II e PCs. One of of the programs was Turbo Pascal. The first computer science class in 1985 was in Pascal. Funny I was just as interested on the teachings of Blaise Pascal and Pascal's Wager. Like many ones of my generation we wrote an asteroid program where an asterisk was printed in a for loop at a random place between 0 an 79 and produced asterisks coming down the screen and the user had to navigate an caret left-right avoiding the the asterisks. This was not part of my boring assignments. I wrote it and shared with my friends and carried it in my shoebox filled with floppy disks.

Happy Birthday Turbo Pascal. (TP means something else in the US).

j1mmie
0 replies
9h15m

Pedro Pascal is 8 years older

ilaksh
0 replies
17h0m

I had something called Turbo Pascal DiskTutor which if I remember correctly really helped me understand object oriented programming.

I also spent quite a lot of time working on a type of rough wireframe 3d CAD editor in regular Turbo Pascal when I was in the 8th grade. I used equations I got from a little reference book my dad had brought from some garage sale or whatever to figure out how to do rotations and perspective.

We also used it in AP computer science class which was probably the highlight of high school for me.

grrandalf
0 replies
17h46m

Brought back some memories. Turbo Pascal 5.5 is the greatest IDE ever made.

Editor, compiler, debugger (separate full-screen output buffer alt-f5 iirc), graphics.

And oh complete stdlib docs that worked offline and in-app so you didn’t get out of “flow”. With copy-pastable examples in the help.

In a few MB.

figital
0 replies
14h8m

Still have the manuals at home on my bookshelf. Great examples of technical writing and explaining how the world is changing.

einpoklum
0 replies
18h56m

Other than some Logo experience, I first learned "real programming" using Turbo Pascal. I was in sixth grade and went to a programming summer-camp-of-sorts, held on the grounds of the Techno-da science museum (today called the Mada-Tek). At break time, one of the other kids got a copy of "Ironman Super Off Road" [1], and we would play or watch others try to beat the computer. And at break time there were bread rolls with some filling I think, and every other day or so it was this chocolate-flavored spread.

Man, that was so much fun!... I haven't thought about those times in years; thanks for the trip down memory lane :-)

[1] - https://www.mobygames.com/game/4444/ivan-ironman-stewarts-su...

duncanmeech
0 replies
5h24m

Borland! The only good thing about Hwy 17.

dugmartin
0 replies
5h57m

I started with TP 3 in high school in the late 80s and then went on to use it my freshman year in college as all our Intro to CS projects were in Pascal. I think 98% of the folks in that class used the mainframe, which involved submitting your job in the terminal and then walking across campus to the printing room and seeing the output. I did all my work in my dorm on my Tandy 1000 SX and when I was done was able to use a pirated copy of an IBM file uploader to get it into my mainframe account and then submit it. Luckily TP 3 still understood old style Pascal comment delimiters as we were graded as much on our comments as we were on working code.

A couple of years later as a senior I used TP 3 using "Turbo Vision" to write a simple learning focused stats package for a professor's book (_Quality Control, 4th Edition_). I found out later that same package was being used for the production line of Jim Beam whiskey.

I also wrote a few shareware programs in TP and put them on Simtel in the early 90s. It was pretty cool getting random checks in the mail for utilities like "vgalogin", a Novell login frontend in VGA mode with a floating message of the day.

coldcode
0 replies
17h28m

I bought a copy of Turbo Pascal at the 10x10 booth they had at the West Coast Computer Faire in SF when it first released in 1983? or 1984. I used it to build a TSR app on DOS 2.2 in my first job. Still the fastest dev environment I have ever used relative to anything else at the time; it was amazing to use.

bluedino
0 replies
19h17m

I never used the original, but I started with a 2.0 disk I got from a friends parent who was taking computer classes in college.

https://www.abandonwaredos.com/abandonware-screenshot.php?gi...

It didn't have the trademark Borland IDE yet, but along with this Pascal book from the library, I had hours of fun.

Computer Programming in Pascal the Easy Way https://a.co/d/3uPpxAw

blame-troi
0 replies
19h8m

we had Turbo, JRT, and UCSD back at my first job out of college. All quite good in their way.

binarycrusader
0 replies
14h46m

For those looking for a retrocomputing Pascal; use Turbo Rascal Syntax Error: https://lemonspawn.com/turbo-rascal-syntax-error-expected-bu...

ben7799
0 replies
2h43m

Turbo Pascal is probably the key thing that led me to end up studying CS and becoming a software engineer. I had dabbled in Basic starting around 10, I took a summer camp coding class, which would have been pretty novel in the late 80s I guess.

But then at some point we got a copy of Turbo Pascal (my Dad was an engineer and was always bringing interesting stuff home for me to try) and I started banging on that. In my senior year of HS I got super into it when I took another class. I did the whole year's curriculum in a couple months and then wrote an asteroids clone in class. It kind of drove the teacher nuts cause he said he had nothing left to teach me and he got annoyed when I started sharing the program with other students and they were playing the game instead of working.

The one thing I remember not grokking when using TP was pointers. I wrote my whole asteroids program with fixed size arrays. I don't think it helped that I didn't really have anything great in terms of books and no one around me really understood how to use them well to talk to me about it. A year later when I started learning C/C++ in college I got it quick though. I didn't even switch to CS till after I decided where to attend, I had originally planned on studying Aeronautical Engineering and the whole Turbo Pascal adventure made me change my mind.

I keep wondering if I have a copy of that program sitting on a floppy disk and I could recover it. I don't actually own a computer with a floppy drive though, even though I might have an old internal floppy drive sitting in a box.

begueradj
0 replies
11h25m

I started coding in C. Things were difficult to me. Luckily we had a good professor who switched our programming learning to Pascal. That's when coding started to be clear and simple to me and for my classmates.

Niklaus Wirth has done an immense work. From Euler to Oberon, passing by Modula, he is a great visionary and a decades determinant mind.

beej71
0 replies
15h2m

This compiler was blazingly fast in the 80s. Running on a modern computer, builds should look instantaneous--has anyone tried it?

aunwick
0 replies
15h2m

Nice that you had an ide. I got demoted for having 99.9 percentile SAT score in 7th grade and had only an Atari1040 ST to prove my mettle on.

alfiedotwtf
0 replies
15h51m

The whole Borland suite was epic for the time. I still feel like Turbo Debugger was the peak of debugging UI

agys
0 replies
7h30m

I learnt to program and to animate sprites with Turbo Pascal!

Later on me and a bunch of friends programmed a Sokoban-clone called “Project S” for MS-DOS: it used the graphics mode “X” for smooth scrolling; we even bought a commercial .mod player library for the sound effects and background music.

agumonkey
0 replies
18h30m

Turbo Pascal and a few others programs of this era would still be utterly relevant technically and pragmatically. Don't forget the past.

adamwiggins
0 replies
8h16m

I'll join the chorus here and say that Turbo Pascal was my stepping stone from beginner tinkering (BASIC on Apple II and DOS) to professional development with C. The dev environment was the perfect mix of "serious and you can make real stuff including compiled executables for distribution" with approachability for a relative beginner.

ZiggerZZ
0 replies
6h57m

Turbo Pascal was my first programming language! I think I was 10 or 11 y.o. when my school teacher introduced us to it. I still like its simplicity, Python (my main language now) reminds me of it.

Zaskoda
0 replies
13m
TomaszZielinski
0 replies
17h4m

This brings memories.. I remember running Turbo Pascal 4.0 under PC-Ditto (XT emulator) on Atari 520ST :-)). It all looked mysterious and raw comparing to GEM [1], but it was probably my first _serious_ programming setup.

The Atari was from Germany, and I didn't know German at all, but I knew a bit of English. And so probably that was an important factor in why it was more attractive than whatever Basic or Assembler I had on the host system.

[1] https://en.wikipedia.org/wiki/GEM_(desktop_environment)

TomK32
0 replies
17h21m

I did learn it in school when I was about 14, 15. My daughter is 8 and she'll learn some programming this third year in school but I bet it won't be TP. I didn't teach her any programming on purpose, but if she likes it we'll do a game in Godot.

StanislavPetrov
0 replies
11h18m

My high school started offering it's first programming course in 1988. It was in Turbo Pascal, and it was being taught by a math teacher who knew absolutely nothing about programming and was learning out of the book (Borland Turbo Pascal 5.0 [still have it]) at the same rate we were. The classroom was basically a computer room lined with PCs that we all sat in front of. These PCs were equipped with 5 1/4" drives as well as 40 MB hard drives. Being the "hackers" that we were, we downloaded the original version of nethack (early rogue offshoot) off of a BBS with our 1200 baud modems, brought it to school on 5 1/4" disks, loaded it onto the hard drives, and started playing it while the teacher sat at the front of the room with her nose buried in the book, trying to figure out how to learn enough Pascal to offer instruction. Unfortunately, after a while, these mysterious black rectangles started randomly appearing on the screen, and the PCs started experiencing performance issues. Nobody could figure it out. After many months, it was determined that we had infected all of the computer with the Jerusalem virus (in 1988!). Soon after, a school-wide prohibition on installing your own software was implemented (though not followed).

Scubabear68
0 replies
17h17m

I was incredibly lucky that my college way back in 1987 gave all engineering students a PC XT loaded with things like Turbo Pascal. So much better than being stuck on a time sharing system in a lab…

RagnarD
0 replies
16h56m

A fantastically productive system back in the day. It was a joy to use.

Qem
0 replies
1h45m

The first ever programming environment I ever had contact with. The awesome feeling of compiling your own programs and bending the computer to your will. Fond memories.

Thinking I'm probably a member of the last generation to have the magic experience of computers quiting the realm of science fiction, stuff we only saw at movies, to become a real world tool. People born after that time surely experience them as trivial, mundane stuff, one is used to since forever. For me, to this day, computers still feel a bit "magic", like flying cars, but that actually happened.

NoNameHaveI
0 replies
4h6m

Dear God, how I LOATHED Turbo anything as a beginning student. Yes, the debugger was helpful, but I spent HOURS upon HOURS chasing down non-sensical error messages. This was in the pre-Mozilla days mind you, so good luck finding help. Even the TA was useless. Years later, I learned C++ with gcc. Only debug tool we used was "got here" statements. MUCH less frustration. I have vowed to smash every copy of Turbo Pascal and Turbo C/C++ that I find.

LispSporks22
0 replies
18h40m

I still open up TP7 in DOSBox-X to play with "leet code" puzzles. They're mostly imperative and the super-fast compilation time and debugger are impressive even by today's standards.

JKCalhoun
0 replies
15h4m

Weirdly, Turbo Pascal was my first high-level programming language and it was on my Macintosh Plus. (I have come to find Turbo Pascal was more of a PC thing.)

In college I used a student loan to buy my first Apple computer, the Macintosh Plus. By chance there was a classified ad in the college newspaper for a copy of Turbo Pascal for the Mac — some professor was selling it for like $40 or something. I snagged it.

It had the manual, thankfully, but very simply tools for Macintosh development. No ResEdit, but the odd R-Maker app that expected you to create a Macintosh resource as a text file and then run it through the tool to create the resource fork.

My first few apps were Turbo Pascal implementations of algorithms from the Computer Recreations column of Scientific American (thankfully requiring little UI — a window and a few buttons typically).

Later I would learn of and move on to THINK Pascal — a much more Mac-centric IDE. Later still I would take the leap to THINK C....

But I will always look back on Turbo Pascal and remember it with fondness. It was a time when I was entering a wild new world and Turbo Pascal was there to hold the door open for me.

GiorgioG
0 replies
14h24m

I still have my original Turbo Pascal 7.0 floppy install disks from high school in the early/mid 90s. There was no Googling or ChatGPT'ing for help when you got stuck...I feel like it made me a better thinking programmer back then and that somehow I've lost something with all the answers only one query/chat away.

FpUser
0 replies
18h16m

I mostly consider languages as a mere tools like a screwdrivers. But yet there is that warm fuzzy feeling when I remember lying my hands on Turbo Pascal. Comparatively to other "high level" tools of the time it was at the different level.

Happy Birthday