sslug-teknik team mailing list archive
-
sslug-teknik team
-
Mailing list archive
-
Message #06697
ASP/VB/PHP - forskellen er ...
Hejsa alle.
Dette er lidt offtopic, men med den store diskussion der har været omkring
NT contra Linux for nylig, ville jeg ihvertfald lige sørge for at
begreberne omkring ASP kom på plads.
Advarsel: det er meget langt, og jeg væver meget.
(Active Server Pages) ASP er et "framework" for dynamiske web sider, det
vil sige, sider der på serversiden fortolkes, og producerer en web side,
som klientens browser kan fortolke.
En af ASP's faciliteter er "session" management. I stedet for den
fuldkommen tilstandsløse protokol som http er, får man en automatisk
tilstandsstyring, hvor serveren automatisk sætter en cookie på klienten,
og vedligholder et datasæt der er specifikt for den pågældende klient, som
man meget nemt kan tilgå i sine asp sider.
Desuden er ASP et framework for brug af AOD objekter (jeg har glemt hvad
forkortelsen står for). Disse objekter kan indeholde forskellig
funktionalitet, som kan tilgås under fortolkningen af ASP siden på
serveren.
ASP er -ikke- det samme som (Visual Basic Script) VB. (Selv erfarne
Windows folk kan ikke altid finde ud af at skelne). VB script (kort VB)
anvendes meget ofte i ASP sider. Men, man kan anvende alle sprog der
overholder Windows script dll standarden (eller hvad den hedder).
I princippet kan ASP -snildt- implementeres på andre serveren end IIS.
MEN, for langt de fleste betyder ASP alt det nedenstående:
- AOD
- VB
- Frontpage extensions
- IIS (<-- sygt, virkeligt sygt).
- MS SQL server (<-- man græmmer sig)
- MS Visual Interdev
Jeg har arbejdet en del med ASP, og efterhånden endnu mere med PHP. PHP er
ikke som ASP et framework, men et sprog. I forhold til ASP mangler PHP en
del ting, men tilbyder til gengæld et helt sprog.
PHP har ikke, som standard, nogen sessionsstyring. (Enhver kompetent
programmør, der tænker over det i 10 minutter kan -snildt- lave noget
fuldkommen ækvivalent, men lad nu det ligge). For de fleste der bruger PHP
vil jeg tro at de også bruger Apache, og en eller anden form for database.
Det jeg prøver at sige, er at der er helt grundlæggende forskelle i hvad
for en "konstruktion" der omgiver de to ting (ASP/PHP).
En ting, som Windows folk overhovedet ikke gør sig klart, er at det er
relativt nemt at lave dynamiske web sites. Paradigmet for programmeringen
minder meget om funktionsprogrammering: givet et inddata, produceres et
uddata. Sideeffekterne i form af opdatering af databaser, osv, kan klares,
netop vha. databaser, og sessionsstyringen/tilstanden, er det heller ikke
svært at holde rede på. Hvis der er noget der er vanskeligt, er det at
holde ting konsistent, at bevare overblikket over "sitet", altså undgå
spaghetti.
ASP + frontpage extensions + VB osv, er MS værktøj til windows
programmører for at de skal kunne lave dynamiske web ting.
ASP mv. er lavet af Microsofts udviklingsafdeling, for at den skulle være
så nem at bruge som muligt. For at der skal være så lidt at tænke over som
muligt, for at man skal kunne lave noget "der ser godt ud" så hurtigt som
muligt. ASP er bygget omkring objekt hvis man vil noget.
PHP er lavet af programmører for programmører. PHP har klasser og
objekter, men til dagligt brug, tænker man i funktioner. Overblikket
bevarer man vha. en god understøttelse for modulisering.
Jeg synes forskellen i brug er enorm. Jeg kan ikke give konkrete
eksempler, men typisk fandt jeg at under ASP, initialiserede man objekter,
satte egenskbaer, kaldte metoder i eet væk. Hver eneste gang man
ville noget, skulle man satme igennem 5-10 kald på et eller andet dumt
objekt. Enormt trættende. PHP har en helt anden, langt mere direkte
tilgang til problemerne, som jeg ihvertfald finder langt mere
tiltrækkende. Og, som for mig betyder at jeg bruger meget (virkeligt
meget) mindre tid på php3 udvikling, end jeg gjorde på ASP.
Windows udviklere føler tit, at MS har opfundet genbrugelig kode, i form
af deres COM objekter. I unix verden har man aldrig lavet andet end at
genbruge kode.
Udviklingsmæssigt opfatter jeg folk der stadig hænger fast i MS/IIS til
web udvikling, som enten tvunget til det af deres virksomhed, eller som
direkte "blinde" for hvad der er effektivt.
Oh well, hvad ender jeg med at sige?
Diskussionen omkring ASP kontra PHP er lidt ligesom diskussion omkring
Visual Basic kontra MS Visual C++.
Det er to helt forskellige boldgader. At lave ting med "power" i, under
IIS/ASP er een lang pine. At lave ting med power under Apache/PHP er
programmering som det var meningen at det skulle være! Nemt, elegant,
hurtigt, effektivt. (Smukt).
Nogen gange tror jeg at MS bruger så lang tid på at udvikle fine GUI'er
til deres produkter for at skjule råddenskaben i den grundliggende brug af
systemet (Ikke design, men brugervenligheden. Hvor brugervenligt er
Windows 95, når din sidste mulighed er regedit?).
Endelig: En løsning med Frontpage ext + ASP + IIS er virkelig kun til at
grine af, ved siden af en løsning med posting vha. CVS, preprocessing m.
PHP og web server som Apache. Den sidste danser i cirkler rundt om den
første.
Det var det. Næste gang jeg poster skal det nok være lidt mere teknisk.
Det her er jo nærmest religiøst (ikke Windows kontra Linux, men ASP kontra
PHP).
Iøvrigt er diskussionen jo egentlig ikke så interessant. Om 5 år er der
nok ikke en NT web server tilbage, ligesom der jo heller ikke var for 5 år
siden. (Husker I: "Internettet er for svært at bruge..." :-)
Mads
--
Mads Bondo Dydensborg. madsdyd@xxxxxxxxxxxx
Just because a program takes text commands makes it complex? I love GUI's. I
love using the web. I love WYSIWYG word processors. But I also love CLIs. It
feels more natural to me, as if I'm talking with the computer (granted, the
language isn't english, it's bash, and the vocabulary happens to be whatever's
is my PATH)--I tell it what to do and it does it for me (unlike GUI's where I
have to do everything my own damn self).
- fassler, in response to MS France FUD
Follow ups