2 Punkte von GN⁺ 2023-12-02 | 1 Kommentare | Auf WhatsApp teilen
  • Turbo Pascal, von Borland im November 1983 vorgestellt, wurde im November 2023 offiziell 40 Jahre alt
  • Turbo Pascal gilt als das Produkt, mit dem Borland seinen Anfang nahm, und als die erste branchenweit verbreitete integrierte Entwicklungsumgebung (IDE)
  • Damals hinterließ es in puncto Entwicklererlebnis und Produktreife einen starken Eindruck und wurde zu einem großen kommerziellen Erfolg
  • Embarcadero entwickelt die Nachfolge-Compiler-Reihe weiter; der Win32-Kommandozeilen-Compiler von Delphi 12 Athens verwendet Version 36.0
  • Da das heutige Versionsnummernsystem bis zum ersten Turbo Pascal zurückreicht, ist dieses 40-jährige Jubiläum auch direkt mit der Geschichte der Delphi-Linie verbunden

Turbo Pascal, gestartet im November 1983

  • Turbo Pascal ist ein Produkt, das Borland im November 1983 veröffentlichte
  • Stand November 2023 wurde es offiziell 40 Jahre alt

Borlands Platz in der Geschichte der IDEs

  • Turbo Pascal gilt als Meilensteinprodukt der Branche
  • Es war das Produkt, mit dem die Firma Borland ihren Anfang nahm
  • Es wird als die erste weithin bekannte IDE bezeichnet
  • Für damalige Maßstäbe war es ein herausragendes Produkt, und auch das Ausmaß seines Erfolgs war sehr groß

Weiterführende Lektüre und Pascal-Kontext

Nachfolge-Compiler bis hin zu Embarcadero

  • Embarcadero entwickelt die Nachfolge-Compiler-Reihe von Turbo Pascal weiter
  • Kürzlich wurde Version 36 dieses Compilers veröffentlicht
  • Der Kommandozeilen-Compiler von Delphi 12 Athens trägt die Versionsangabe Embarcadero Delphi for Win32 compiler version 36.0
  • Diese Versionsnummer 36 gehört zu einem Nummernsystem, das bis zum ersten Turbo Pascal zurückreicht

Easter Egg zum 40. Jubiläum

  • Embarcadero widmete anlässlich dieses 40-jährigen Jubiläums ein Easter Egg im Produkt dem Turbo-Pascal-Jubiläum
  • Die Botschaft endet mit „Happy 40th birthday, Turbo Pascal!“

1 Kommentare

 
GN⁺ 2023-12-02
Meinungen auf Hacker News
  • Eines meiner Lieblings-Computerspiele war ZZT, geschrieben in Turbo Pascal. Ein skurriles Textmodus-Spiel von Tim Sweeney von Epic Megagames, das Rätsel und Shooter-Elemente mischte; selbst die kostenlose Shareware-Version enthielt einen Spiele-Editor und sogar eine kleine Programmiersprache namens ZZT-OOP.
    Der ursprüngliche Quellcode von ZZT ging verloren, aber einige Jahre später hat Adrian Siekierka den ursprünglichen Pascal-Code mit großer Hartnäckigkeit rückentwickelt, sodass beim Kompilieren mit der ursprünglichen Turbo-Pascal-Version eine bytegenau identische ausführbare Datei herauskam. Erstaunlich.
    https://blog.asie.pl/2020/08/reconstructing-zzt/
    https://news.ycombinator.com/item?id=22609474
    https://benhoyt.com/writings/zzt-in-go/

    • Wegen ZZT hatte ich Turbo Pascal auf meinem Rechner installiert.
    • Auch für mich war ZZT eine wirklich besondere Software und der Anlass, durch den ich richtig mit Programmierung in Berührung kam. Früher hatte ich BASIC-Listings aus Zeitschriften abgetippt oder auf dem BBC Micro in der Schule belanglose Dinge ausprobiert, aber auf meinem ersten PC lernte ich mit ZZT-OOP, indem ich von Grund auf das baute, was ich wollte.
    • ZZT war auch eine Inspiration für die Oberwelt von Frog Fractions 2.
  • Turbo Pascal hat mich zur Programmierung gebracht. Ich erinnere mich, wie ich Hunderte D-Mark für Lizenzen von Borland Pascal 7.0 und später Delphi 1.0 und 2.0 ausgegeben habe, und am Ende entwickelte ich sogar meine erste „kommerzielle“ Software, die ich gegen Geld verkaufte.
    In der DOS-Ära war Turbo Pascal, abgesehen von Basic, vermutlich der einfachste Einstieg in die Programmierung; und unter Windows 3.1/95 war Delphi ein augenöffnendes Werkzeug, das zeigte, wie einfach GUI-Programmierung sein konnte.
    In vielerlei Hinsicht fühlt es sich an, als wären wir seitdem eher zurückgegangen. Die Turbo-Pascal-/Delphi-Compiler erzeugten vollständige GUI-Programme als kleine Binärdateien; ich frage mich, wie heutige Software mit vergleichbarer Leistung um mehrere Größenordnungen größer werden konnte.

    • In frühen Versionen von Turbo Pascal war der Zyklus aus Code ändern und Ergebnis sehen auf damaligen Maschinen praktisch sofort, solange Programm und Quellcode in den RAM passten. Auch die Interaktion war auf Unmittelbarkeit ausgelegt; ich erinnere mich, dass man bei Compilerfehlern nicht mit endlosen Berichtsbildschirmen überschüttet wurde, sondern direkt zur fehlerhaften Zeile sprang.
      Wenn die Ursache ein Tippfehler war, konnte man ihn korrigieren, neu kompilieren und ausführen — alles in einer Sekunde. Viele heutige Tools folgen einer anderen Philosophie und verlangen Entwicklern unnötige zusätzliche Aktionen ab.
    • Ein „voll ausgestattetes“ GUI-Programm aus den 90ern wäre nach heutigen Maßstäben kaum benutzbar. Anders gesagt: Heutige Frameworks und Programme haben nicht vergleichbare Leistung wie die aus der Mitte der 90er; allein das Neukompilieren einer 25 Jahre alten App mit einer aktuellen Framework-Version würde theoretisch Dinge wie Unicode, Internationalisierung, Barrierefreiheit und Netzwerkunterstützung mitbringen.
      Die Ausnahme ist SAP, das es irgendwie geschafft zu haben scheint, die Benutzerfeindlichkeit einer 90er-Jahre-UI mit dem Ressourcenverbrauch moderner Programme zu verbinden. Auch bei mir war Turbo Pascal die Sprache, die ich nach BASIC verwendet habe.
    • Ach, Mark — das ist lange her. Ich weiß nicht, ob das nur in Großbritannien so war, aber beim Sprechen oder Schreiben haben wir den Namen mark nie ins Englische übersetzt, sondern immer Deutschmark gesagt.
    • In diesen ausführbaren Dateien fehlte mindestens ein großer Elefant im Raum: nämlich Unicode-Unterstützung. Sie hätte damals vermutlich nicht einmal in den RAM eines PCs gepasst.
    • Turbo Pascal lehrte nicht nur die damals für Pascal typische Top-down-prozedurale Programmierung, sondern über die Breakout-Demo auch objektorientierte Programmierung.
  • Was mir an TP am meisten in Erinnerung geblieben ist: Zu jeder Funktion gab es einfache, leicht verständliche Codebeispiele, und alles war logisch organisiert, sodass man es leicht finden und verwenden konnte. Deshalb konnte ich mir als Teenager, der gerade einmal BASIC verstand, Turbo Pascal ohne Internet allein mit der IDE selbst beibringen.
    Bei heutigen Systemen gibt es viel zu oft nicht einmal etwas, das dem nahekommt. Ich frage mich, ob das an der damals schlichten Natur x86-DOS-basierter Systeme lag oder ob es wegen des heutigen schnellen Wandels, der Cross-Platform-Anforderungen und der Komplexität unmöglich geworden ist, so etwas zu bauen.

    • Processing (P5) hatte so eine Funktion. Man konnte in der IDE eine Textzeichenfolge auswählen und in der Dokumentation danach suchen; wenn es eine eingebaute Funktion oder Konstante war, öffnete sich eine statische HTML-Seite, die zusammen mit der Software installiert worden war — ganz ohne Internet und ohne Server. Man konnte die Dokumentation auch offline durchsuchen, und es fühlt sich so an, als sei diese Grundfähigkeit bei heutigen Static-Site-Generatoren verloren gegangen.
      Ich möchte hinzufügen, dass Processing damals das einzige Creative-Coding-Framework mit vollständiger Offline-Dokumentation war. OpenFrameworks zum Beispiel ist auch heute noch größtenteils eher eine automatisch erzeugte, leere Hülle von Dokumentation.
      Meiner Meinung nach war das einer der Faktoren, die Processing im Bildungsbereich einen Vorteil gegenüber Alternativen verschafften. Es war ziemlich schade, dass p5.js diese Tradition nicht vollständig fortgeführt hat, man zum Lesen der Dokumentation online gehen muss und sie nicht als statische Website vorliegt, sondern der Text beim Öffnen per JavaScript gerendert wird. Trotzdem ist die Dokumentation selbst, einschließlich der Beispiele, vollständig.
      https://processing.org/
      https://p5js.org/
    • Das liegt daran, dass die Leute heutzutage keine Dokumentation schreiben. Neue Sprachen sind oft Open Source, und es gibt die Kultur, man solle eben den Quellcode lesen. Ich halte das für falsch.
    • Ich habe Turbo Pascal ebenfalls ohne Buch gelernt. Es gab zwar ein BASIC-Buch, das mit dem Computer geliefert wurde, aber Turbo Pascal war viel einfacher. Um Pixel zu zeichnen, wählte man einfach einen doppelt gepufferten Anzeigemodus und zeichnete die Pixel; auch den Joystick-Port oder die Maus auszulesen hieß im Grunde einfach: auslesen.
    • Bei Turbo C war es genauso. Heutzutage braucht man Glück, um Beispiele zu finden.
    • Bei mir war es genauso. Ich hatte ein paar Jahre lang GFA Basic verwendet und stieß dann auf Turbo Pascal; es fühlte sich an wie eine BASIC-Version mit Codeblöcken, Variablentypen einschließlich Records, Funktionen und Prozeduren sowie Referenzen, und das half enorm. Ich lernte Pascal, indem ich die Hilfedokumentation las und mir die sehr klaren, nützlichen Beispiele ansah, die auf fast jeder Seite standen.
      Das war einige Jahre, bevor ich an der Universität das Internet kennenlernte, also gab es keinen einfachen Zugang zu Lernmaterial. Davor hatte ich ein paarmal versucht, C zu lernen, aber es hatte nicht richtig geklappt. Erst nachdem ich TP gelernt hatte, konnte ich das in Pascal Gelernte auf C übertragen, und auch dabei half mir ein weiteres hervorragendes Borland-Produkt: C++ Builder.
  • Meine erste „richtige“ Programmiersprache nach 6809E-Assembler, strukturierten BASIC-Dialekten und Batch/Shell Ende der 80er war Turbo Pascal. Als ich Anfang der 90er Informatik studierte, wurde auch der Erstsemesterkurs mit Borland Pascal unterrichtet, daher war diese Erfahrung ziemlich nützlich.
    Ein paar Jahre später führte mein Pascal-Hintergrund dazu, dass ich etwa fünf Jahre lang kundenspezifische Apps mit Delphi entwickelte, und anschließend dazu, dass ich bei Borland die IDEs von Kylix und C++Builder testete. Das waren gute Zeiten.
    Ich vermisse Delphi immer noch. Heute gilt es fast als schwerwiegender Mangel, wenn es keine IDE-Plugins gibt, aber damals wirkte die Idee einer Komponentenbibliothek und Coding-Umgebung, die sich leicht in der eigenen Sprache erweitern ließ, wie pure Magie. Es machte wirklich Spaß, mit VCL und der IDE selbst zu arbeiten.
    Schade, dass Borland den Enterprise-Markt verfolgte, die Grassroots-Entwickler hinter sich ließ und das Wachstum der Community-Akzeptanz praktisch abwürgte. Zumindest bis ungefähr Delphi 7 war es wirklich ein großartiges Paket.

    • In unserem Land war Delphi mit Abstand die beliebteste Entwicklungsumgebung. Es war eine merkwürdige Situation: Während der Großteil der Welt zu VB 5 ging, nutzten wir Delphi. Von außen betrachtet wirkte es wie eine hervorragende Umgebung, aber aus irgendeinem Grund scheint es nur in einigen Märkten wirklich groß geworden zu sein.
    • Ich bin einen ähnlichen Weg gegangen, musste später wegen der Jobs aber zwangsläufig zu Visual Basic 5 wechseln. Trotzdem habe ich das Gefühl, dass es bei der GUI-Entwicklung bis heute nichts gibt, das mit Delphi mithalten kann. VCL war genial.
  • Zum ersten Mal begegnete ich TP im Winter 1993, als ich es mit 14 von einem Warez-BBS raubkopierte. Im Unterschied dazu, einfach eine .BAS-Datei auszuführen, war das rohe Gefühl von Macht, als ich selbst eine EXE kompilierte, berauschend.
    Ich fing an, Renegade BBS umzubauen und Door-Programme zu schreiben, und versuchte mich — erfolglos — auch daran, Würmer, Trojaner und Viren zu bauen. Diese Erfahrung hat mein Leben verändert und den Weg geebnet, auf dem ich heute im Tech-Bereich bin. Außerdem habe ich meine abweichlerischen Teenager-Neigungen inzwischen abgelegt. Borland schulde ich viel.

    • Für einen Teenager, der Compiler und Interpreter und solche Dinge noch nicht richtig verstand, fühlte es sich an wie eine Superkraft, mit TP4 selbst EXE-Dateien erstellen zu können. Ich fühlte mich wie ein echter Programmierer.
      Ein paar Jahre später, mit 16, entwickelte ich eine kleine App für die Kundenverwaltung meines Vaters und bekam dafür tatsächlich Geld; von einem Teil davon kaufte ich mir eine legale TP6-Version. Das waren gute Zeiten.
    • Das erinnert mich an die guten alten BBS-Zeiten. 1989, mit 17, lernte ich, wie man einen interruptbasierten seriellen Treiber schreibt, baute daraufhin eine Door-Bibliothek für Turbo Pascal und veröffentlichte sie als Shareware. Sie wurde ziemlich viel genutzt, bis die BBS-Szene Mitte der 90er rapide verschwand.
    • Ich hatte zur gleichen Zeit ähnliche Erfahrungen. Abgesehen von den abweichlerischen Dingen spielte ich auf einem 386SX mit Grafikprogrammierung herum und nutzte Inline-Assembler für die „performancekritischen“ Teile. Diese Erfahrung hat ganz klar die Grundlage für das gelegt, was ich heute tue.
  • Free Pascal hat immer noch einen Modus, der der ursprünglichen TP-IDE ähnelt. Allerdings räumen sie selbst ein, dass der Code vor sich hin altert und immer noch stark von den veralteten Eigenheiten der ursprünglichen MS-DOS-Plattform abhängt.
    Schade ist, dass es keine ähnliche Version gibt, die sich wie neovim oder emacs im Terminal als normaler Editor nutzen lässt und zugleich in moderne IDE-orientierte Funktionen wie LSP, tree-sitter-Parser und das Debug Adapter Protocol integriert ist. Beim Bearbeiten von Remote-Code über SSH-/Terminal-Verbindungen könnte das durchaus etwas verändern.

    • https://github.com/magiblot/tvision
    • Vor etwas mehr als zehn Jahren sind ein paar Freunde, die Turbo-Pascal-Fans waren, zu Lazarus gewechselt. Es wirkte wie der logische Nachfolger von Turbo Pascal und Free Pascal. Ich persönlich mochte die Sprache Pascal nicht besonders und bin daher dazu übergegangen, C++ in Emacs zu verwenden.
  • Wie viel schneller Turbo Pascal als die Konkurrenz war, lässt sich kaum übertreiben. Es war so schnell, dass man fast dachte, da müsse irgendein Trick dahinterstecken, und die erzeugten Programme waren ebenfalls schneller.
    Für die damalige Zeit war es ein Meisterwerk, und das Lob, das es erhielt, war völlig verdient.

    • In einem Grafik-Kurs an der Uni, noch dazu einem, den Jack Bresenham unterrichtete, fragte ich, ob ich das neue Borland Turbo C für die Aufgaben verwenden dürfe. Nachdem ich für eine Demo hastig neu kompiliert hatte und weil der PC im Klassenraum kein 80286 war, stellte ich fest, dass mein Code nur mit einem Drittel der Geschwindigkeit der Codes anderer lief, die in Turbo Pascal v4 geschrieben waren.
      So lernte ich, dass ein ausgereifter Compiler besser ist als ein Compiler in Version 1.0.
    • Stimmt. Selbst auf den damals langsamen Prozessoren raste der Turbo-Pascal-Compiler regelrecht durch den Code. Das ist weit entfernt von den heutigen komplexen Build-Systemen, die für das Kompilieren eines Programms mit derselben Aufgabe ewig brauchen.
    • Pascal wird auch heute noch als Sprache erwähnt, die schnell kompiliert. In der Go-und-Rust-Debatte taucht es bisweilen genau in diesem Zusammenhang auf.
      Ich erinnere mich, vor ein paar Jahren auf einem Windows-PC mit 512 MB RAM eine FPC-Version der 2.0er-Reihe gebaut zu haben, und es dauerte nicht einmal fünf Minuten.
    • Sein Nachfolger Delphi ist darin nach wie vor genauso. Es gibt einen Beitrag über ein reales Projekt mit etwas mehr als einer Million Zeilen, inklusive Video, und in den Kommentaren geht es auch um die Kompilierzeit für Win64.
      https://www.tmssoftware.com/site/blogold.asp?post=759
    • https://prog21.dadgum.com/47.html
  • Als ich klein war, verkaufte mir ein freundlicher Computerladenbesitzer zu guten Konditionen einen PC-Halbkompatiblen, auf dem MS-DOS 1.25 lief. Es entsprach ungefähr dem Gegenwert von hundertmal Rasenmähen und Babysitten.
    Der Besitzer verkaufte Turbo Pascal für allgemeines MS-DOS, also die Version, die kein PC-BIOS voraussetzte, auf 8-Zoll-Disketten, und übertrug es auf das 160-KB-5,25-Zoll-Format, das mein Halbkompatibler nutzte. Ich hoffe, ich war damals schon so dankbar, wie ich es heute empfinde. Das hat meine Karriere ins Rollen gebracht.

    • Dann frage ich mal: Was genau war dieser PC-Halbkompatible, von dem du sprichst?
  • Anfang der 80er nutzte ich auf dem Apple ][+ und //e Apple Pascal, also eine Umgebung auf Basis von UCSC p-system Pascal, und wechselte dann zu Turbo Pascal unter DOS. Turbo Pascal war wirklich aufregend. Ein sehr schneller Compiler, gutes Feedback, ein Editor mit Farben und die bereits vertrauten WordStar-Keybindings sorgten für eine großartige Erfahrung.
    Ich erinnere mich auch daran, dass die Programme irgendwann groß genug wurden, dass man die Overlay-Funktion verwenden musste. Damit konnte man unter DOS verschiedene Teile eines Programms im Grunde wie Seiten nachladen.
    Irgendwann in den 80ern, vermutlich eher gegen Ende, traf ich auch David Intersimone, der ein großartiger Botschafter für Borland war. Das war, als er auf Einladung des lokalen ACM-Chapters unserer Universität zu Besuch kam.

  • Seltsamerweise war Turbo Pascal die erste höhere Programmiersprache, die ich gelernt habe, und die Umgebung war ein Macintosh Plus. Erst später merkte ich, dass Turbo Pascal eher aus der PC-Welt kam.
    Während des Studiums kaufte ich mir mit einem Studienkredit meinen ersten Apple-Computer, einen Macintosh Plus, und stieß zufällig in den Kleinanzeigen der Uni-Zeitung auf eine Kopie von Turbo Pascal für den Mac. Ein Professor verkaufte sie für etwa 40 Dollar, also griff ich sofort zu.
    Zum Glück gab es ein Handbuch, aber die Macintosh-Entwicklungstools waren sehr simpel. Es gab kein ResEdit, sondern eine merkwürdige R-Maker-App, bei der man Macintosh-Ressourcen als Textdatei erstellen und dann durch ein Tool schicken musste, um den Resource Fork zu erzeugen.
    Einige meiner ersten Apps waren Implementierungen von Algorithmen aus der Computer-Recreations-Kolumne von Scientific American in Turbo Pascal. Zum Glück brauchten sie kaum UI, meist reichte ein Fenster und ein paar Buttons.
    Später entdeckte ich THINK Pascal, eine deutlich stärker auf den Mac ausgerichtete IDE, und wechselte dorthin; noch später stürzte ich mich dann auf THINK C.
    Trotzdem wird Turbo Pascal mir immer in liebevoller Erinnerung bleiben. In einer Zeit, in der ich eine raue, neue Welt betrat, hat mir Turbo Pascal gewissermaßen die Tür geöffnet.