Bob Swart (aka Dr.Bob)
Pascal door de jaren heen

Deze maand wil ik graag even stilstaan bij de programmeertaal Pascal, en de ontwikkeling die Pascal in de loop der jaren ondergaan heeft. Ik sta hierbij overigens met name stil bij de invloed die het bedrijf Borland op de taal (Object) Pascal heeft kunnen uitoefenen, omdat dat nu eenmaal het meest overeenkomt met mijn persoonlijke beleving en ervaringen.

Pascal
De programmeertaal Pascal bestaat al ruim 20 jaar. In 1977 heeft professor Nicklaus Wirth aan de Universiteit van Zurich de taal Pascal ontwikkeld met als primaire doel een gestructureerde programmeertaal te zijn voor onderwijsdoeleinden. BASIC was te ongestructureerd en C nauwelijks te lezen (nog steeds niet, overigens) en Pascal werd de eerste jaren dan ook voornamelijk op universiteiten door studenten gebruikt om te leren programmeren. Ook op de Universiteit van Amsterdam, waar ik begin jaren 80 aan mijn studie informatica begon, was Pascal de eerste programmeertaal waar ik mee te maken kreeg. Pas later kwamen C en Prolog aan de orde, en nog wat later C++ (inmiddels zal daar ook wel Java aan toegevoegd zijn). De eerste (programmer)taal blijft echter toch je moedertaal, en je eerste stappen in de programmeerwereld zijn een stuk makkelijker als de taal (Pascal in dit geval) je letterlijk ondersteunt op het gebied van leesbaarheid en gestructureerdheid.
Professor Wirth was overigens nog niet helemaal tevreden met de taal Pascal, en bleef werken aan nieuwe talen - gebaseerd op Pascal - die modulair waren opgezet (Module-2 en Modula-3 bijvoorbeeld). Deze zijn echter nooit zo populair geworden als de taal Pascal, net zo min als een van zijn laatste experimenten Oberon.

Turbo Pascal
Eén van de redenen waarom Pascal wel is doorgebroken en heden ten dage behoorlijk populair is, komt door een klein bedrijfje dat begin jaren 80 een goedkope Pascal compiler voor de IBM PC uitbracht (onder CPM en PC-DOS). Ik heb het hier natuurlijk over Turbo Pascal van Borland.
De toenmalige ontwikkelaar van Turbo Pascal had de oorspronkelijke Pascal specificatie van professor Wirth op enkele punten wat aangepast, en voldeed dus niet aan de noemer "standaard Pascal". Dat was wel een beetje jammer, maar met een beetje moeite kon je toch Pascal programma's schrijven die zowel in Turbo Pascal als een andere (standard) Pascal omgeving compileerde. Het sterke punt van Turbo Pascal was echter op dat moment niet het feit dat we hier een Pascal compiler hadden, alswel het revolutionaire concept van een IDE. Turbo Pascal bevatte de eerste Integrated Development Environment voor systeemontwikkeling (op IBM PCs). In het ene scherm konden we de Pascal code schrijven, en in het andere scherm opties zetten, compileren en later zelfs debuggen. Wow. Pascal was nu nog produktief geworden ook, en in 1984 schreef ik mijn eerste commerciële toepassing. In Turbo Pascal. Op een IBM XT (4.77 Mhz) met twee 5.25" floppy disks, dus tijden het compileren konden we gaan eten, maar het resultaat mocht er wezen.

Turbo Pascal 3
Toen Turbo Pascal aan versie 3 toe was, midden jaren 80, was het de populairste Pascal compiler voor IBM PCs. Met name vanwege de lage prijs (49 dollar) had Borland een gigantisch marktaandeel veroverd. De compiler was nog steeds geen Standard Pascal, maar dat deerde geen van de gebruikers meer. Het was inmiddels een snelle compiler, en de eerste universiteiten gingen over tot het geval van "Introduktie in Programmeren" met Turbo Pascal op IBM PCs, in plaats van een Standard Pascal compiler op de Mainframes of UNIX Mini's die begin jaren tachtig nog gebruikt werden.

Turbo Pascal 4 met Units
Turbo Pascal versie 4 had - in tegenstelling tot voorgaande versies van Turbo Pascal - flink wat wijzigingen in de taal toegevoegd. We kende nu het concept van units (vergelijkbaar met modules van Modula-2). Een hoofdprogramma kon nu worden opgesplitst in verschillende units. En iedere unit had een interface deel en een implementatie deel (in tegenstelling tot Modula-2 stonden interface en implementatie in hetzelfde bestand). De implementatie was niet te benaderen voor de buitenwereld, terwijl het interface letterlijk het interface of gezicht naar de buitenwereld vormde. Het was een extra stap riching OO (object ge rienteerd programmeren).

Turbo Pascal 5.5 with Objects
Het echt OO werd ge ntroduceerd met Turbo Pascal 5.5 - een tussenversie! - die de subnaam "with Objects" kreeg. We kregen een echt object keyword met de access specifiers private, protected en public, en zelfs een klasse hierarchie die ons tot voorbeeld kon dienen: de Turbo Vision user interface laag voor tekstgebaseerde DOS programma's.
De overstap van "traditioneel" procedureel programmeren naar object ge rienteerd programmeren was voor menigeen een groot obstakel. Pure OO blijkt vaak een hele andere manier van denken te zijn. Omdat Turbo Pascal vanaf versie 5.5 slechts "with Objects" was, konden we echter langzaam maar zeker wennen, en bestaande (procedurele) Pascal programma's stap voor stap converteren naar object-ge rienteerde Pascal programma's.

Turbo Pascal for Windows
In de tijd van Windows 3.0 kwam Anders Hejlsberg op een maandag weer op zijn werk bij Borland, en liet zien wat hij in het weekend had gemaakt: een 16-bits Windows codegenerator voor Turbo Pascal. Dit was de eerste stap naar Turbo Pascal for Windows, die een eigen OO user interface laag kreeg onder de naam OWL (Object Windows Library).

Borland Pascal 7
In 1992 zagen we Borland Pascal versie 7 - de eerste en laatste versie van Borland Pascal - kon zowel 16-bits DOS, 16-bit DPMI en 16-bits Windows programma's schrijven. Een geweldige ontwikkelomgeving die door sommige bedrijven in Nederland nog steeds gebruikt wordt.

Delphi
Na Borland Pascal duurde het een aantal jaren voordat er een opvolger kwam. En eerlijk is eerlijk :het uiteindelijke resultaat was de moeite meer dan waard. Begin 1995 kwam Delphi uit - de Pascal tegenhanger van Visual Basic. Met een Visual Class Library (VCL), en flink wat uitbreidingen aan de onderliggende programmeertaal die nu niet meer simpelweg Pascal genoemd werd maar Object Pascal. Delphi's OO werd met classes gedaan (zodat ook de oudere objects nog gecompileerd konden worden), en de VCL is gebaseerd op het inmiddels in praktijk bewezen property-method-event model.

Delphi 32-bits
Na Delphi kwam Delphi 2, en nu zijn we inmiddels al met Delphi 5 aan het werk. Ook in de afgelopen jaren heeft Borland de taal Object Pascal niet stil laten staan. Mede vanwege het C++ zusje van Delphi (C++Builder genaamd) is de taal Object Pascal uitgebreid met zaken als assertions, method & function overloading, default parameters en interfaces. Mede door het succes van Delphi is de taal Object Pascal in de loop der jaren uitgegroeid van een Pascal implementatie "met een paar extra features" tot een geheel eigen taal van Borland. Het is niet langer meer de eenvoudige en overzichtelijke taal die in een dag of twee te leren is, want er zijn elementen en keywords die zelfs ervaren programmeurs nog wel eens hoofdbrekens bezorgen (wie weet wat dispinterface precies is? wanneer je out moet gebruiken, wat nodefault betekent, en wat reintroduce precies doet?). De basis is echter hetzelfde gebleven: Delphi is een leesbare Pascal ontwikkelomgeving met een supersnelle compiler waardoor gestructureerde en daarmee onderhoudbare toepassingen te ontwikkelen zijn. En waar Turbo Pascal vroeger door mij gebruikt werd voor het schrijven van stand-alone DOS toepassingen, zo wordt Delphi vandaag gebruikt voor (onder meer) het ontwikkelen van gedistribueerde toepassingen voor het internet.

Toekomst?
Hoe ziet de toekomst van Pascal eruit? Welnu, ik denk persoonlijk dat de taal Standard Pascal zoals gedefinieerd in 1977 door Professor Wirth op zich nauwelijks meer toevoegt dan de academische betekenis die van oorspong bedoeld was. De taal Pascal - en dan met name Object Pascal - is echter door het bedrijf Borland geadopteerd en een state-of-the-art software ontwikkelings instrument geworden. Zelfs zonder de Delphi IDE is Object Pascal nog steeds uiterst krachtig, zeer goed leesbaar en bijzonder snel te compileren. Kortom: mijn eerste keus voor welk (ICT) probleem dan ook. En met de toenemende toezeggingen over Delphi voor Linux, of Delphi voor .NET maakt het platform ook al lang niet meer zoveel uit.
Gedistribueerde toepassingen ontwikkelen, dat is dé hype van het moment, net als zaken als electronic commerce of XML. Dergelijke ontwikkelingen zullen hun weerslag vinden in Delphi. Zowel in componenten als in uitbreidingen van de onderliggende programmeertaal Object Pascal (denk aan de interfaces die we kregen voor COM en CORBA). Het is een beetje koffiedik kijken om te voorspellen waar de taal Object Pascal de komende jaren naartoe zal gaan, maar ik heb genoeg vertrouwen in Borland om er zeker van te zijn dat we de aansluiting in de ICT wereld niet zullen missen.
Persoonlijk vat ik het dan ook als volgt samen: Pascal is dood. Leve Object Pascal.


This webpage © 1999-2006 by webmaster drs. Robert E. Swart (aka - www.drbob42.com). All Rights Reserved.