Vergelijking tussen ASP en PHP
Door Michiel van Otegem
12 oktober 2001
Noot: Als docent ASP ben ik natuurlijk enigszins bevooroordeeld. Ik heb echter ook projecten gedaan met PHP
en heb er dus wel redelijke ervaring mee. Ik heb geprobeerd om een objectief beeld te geven van de verschillen tussen
ASP en PHP. Mocht er iets staan waarvan je weet dat het niet klopt, dan hoor ik dit graag, zodat het aangepast kan worden.
ASP en PHP zijn op veel manieren gelijk. In beide wordt HTML afgewisseld met programma code op de server, hetgeen
eventueel resulteert in HTML die het resultaat is van de code. Bijvoorbeeld:
<html>
<body>
<%
Response.Write("Hallo")
%>
</body>
</html>
zal resulteren in
<html>
<body>
Hallo
</body>
</html>
Het bovenstaande voorbeeld is ASP, maar kan heel makkelijk ook in PHP. Het idee achter ASP en PHP is ook min of meer
hetzelfde. PHP is echter Open Source en kan op veel systemen uit de voeten. ASP is een Microsoft technologie en werkt
standaard op Windows. Er zijn echter ook implementaties van ASP door derden die op allerlei Unix varianten, waaronder
Linux, werken (zie
Wat heb ik nodig voor ASP?).
PHP werkt op basis van 1 programmeer taal, die erg lijkt op C/Perl/Java. ASP is een platform en is taal onafhankelijk.
Standaard kun je in ASP met VBScript en JavaScript werken, maar er zijn ook modules voor Perl, REXX en andere talen.
Door de taalkeuze van PHP, wordt PHP over het algemeen gezien als moeilijker te begrijpen, omdat de taal lastiger in elkaar
zit dan bijvoorbeeld VBScript. VBScript is voor vrijwel elke leek nog wel te begrijpen, omdat het begrijpbare termen gebruikt
zoals
If x Then ... Else ... End If
In PHP zou hetzelfde eruit zien als
if(x) {...} else {...}.
ASP werkt op basis van een object model. Als je een bepaalde taak wilt volbrengen, dan gebruik je een object dat daarvoor
bedoeld is (zoals je een hamer gebruikt om een spijker te slaan en een tang om 'm eruit te halen). Zo heb je bijvoorbeeld een
Response object waarmee je van alles naar de browser kunt sturen en het Request object waarmee je gegevens van de
gebruiker opvraagt. PHP heeft dit soort dingen niet, alle functies zijn gescheiden, ook die functies die logischerwijs bij elkaar
horen. In ASP heb je dus wel een logische groepering van functies.
Alles wat je wil moet in PHP gedaan worden met script, er zijn nauwelijks mogelijkheden om de capaciteiten van PHP
uit te breiden. Dit kan eigenlijk alleen door PHP zelf te herprogrammeren. In ASP kun je objecten maken die bepaalde
taken kunnen uitvoeren (mail versturen, plaatjes bewerken, etc.). De objecten worden gemaakt met Visual Basic,
Visual C++, of een dergelijke taal, maar er zijn letterlijk honderden objecten op de markt waarmee je de functionaliteit
van ASP kunt uitbreiden, sommige gratis, anderen voor minder dan 150 gulden en natuurlijk sommigen die duizenden
guldens kosten omdat ze een hele specifieke taak uitvoeren.
ASP heeft 1 model om met databases te werken (ADO = ActiveX Data Objects). Aangezien dit de meest gebruikte
functionaliteit is, is dit best belangrijk. In PHP is contact met iedere database anders, en zal je code moeten herschrijven
om met een andere database te willen werken. In ASP hoef je dan slechts aan te geven dat je een andere database
wil gebruiken.
Voor veel voorkomende functies is PHP iets sneller dan ASP, maar dit is marginaal. Uiteindelijk is het veel belangrijker
hoe je iets programmeert.
Een opsomming van de voordelen van PHP levert over het algemeen het volgende op:
- PHP is Open Source
- PHP is Niet-Microsoft
- PHP is iets sneller
Een opsomming van de voordelen van ASP:
- ASP is gebaseerd op objecten
- ASP ondersteunt meer en makkelijkere talen
- Je kunt zelf functionaliteit toevoegen (via componenten)
- Databases kunnen op 1 manier worden aagesproken
|