Perl is het Cobol onder de webtalen. Net zoals Cobol, is Perl niet salonfähig op universiteiten en in de bladen. Maar net als het geval was met Cobol bij het ontwikkelen van administratieve systemen, vindt het meeste handwerk plaats met Perl. Webmasters gebruiken bij voorkeur Perl voor het uitvoeren voor een enorme variëteit aan taken in Unix-achtige omgevingen.
Dit is in veel mindere mate het geval met Java, dat vooral als onderdeel van eindgebruikerapplicaties wordt toegepast. Toch wordt op universiteiten liever naar Java gekeken, net zoals dat vroeger het geval was met Pascal en Prolog, en wordt Perl vrijwel geheel genegeerd. Een saillant detail is overigens dat ook Cobol in de internetwereld niet dood is, en zelfs een vorm van revival doormaakt door de ontwikkeling van objectgeoriënteerde versies, bijvoorbeeld voor het automatisch genereren van Java-bonen!
Maar laten we even terugkomen op Perl. Waar komt Perl vandaan? Perl is Larry Walls pragmatische combinatie van een C-achtige taal en een shell-scriptingtaal zoals gebruikelijk in Unix-omgevingen. De verlegen beeldschermtovenaar Larry Wall ontwikkelde deze taal omdat hij behoefte had aan het combineren van de eigenschappen van de verschillende ontwikkelomgevingen waarmee hij onder Unix werkte. Zijn Perl wordt inmiddels ook wel de lijm van het world wide web’ genoemd, en is in staat om onder meer html-pagina’s, C-routines en Java-routines te genereren. Het is vanuit zijn pragmatiek een bijzondere krachtige taal, omdat het toestaat dat er gebruik gemaakt wordt van andere talen, vanwege een grote variëteit aan database-aanroepen toestaat, en vanwege de vele ‘short cuts’ eigen aan een pragmatische scriptingtaal die het leven van een programmeur aanzienlijk veraangenamen. Larry Wall vergelijkt de short cuts met wandelen door een park: een persoon die naar een terras in het noordoosten wil, gaat niet honderd stappen naar het noorden en dan honderd stappen naar oosten, maar steekt diagonaal over en neemt zodoende de kortste weg. Volgens deze filosofie heeft hij Perl ontwikkeld en verfijnd. Enkele van de opvallende verschillen met traditionele derde generatietalen als C zijn dat de programmeur verlost wordt van handmatige geheugenallocatie en het definiëren van datatypen. Daar zorgt de Perl-omgeving zelf voor. Erg belangrijk is verder dat de performance-eigenschappen van Perl/cgi-scripts uitstekend zijn, dit in tegenstelling tot pure Java-scripts. In de Windows NT-omgeving zou men, overigens, de asp-routines kunnen zien als de Microsoft-tegenhanger van Perl. Het is wel jammer dat Microsoft hiermee opnieuw heeft geprobeerd een eigen standaard te zetten en hiermee zich opnieuw kant tegen de open source-beweging. Hoe lang houdt Microsoft dit nog vol?
Om op de problematiek van Java terug te komen… Persoonlijk heb ik – deels onterecht – een gloeiende hekel gekregen aan Java, omdat deze topzware interpretatietaal iedere website omvormt tot een soort communistische supermarkt: je moet eindeloos wachten om naar binnen te mogen, en ben je eenmaal binnen dan valt er niet veel te halen. Zelfs kleine Java-applets vreten de performance van een site snel weg. Omdat websites ontworpen moeten worden voor de minst gemene deler – laten we zeggen een 486 cpu, 4MB werkgeheugen, een 28k8 modem – is het vaak verstandig om webprogrammeurs het toepassen van Java geheel te verbieden. Of er moeten wel hele goede redenen voor zijn. Meestal zijn die er niet. Zeker niet als van Perl/cgi-scripting gebruik gemaakt kan worden.
Toen Java nog nieuw was en aangekondigd als het nieuwste mirakel op het internet dat het web snel zou omtoveren tot een dynamische tovertuin, had ik al mijn eerste aanvaring met deze wondertaal. Een presentatie voor een internationale directie was met een combinatie van html en Java samengesteld; op mijn eigen verzoek overigens. Maar ik heb deze presentatie nooit durven gebruiken omdat de snelle notebook minuten stond te ratelen voordat de presentatie geladen was in het werkgeheugen. Ik viel dus maar terug op eenvoudige Powerpoint-sheets. Het is sindsdien, ondanks herhaalde oprechte pogingen van mijn kant, nooit meer helemaal goed gekomen tussen Java en mij. Iedere keer wanneer een goedbedoelende programmeur een fantastische applet aan een site toevoegt met bijvoorbeeld een scrollend nieuwsscherm, kijk ik naar de secondewijzer op mijn horloge en constateer steeds weer opnieuw dat er minimaal twintig seconden extra wachttijd voor de gebruiker bij gekomen is. In de wetenschap dat dit als consequentie heeft dat de meerderheid van de bezoekers van de website op de vlucht slaat, constateer ik dan een licht gevoel van paniek en een stijgende adrenalineniveau bij mij en mijn collega’s, wat vervolgens resulteert in het haastig verwijderen van deze applets. Ik sluit niet uit dat bij volgende generaties terminals Java meer tot zijn recht gaat komen. Anderzijds zijn de marktwetten erg hard: wanneer een nieuwe ontwikkeling niet geheel voldoet, wordt zij geparkeerd, en ingehaald door nieuwere ontwikkelingen die beter aansluiten bij de behoeften van de markt. Eén ding is mij hierbij wel duidelijk: Perl speelt ook dan een duidelijke rol als superlijm.
Om de vier weken schrijft prof. dr. Martijn Hoogeveen over de beste internetsites rond een interessant IT-onderwerp. Reageer s.v.p. via het discussieforum internet: https://www.computable.nl/discussie. Alle URL’s van de genoemde sites staan in Computable Online: https://www.computable.nl/internet.