ASP versus PHP

Der skal scriptes websider, skal der. Hvad skal man vælge blandt de dominerende web-scriptingsprog? PC World Online kigger på to populære af slagsen, og kommer med det fuldstændige entydige svar...sådan da.

I gamle dage

I gamle dage
Da Tim Berners-Lee opfandt World Wide Web i begyndelsen af 90'erne, var ideen at kunne vise tekst og billeder. Behovet for at kunne vise dynamisk indhold, for eksempel ved at sætte en database til sin webside, fik NCSA (National Center for Supercomputing Applications), der udviklede een af de første webservere, til at indbygge de facto-standarden Common Gateway Interface (CGI), så webserveren kunne snakke med et eller andet program.

CGI er altså ikke et sprog, men en standard for overførsel af data imellem webserver og program. I de gode, gamle dage var det ofte et Perl-script, eller et andet UNIX-scriptsprog. Imidlertid er CGI-metoden meget kapacitetskrævende, da der skal startes en ny proces for hvert kald. For at give en bedre ydelse, indbyggede Netscape og Microsoft hver deres API (Application Programming Interface) for at sætte hver deres server i stand til at udføre CGI-agtige opgaver som en del af serverens hovedproces, og dermed spare på ressourcerne.

Indlejret kode

Indlejret kode
Apache's mod_perl-modul fra 1997 indbyggede en Perl-fortolker direkte i webserveren. Med Microsofts' Internet Information Server version 3 medfulgte ASP (Active Server Pages), som bærende teknologi for flere scripting-sprog.

PHP, en forkortelse der først stod for Personal HomePage Tools, og siden PHP Hypertext Preprocessor, var først en samling Perl-scripts skrevet af Rasmus Lerdorf, der i parentes bemærket har en fortid som dansker. En række programmører har siden udvidet PHP radikalt, og i dag er det i blandt de mest succesrige open source-projekter.

Alle tre teknologier, Perl, ASP og PHP, har det til fælles, at de kan indlejres i et HTML-dokument. Indlejret kode er nemmere at have med at gøre, da programstumper og HTML-kode kan blandes.

Hvad skal man vælge?

Så hvad skal man vælge?
Ud over scripting-sprog indbygget i webserveren og CGI, har udvikleren en række andre muligheder. Den ene er, at bruge en applikationsserver som for eksempel ColdFusion, Miva eller Tango, der alle benytter et tag-lignende scriptsprog. Disse firmaer lover kortere udviklingtider end ellers, da de er skræddersyet til webbrug. Til gengæld er de temmeligt dyre, og man er fuldstændig fanget af en proprietær teknologi.

En anden mulighed er at benytte "rigtige" binære programmer, som moduler til webserveren, skrevet i for eksempel C eller C++. Det giver en meget høj udnyttelsesgrad, men til gengæld er de sværere at vedligeholde, og tager længere tid at udvikle og teste. Tingene bliver en anelse mudret af, at det er muligt at kompilere ASP-scripts, samt at PHP i version 4 indeholder et selvstændigt optimeringsmodul. Det vender vi tilbage til.

Mulighederne kan sammenfattes her:

Konklusionen er, at til det daglige arbejde er scripting-sprog hurtige, stabile, nemme at ændre og i almindelighed lette at lære.

Perl er dog ikke så nemt at lære. Man kan sagtens skrive pæn og letforståelig kode i Perl, men når man skal lære et sprog, er det vigtigt at man kan finde eksempler, og Perl-kodere excellerer i kompakte, sammentrukne sætninger, som kan være svære at gennemskue for begynderen. Til gengæld er det et særdeles kraftfuldt sprog.

JSP, Java Server Pages er HTML-sider med indlejret Java-kode. Det er fint hvis man har forstand på Java eller C++, men Java har desværre en temmelig stejl indlæringskurve.

ASP versus PHP

ASP versus PHP
De to tilbageværende kombattanter på scenen bliver ASP og PHP. ASP er ikke et scriptingsprog, men et fællesnavn for Microsofts scripting-teknologi. I øjeblikket er der mulighed for at benytte Visual Basic Script samt JScript, som er Microsofts implementering af JavaScript (eller ECMAScript, som det officielle navn er nu). Hvis man sammenligner de to muligheder bliver man ikke meget klogere:


PHP har libraries, ASP har komponenter
ASP-teknologien byder ikke som udgangspunkt på den overflod af muligheder, som PHP's libraries stiller til rådighed. I PHP er det muligt at skabe flash-film, tegne PNG- og JPEG-billeder samt meget mere. Til gengæld kan man via ASP kalde alle mulige COM-objekter, som Microsoft-verden er så rig på. Hvis virksomheden har en masse hjemme-udviklet forretningslogik liggende som COM-objekter, kan der altså være god fidus i ASP.

PHP kan kompileres, ASP kan kompileres
Med den seneste version af PHP medfølger en ny og forbedret maskine, kaldet Zend. Med Zend følger også en optimizer, der gør PHP-scripts hurtige. På ASP-fronten bliver scripts også kompileret første gang, scriptet kaldes.

PHP kan udvides, ASP kan udvides
Begge platforme kan udvides. Her vinder ASP på points, da man kan benytte nemme RAD-værktøjer som Visual Basic til at udvikle komponenter med, mens PHP kræver mere programmeringsforståelese og erfaring.

PHP er gratis, ASP følger gratis med
PHP er ikke bare gratis, det er vedhægtet tidens buzzword open source. Det har dog nok ikke den store betydning i det daglige udviklingsarbejde. ASP følger ikke bare gratis med, det kører allerede når Internet Information Server (eller Personal Web Server) startes.

Det er altså ikke på features, de to sprog slår hinanden ud. Hvad så med ydelsen, det store dyr i åbenbaringen? Her er det meget svært at sammenligne, på grund at forskelle i platforme, hardware, med mere. Traditionelt set har det været ASP-siden, der har fået kritik for dårlig ydelse, samt mangel på stabilitet og skalerbarhed. Men man kan konstatere, at der er mange store websteder, der benytter ASP, for eksempel HotBot, med en stor mængde daglige forespørgsler. Så der er altså heller ikke på det punkt nogen klar vinder.

Svaret

Er De forvirret?
Hvis man arbejder i et Microsoft-miljø, er ASP det optimale valg. Her får man fordelene af Microsofts integrerede servermiljø, samt udviklingsværktøjer man kender, og måske endda elsker.

Hvis man arbejder i et Apache/UNIX-miljø, er PHP det rigtige valg. Her får man en stor mængde features syet ind i webserveren, bunkevis af scripts man kan lade sig inspirere af, samt et sprog, der er til at gå til.

Hvis man vil forbedre sine kvalifikationer, så må rådet lyde: Lær dem begge. Hvis man er begynder, er ASP måske et godt sted at starte, da det er nemt at installere Microsofts Personal Web Server på hjemmecomputeren, samt at man kan benytte de to nemme sprog Visual Basic Script og JScript. Hvis man har noget erfaring med enten Visual Basic eller JavaScript, der ligner JScript til forveksling, er det nemt at starte på. Men eftesom Apache kører 60 procent af alle websteder, så vil PHP se godt ud på ens CV til en fremtidig jobsamtale. Og PHP kan også nemt installeres på Personal Web Server - se hvordan på PHP's websted.

Webscripting er ikke raketvidenskab

Webscripting er ikke raketvidenskab
Der er mange andre faktorer, der har betydning end sprogvalg, når grunden til praktisk webscripting skal lægges. De fleste scripts, udvikleren kommer til at skrive vil som regel ikke være komplekse på grund af sproget, der ligger bag.

Faktorerne kan være flaskehalse, der gemmer sig i hardware, databaseforbindelse, manglende serveradministration og vedligeholdelse. Heldigvis er det faktorer, der som oftest ligger uden for udviklerens ansvarsområde, men basal viden om systemet er alligevel vigtigt.

Hvad der bør ligge i kernen af en webudviklers kompetance, er en principiel forståelse af HTTP-protokollen, klient-server-løsninger og webbets virkemåde. Mange problemer opstår, fordi udvikleren koder i blinde, og ikke har en reel forståelse af de foreliggende mekanismer. Det gælder i webudviking, som i al udvikling af software.

Læs mere
Webmonkey: Server-Side Scripting Shootout
ZDNet: Four scripting languages speed development




Brancheguiden
Brancheguide logo
Opdateres dagligt:
Den største og
mest komplette
oversigt
over danske
it-virksomheder
Hvad kan de? Hvor store er de? Hvor bor de?
itm8 A/S
Outsourcing, hosting, decentral drift, servicedesk, konsulentydelser, salg og udleje af handelsvarer, udvikling af software.

Nøgletal og mere info om virksomheden
Skal din virksomhed med i Guiden? Klik her

Kommende events
Computerworld Cloud & AI Festival 2025

Med den eksplosive udvikling indenfor cloud & AI er behovet for at følge med og vidensdeling større end nogensinde før. Glæd dig til to dage, hvor du kan netværke med over 2.400 it-professionelle, møde mere end 50 it-leverandører og høre indlæg fra +90 talere. Vi sætter fokus på emner som AI; infrastruktur, compliance, sikkerhed og løsninger for både private og offentlige organisationer.

17. september 2025 | Læs mere


IT og OT i harmoni: Sikring uden at gå på kompromis med effektiviteten

IT og OT smelter sammen – men med risiko for dyre fejl. Få metoder til sikker integration med ERP, kundesystemer og produktion. Tilmeld dig og få styr på forskellene og faldgruberne.

24. september 2025 | Læs mere


NIS2: Vi gør status efter tre måneder og lærer af erfaringerne

Vær med, når vi deler oplevelser med implementering af NIS2 og drøfter, hvordan du undgår at gentage erfaringerne fra GDPR – og særligt undgår kostbar overimplementering.

30. september 2025 | Læs mere