[HN Gopher] Turbo Pascal Turns 40
___________________________________________________________________
Turbo Pascal Turns 40
Author : andsoitis
Score : 413 points
Date : 2023-11-30 19:08 UTC (1 days ago)
(HTM) web link (blog.marcocantu.com)
(TXT) w3m dump (blog.marcocantu.com)
| orionblastar wrote:
| 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 wrote:
| 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 wrote:
| 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 wrote:
| Hi Norm, hope everything is well with you.
| bdcravens wrote:
| 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 wrote:
| Same here. Even now, I still sometimes set my vim colors to
| blue background and yellow/white text.
| zozbot234 wrote:
| 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 wrote:
| 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 wrote:
| 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 wrote:
| 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 wrote:
| 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.
| jprd wrote:
| oof.
| browningstreet wrote:
| 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 wrote:
| And Jeff Duntemann's outstanding "Complete Turbo Pascal".
| cylinder714 wrote:
| By the way, the x86-64/AMD64 Linux edition of his assembly-
| language text just came out:
|
| https://www.contrapositivediary.com/?page_id=5070
| nxobject wrote:
| I remember his x86 assembly book really well - I remember him
| first showing DEBUG.COM and I was like "what??? How is that
| possible???"
| lioeters wrote:
| 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).
| rezaprima wrote:
| 25 seconds to compile it? How come ?
| giancarlostoro wrote:
| My understanding is the compiler was insanely efficient and
| parts of it coded in assembly if I'm not mistaken.
| ale42 wrote:
| 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...
| tomcam wrote:
| It was completely written in assembly
| agumonkey wrote:
| 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 wrote:
| >maybe pascal syntax was also parsing friendly..
|
| Yep, designed to be single pass, recursive descent
| friendly
| vram22 wrote:
| 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 wrote:
| What bear8642 says. I worked with Anders and interviewed
| the poor man about it!
| qznc wrote:
| 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 wrote:
| 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 wrote:
| 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 wrote:
| 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.
| timbit42 wrote:
| Technically, ALGOL-58 lead to ALGOL-60 which led to ALGOL X
| (1966) then to ALGOL W (1966) and then to Pascal (1970). X
| and W were proposals by Nicklaus Wirth and Tony Hoare as
| successors to ALGOL 60.
| neilv wrote:
| 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 wrote:
| Okay, I'll bite :)
|
| What's this "PC-semi-compatible" of which you speak?
| mschaef wrote:
| Interesting question... based on DOS 1.25, I can't imagine
| there are many choices. (Maybe the earliest Compaq machines
| among them).
| cardiffspaceman wrote:
| 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.
| neilv wrote:
| Sanyo MBC-550 series. It later got MS-DOS 2.11.
|
| https://en.wikipedia.org/wiki/MBC-550
| analog31 wrote:
| That was my first computer too.
| jdhzzz wrote:
| 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.
| whartung wrote:
| 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 wrote:
| 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 ...
| Clubber wrote:
| I thought it was the BIOS that was the compatibility issue.
| That's one of the few proprietary parts IBM had when they
| released their PC. Clones were built on a reverse
| engineered BIOS that, for a while, wasn't quite right. I
| vaguely recall 90% PC Compatible computers or something
| like that.
|
| Halt and Catch Fire covers this. I could be wrong though.
|
| https://www.imdb.com/title/tt2543312/
| jdhzzz wrote:
| Not the OP but in my case it was a Sanyo with 2 floppies.
| CRConrad wrote:
| Wang had some funny ones. They ran both MS Word and MS
| Multiplan.
| themadturk wrote:
| I remember back in the day working for a law firm that had
| some Wang MS-DOS compatible PCs. Note "MS-DOS" compatible,
| not PC compatible...they ran DOS without even trying to
| duplicate the IBM-PC BIOS, as Compaq eventually did.
| bluedino wrote:
| 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
| zozbot234 wrote:
| 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- wrote:
| https://github.com/magiblot/tvision
| rezaprima wrote:
| Sadly, iirc, turbo vision was pascal first then ported to
| c++.
| pjmlp wrote:
| It was, firstly delivered alongside Turbo Pascal 6.0 for
| MS-DOS.
| kccqzy wrote:
| 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 wrote:
| > 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.
| tomcam wrote:
| It changed my life and made me want to write compilers for a
| living. I wrote the first one in Turbo Pascal.
| tquinn wrote:
| 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 wrote:
| 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 wrote:
| FreeDOS exists.. https://freedos.org/
| livrem wrote:
| 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.
| blame-troi wrote:
| we had Turbo, JRT, and UCSD back at my first job out of college.
| All quite good in their way.
| mobilio wrote:
| I started with TP 5.5...
| narag wrote:
| 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 wrote:
| 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 wrote:
| 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 wrote:
| 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 :).
| einpoklum wrote:
| 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...
| sbarre wrote:
| 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 wrote:
| 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) ..
| zwieback wrote:
| 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.
| linsomniac wrote:
| 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.
| fortran77 wrote:
| 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 wrote:
| Yes, correct, it was only with the CP/M card, not 6502.
| blorenz wrote:
| 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.
| technothrasher wrote:
| 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.
| tomcam wrote:
| Inquiring minds need to know: what is a door library?
| msmith wrote:
| 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.
| thsksbd wrote:
| "I owe Borland a lot."
|
| A belated license to be exact :P
| deepspace wrote:
| 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 wrote:
| 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 wrote:
| A deliberate strategy by some companies. (Microsoft comes
| to mind.(
| omgmajk wrote:
| 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.
| thsksbd wrote:
| I was joking. I think IP laws are broken anyway, so I
| really dont care.
| dual_dingo wrote:
| 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 :)
| LispSporks22 wrote:
| 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.
| stevage wrote:
| 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 wrote:
| 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 wrote:
| 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.
| coliveira wrote:
| 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 wrote:
| 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...
| agumonkey wrote:
| Turbo Pascal and a few others programs of this era would still be
| utterly relevant technically and pragmatically. Don't forget the
| past.
| pjmlp wrote:
| 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!
| mtillman wrote:
| 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.
| FpUser wrote:
| 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
| icedchai wrote:
| 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 wrote:
| 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 wrote:
| Yes, it was pretty odd! This was around 1992 or 1993, so long
| after the PS/2 was even released.
| DennisP wrote:
| 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 wrote:
| > 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 wrote:
| 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 wrote:
| 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 wrote:
| 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 wrote:
| 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.
| geoelectric wrote:
| 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.
| mmgutz wrote:
| 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.
| upupupandaway wrote:
| 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).
| morkalork wrote:
| 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
| grrandalf wrote:
| 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.
| coldcode wrote:
| 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.
| 5- wrote:
| see also, "things that turbo pascal is smaller than" by james
| hague: https://prog21.dadgum.com/116.html
| jodrellblank wrote:
| > " _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)
| JNRowe wrote:
| 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.
| jasomill wrote:
| 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
| corysama wrote:
| Also an rant on how it was so fast
| https://prog21.dadgum.com/47.html
| marcod wrote:
| Perl at 35 (almost 36)
|
| > How do you do, fellow kids?
| krylon wrote:
| This made me giggle. :)
| TomK32 wrote:
| 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.
| keernan wrote:
| Stirs memories of Clipper
| Scubabear68 wrote:
| 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...
| jbgreer wrote:
| 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.
| benhoyt wrote:
| 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 wrote:
| ZZT is the reason I have Turbo Pascal on my computer.
| vanderZwan wrote:
| ZZT also inspired the overworld of Frog Fractions 2
| scrumper wrote:
| 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.
| TomaszZielinski wrote:
| 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)
| darkteflon wrote:
| 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 wrote:
| 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.
| rootusrootus wrote:
| 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 wrote:
| 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.
| ilaksh wrote:
| 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.
| timbit42 wrote:
| It available here: https://winworldpc.com/product/turbo-pascal-
| tutor/1x
| nritchie wrote:
| 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.
| RagnarD wrote:
| A fantastically productive system back in the day. It was a joy
| to use.
| compiler-guy wrote:
| 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 wrote:
| It's biggest downside was that it was limited to producing 64KB
| .COM files until version 4 or 5.
| acqq wrote:
| 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.
| dosk wrote:
| 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.
| ..
| Narishma wrote:
| That's what I was saying. Turbo Pascal didn't support
| generating EXE files until version 4.
| corysama wrote:
| https://prog21.dadgum.com/47.html
| anta40 wrote:
| 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.
| unnouinceput wrote:
| 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
| hankman86 wrote:
| 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.
| imjonse wrote:
| 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.
| chiph wrote:
| 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.
| allanrbo wrote:
| Fun fact: the original author of Turbo Pascal, Anders Hejlsberg,
| went on to lead development of C# and then later TypeScript.
| sneed_chucker wrote:
| Woah. Had no idea he was responsible for Turbo Pascal
| Keyframe wrote:
| 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 wrote:
| 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 wrote:
| 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 wrote:
| Yes, he wrote Turbo Pascal while he was studying at DTU in
| Copenhagen.
| jimmydoe wrote:
| Still remember tinkering around the inline asm in TP6, taught me
| a lot about low level part of system.
| alfiedotwtf wrote:
| The whole Borland suite was epic for the time. I still feel like
| Turbo Debugger was the peak of debugging UI
| myth_drannon wrote:
| 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 wrote:
| Duntemann may be a great guy, but he definitely isn't and
| hasn't always been right.
| major505 wrote:
| 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.
| sriku wrote:
| 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.
| JKCalhoun wrote:
| 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.
| beej71 wrote:
| This compiler was blazingly fast in the 80s. Running on a modern
| computer, builds should look instantaneous--has anyone tried it?
| aunwick wrote:
| 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.
| kasajian wrote:
| 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 wrote:
| 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 wrote:
| May I interest you in a game of Snake for that.
|
| https://github.com/linker3000/Z80-Board/blob/master/snake.pa.
| ..
| CRConrad wrote:
| Looks about like what I recall:
| https://news.ycombinator.com/item?id=38486499
| nmfisher wrote:
| 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 wrote:
| It looked like that until version 4 where they switched to the
| more common interface with windows, menus and whatnot.
| timbit42 wrote:
| You can see screenshots of some of the versions here:
| https://winworldpc.com/product/turbo-pascal/100
| binarycrusader wrote:
| For those looking for a retrocomputing Pascal; use Turbo Rascal
| Syntax Error: https://lemonspawn.com/turbo-rascal-syntax-error-
| expected-bu...
| GiorgioG wrote:
| 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.
| MichaelMoser123 wrote:
| 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 wrote:
| > "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 wrote:
| 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.
| doubloon wrote:
| 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 wrote:
| 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 wrote:
| 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.
| edu wrote:
| 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.
| vanderZwan wrote:
| 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!
| hulitu wrote:
| This was true also for TurboC.
|
| Today, good luck looking for examples.
| ReleaseCandidat wrote:
| > 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.
| pasc1878 wrote:
| 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.
| spiralx wrote:
| Same here. I'd been using GFA Basic for a couple of years when
| I came across Turbo Pascal which really helped - being a
| version of BASIC with code blocks, variable types including
| records, functions and procedures and even references - so I
| picked up Pascal just by reading the help documentation and
| studying the numerous very clear and helpful examples included
| on almost every page.
|
| This was a good couple of years before I discovered the
| Internet at university so there was no easy access to learning
| resources. I'd tried to pick up C a couple of times without
| much luck before learning TP, and it wasn't until after that
| that I then was able to transfer what I'd learnt from Pascal to
| C - although again that was aided by another great Borland
| product, C++ Builder :)
| figital wrote:
| Still have the manuals at home on my bookshelf. Great examples of
| technical writing and explaining how the world is changing.
| zzo38computer wrote:
| 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 wrote:
| 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.
| marcocantu wrote:
| Yes, sorry, it's an old personal blog based on my own code,
| which doesn't handle traffic spikes very well
| septynade wrote:
| I swear I thought I read "Pedro Pascal Turns 40" and thought why
| would anyone here care about that lol
| fzeindl wrote:
| 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 wrote:
| 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.
| pugworthy wrote:
| 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..
| begueradj wrote:
| 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.
| StanislavPetrov wrote:
| 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).
| ngcc_hk wrote:
| I still have it installed to play the bridge.
| j1mmie wrote:
| Pedro Pascal is 8 years older
| livrem wrote:
| 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.
| hankman86 wrote:
| 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 wrote:
| There was at least one elephant missing in that executable -
| Unicode support. It would not fit into PC RAM back then
| probably.
| anthk wrote:
| 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.
| benj111 wrote:
| 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 wrote:
| 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 wrote:
| 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 wrote:
| 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 wrote:
| >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 wrote:
| 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.
| pasc1878 wrote:
| Yes because Unicode did not exist at the time
| waynecochran wrote:
| Extended ASCII was the way forward then.
| ReleaseCandidat wrote:
| > 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 wrote:
| 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 wrote:
| probably core ABAP development in some module.
| vanderZwan wrote:
| 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.
| hulitu wrote:
| > That's because the "fully featured" of the 90s would be
| barely usable today.
|
| Saying that in a thread about TurboPascal is strange. I mean
| notepad needs about 5 seconds to start on my windows 10 work
| computer. And the usability of windows 10 is ... not.
| icedchai wrote:
| Yes, there's more functionality. But not orders of magnitude
| more. The bloat of modern software is incredible.
| benj111 wrote:
| Its about 2 marks to the euro apparently.
|
| For anyone not up to date with ~30 year old exchange rates.
| CRConrad wrote:
| ~20. The Euro (or "Teuro", as it was often called in Germany
| at the time) was introduced in... Uh, 2000 or 2001,
| thereabouts.
| benj111 wrote:
| 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!
| acqq wrote:
| 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.
| pantulis wrote:
| > 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.
| walthamstow wrote:
| 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.
| rf15 wrote:
| 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.
| theboywho wrote:
| Fun fact: one of Niklaus Wirth (the author of Pascal) students
| was Martin Odersky, who went on to create Scala.
| justin66 wrote:
| Robert Griesemer, one of the creators of Go, did his PhD under
| Hanspeter Mossenbock 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)
| adamwiggins wrote:
| 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.
| wallrat wrote:
| 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.
| thijson wrote:
| 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.
| agys wrote:
| 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.
| ZiggerZZ wrote:
| 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.
| dugmartin wrote:
| 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.
| duncanmeech wrote:
| Borland! The only good thing about Hwy 17.
| fm77 wrote:
| 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 wrote:
| 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 wrote:
| 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 wrote:
| 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 wrote:
| 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.
| marcocantu wrote:
| Delphi is single pass today... this has drawbacks, but
| the compiler is fast!
| NoNameHaveI wrote:
| 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.
| zubairq wrote:
| What an amazing product!!!
| projectileboy wrote:
| 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.
| swah wrote:
| 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.
| therealmarv wrote:
| 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.
| ben7799 wrote:
| 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.
| Qem wrote:
| 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.
| javier_e06 wrote:
| 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).
| kristiandupont wrote:
| 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.
| bytehowl wrote:
| 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 wrote:
| 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.
| Zaskoda wrote:
| I made this in Turbo Pascal: https://dosgames.com/game/bob-and-
| his-amazing-journey-home/
| OnlyMortal wrote:
| Turbo Pascal had a large influence on me back in the late 1980s.
| It was, to me, the premier way of writing DOS applications.
|
| I also liked JPI Modula 2:
| http://www.edm2.com/index.php/TopSpeed_Modula-2
|
| However, Turbo-C rocked and allowed me to write code for DOS and
| Macintosh (MPW).
| HagopPanosian wrote:
| Turbo Pascal is still in the very good hands of Embarcadero
| Technologies and Delphi and Marco Cantu. One of the best value
| propositions for app development targeting multiple platforms
| simultaneously with native code.
___________________________________________________________________
(page generated 2023-12-01 23:02 UTC)