Het tempo van technologische ontwikkelingen in de computerindustrie is opmerkelijk. Software ligt helaas ver achter op hardware, maar heeft de afgelopen jaren ook een belangrijke progressie doorgemaakt. Toch veroorzaakt de onbalans in de ontwikkeling van hardware en software problemen. Het zou relatief makkelijk zijn als applicaties statisch waren, maar dat zijn ze niet. Ik schat dat applicaties en software in hetzelfde tempo vorderingen maken; die bij hardware gaan minstens twee keer zo snel.
Op het eerste gezicht maakt dat niet uit, maar in de praktijk vormt het een ernstig probleem. Applicaties zijn een lang leven beschoren en moeten ondersteund worden met technologie die op het moment van hun introductie beschikbaar is. Bijna alle actieve applicaties gebruiken dientengevolge verouderde technologie. De ontwikkelaars willen zo ver mogelijk vooruit lopen, maar worden gehinderd door oude technologie. De enige oplossing van dit dilemma is een enorme acceleratie in de ontwikkeling van softwaretechnologie, met de focus op geautomatiseerd ontwerp en componenttechnieken. Helaas weerhouden gevestigde belangen werkelijke vooruitgang. Deze onfortuinlijke situatie zal de it-industrie vele jaren blijven teisteren.
Alle applicaties worden ontworpen onder optimale benutting van de beschikbare technologie. De meeste ontwerpers zullen proberen rekening te houden met toekomstige ontwikkelingen, maar in de hierboven beschreven onvoorspelbare situatie bestaat slechts een beperkte kans op succes. Ook dat lijkt niet veel uit te maken, omdat de meest recente technologie te gebruiken is voor nieuwe versies. Dit argument is echter onterecht, omdat de nieuwe technologieën kunnen beïnvloeden hoe een systeem wordt gebouwd, en een ouder ontwerp ongeschikt kunnen maken.
De volgende voorbeelden illustreren dit; hierbij was het onmogelijk om vooruitlopend op veranderingen te ontwerpen.
Verwerkingskracht. In het verleden moesten programmeurs veel van hun vaardigheden inzetten om de applicatie efficiënt te maken, omdat computers zo duur waren. De huidige pc’s zijn echter krachtiger dan de mainframes van tien jaar geleden. De programmeurs doen nu het omgekeerde en maken zich niet druk om de gebruikte resources. Dit is net zo fout. Overefficiënte code is alleen te maken met behulp van methoden die het onderhoud tot een groot probleem maken. Aan de andere kant is ongelimiteerde code zo groot, dat het onderhoud eveneens moeilijk is en bugs moeilijk te herstellen zijn.
Grafische gebruikersinterfaces. De pc-revolutie maakte gui-interfaces economisch aantrekkelijk. Helaas ontstond een gespleten cultuur, mainframers versus pc-whizzkids. Hierdoor werden client/server-applicaties gebouwd op de dikke-clientarchitectuur in plaats dat er uitgegaan werd van het beste van twee werelden door dunne gui-clients te combineren met robuuste bedrijfslogica voor de server. Weer een voorbeeld van technologie die in de weg zit.
Opslag. Ik geef het niet graag toe, maar ik weet nog dat ik goochelde met vaste schijven van 5 MB en 5MB removable disks om een aanvaardbaar klein businesssysteem te krijgen. De goedkope pc waarop ik dit stukje schrijf, heeft een schijf van 80 GB! De gui-applicaties zijn misschien vooruitgeholpen door Xerox-technologie, geïmplementeerd op Macs en pc’s, maar ze zouden onbruikbaar zijn zonder de ongelooflijke vorderingen in capaciteit en zonder de prijsdaling van diskdrives. Gui-applicaties waren ook afhankelijk van de ontwikkeling van laser- en inkjet-printers. Het is moeilijk voor te stellen dat de fax een belangrijke doorbraak was voor de ondersteuning van beeld. Met name desktopprinters hebben het ontwerpen van een applicatie aanzienlijk beïnvloed, en online printen verlegde in veel applicaties het spoolen naar een centrale faciliteit. Hierdoor moesten de meeste kantoortoepassingen evenals veel data-invoer- en query-systemen herontwikkeld worden. De technologie drong de applicaties drastische veranderingen op, of je dat nu wilde of niet.
Communicatie. De ontwikkeling van lan’s activeerde de client/serverarchitectuur mogelijk. Dit creëerde uiteraard een van de grootste (prestatie)problemen van tegenwoordig: schaalbaarheid. De effectieve bandbreedte van het netwerk varieert met het aantal gebruikers. Een systeem dat in een pilot wel werkt met een paar gebruikers, doet het vaak niet bij veel gebruikers. De applicatieprogrammeurs zouden bij het ontwerp rekening moeten houden met de netwerkbelasting, dat wil zeggen een dunne-clientarchitectuur. Maar dat hebben ze niet gedaan. Ze werden verleid door de voordelen van ‘rapid application development’-tools en wisten niets van de valkuilen.
‘Wide area networks’. Internet stelt volkomen nieuwe eisen. Dankzij de ontwikkeling in hardware hebben heel veel externe gebruikers een computer, maar niet een met software die speciaal voor hun werk is ontworpen. Nu moeten systemen worden gebouwd die webbrowsers gebruiken; ze moeten worden geïntegreerd met de kernsystemen van het bedrijf.
Zou je ook niet willen dat de ontwikkelingen in hardware wat trager gingen en die in software wat sneller?
Martin Healey, pionier ontwikkeling van op Intel gebaseerde computers en c/s-architectuur. Directeur van een aantal it-bedrijven en professor aan de Universiteit van Wales.