I den organisation jeg arbejder i er der sommetider nogle ting man ikke kan lave om på. Faktisk er der ret mange ting man ikke har indflydelse på, og for en person som mig kan det godt være en smule udfordrende. Jeg er nu så heldig, at jeg fra naturens side er anlagt med en udfordrings fetish, og jeg viger sjældent tilbage hvis noget står i vejen. Men den her udfordring er dog en af de svære.
I Microsoft er det sådan at jeg hvert år får 7 overordnede mål jeg skal nå i løbet af 12 måneder. Vi starter vores år d. 1 Juli også har vi ellers et år til at eksekvere i. Det er ikke så nemt som det lyder, og de 7 mål ender ofte ud med reele 21-25 mål som kan være alt fra “sørg for at XX markedsandelen vokser til XX%” til “efteruddan dig igennem XX”. Så det er både meget store mål og meget små mål, men når dagen er omme så er det stadig noget der skal eksekveres på.
I år har jeg faktisk fået et mål der siger at jeg skal fremme væksten af ASP.NET på Danske servere/domæner i forhold til PHP og ASP. Det er bestemt en udfordring der har fået mig til at tænke lidt, men som sagt…jeg er vild med udfordringer.
Lad mig i denne blogpost guide dig igennem mine egne tanker og ideér omkring det at nå dette mål. Feedback modtages som altid gerne :)
ASP.NET i forhold til ASP
Den her burde jo være ligetil. ASP udviklere er på en eller anden facon Microsoft “friendly”, og hvis de ikke allerede er flyttet fra ASP til ASP.NET så er det eddermanme på tide. Men hvis ASP udvikleren ikke rykker platform af sig selv, ja så må jeg og resten af min afdeling hjælpe til. Den teknologi adoption der skulle være sket for mange år siden er simpelthen ikke fuldendt, og det kommer faktisk lidt bag på mig. Kan det være pga. legacy kode at ASP stadig eksitere ? Er det fordi ASP er billigere ? Er det fordi ASP er nemmere ? Hvad er det der gør at ASP udvikleren er blevet i scripting paradis, istedet for at blive en rigtig mand med hår på kroppen, eje en IDE samt 10 bøger om OOP.
Jeg tror simpelthen det har noget med indlæringskurven (ASP.NET) at gøre, og at det ikke behøver at være så besværligt at udvikle et simpelt website. Det synes jeg var en valid pointe for nogle år siden, men nu mener jeg ikke længere at der er hold i den pointe. Idag har du mulighed for ligeså nemt at udvikle med ASP.NET og endda ligeså billigt, hvis ikke endnu mere billigt. Microsoft er blevet bedre til at følge med resten af web verdenen, se bare på ASP.NET MVC og hvor produktivt det er atbejde med, og hvor meget det kan ligne ASP “classic”.
Måske er det OOP tankegangen der sætter en stopper for indlæringen af ASP.NET, eller bare .NET i det hele taget ? Hvad er det der skal til for at man rykker sig fra en så gammel teknologi ?
Det er paradoksalt, men ASP er blevet Microsoft egne fjende i og med at mange udviklere stadig er fuldt tilfredse med det lille framework. Og jeg kan ikke modargumentere når en ASP udvikler siger “det er så nemt at sætte noget i søen”.
Er ASP og PHP under samme paraply ?
På sin vis ja, men PHP har rykket sig meget og forsætter konstant med at rykke sig i retning som både OOP, dynamisk og imperitivt sprog. ASP er ligget stille siden 1999 og der kommer ikke til at ske mere i framework. Det bliver faktisk usupporteret i 2014 også vil teknologien være et kapitel i en historiebog.
PHP kan meget mere ud af boksen end ASP kan, og sprogmæssigt er det et sjovere og mere elegant sprog/framework end ASP. Tænk jeg nogensinde skulle sige det :0)! Men formålet med de to sprog/frameworks er det samme. De bliver stort set udelukkende brugt til at bygge web applikationer med, er begge scriptsprog som ikke bliver kompileret og bliver nogenlunde eksekveret på samme vis. Dog er PHP meget mere populært end ASP og det må øjensynligt skyldes at hele sproget/frameworket er mere fleksibelt, eftersigende billigere at udvikle op imod og at der eksistere et sundt og velfungerende økosystem omkring frameworket og det relaterede teknologier.
PHP har, fordi det er i konstant udvikling også mange flere frameworks og produkter end ASP har.
ASP.NET vs. PHP
ASP.NET vs. PHP er en lidt anden sang end ASP vs. PHP fordi, ASP.NET under overfladen er meget mere end et web application framework. Set med mine øjne er .NET en solid pæl bygget i jernbeton, med en meget stor og pengestærk virksomhed i ryggen (jeg ved det kan give visse associationer, men lad os lade dem ligge for nu), hvorimod PHP i forhold til .NET absolut ingen organisation har i ryggen (communitiet er der) og mere virker som et slasket og dovent framework.
PHP og ASP.NET forsøger at løse mange af de samme problemer, men jeg fornemmer at PHP udvikleren generelt er mere interesseret i at få tingene hurtigere løst, istedet for at gå op i kvaliteten af softwaren/applikationen. Det kan der sagtens være fornuft i. Som Jeppe Rørbæk engang sagde “kunden er ligeglad med din kode, han vil bare have sit produkt til at virke”. På en måde er det lidt en lussing til dem der går op deres arbejde og betragter det som et “craftmanship”, men på den anden side synes jeg det er meget cool at være en “code cowboy” fordi de kan være ret ligeglade med om hvordan tingene ser ud, de vil bare gerne have noget der virker – i en fart.
De gennemsnitlige PHP udviklere kan måske godt betragtes som værende “code cowboys”, men det er nødvendigvis ikke personens eget valg, det kan ligeså vel være PHP der ligger op til at man sjasker rundt i en gang spaghetti kode og ikke har værktøjer til code-coverage, unit-tests, en compiler, support etc. Jeg synes ikke PHP er ikke en pæn teknologi i forhold til .NET, men den er helt gratis og alene det må betyde et eller andet for udvikleren. Det er sådan lidt tilbage til det her med en jernbeton pille…
En ting som PHP er rigtig god til, er at fungere på stort set alle operativsystemer, hvilket ganske simpelt betyder at man som udvikler har mere råderum og flere muligheder for at vælge platform. Dog er det en brøkdel af PHP udviklerne der vælger Windows som host, og det må være af den grund, at Windows i modsætning til bla. Linux koster penge. PHP på Windows køre nærmest ligeså godt som på Linux men om det er ligeså fleksibelt tør jeg ikke sige noget om.
.NET generelt er uden tvivl den mest innovative af de to teknologier, og der sker rigtig meget på i ASP.NET verdenen og i de omkring liggende teknologier. Se bare de muligheder der kommet med Silverlight, LINQ og MVC. Produkterne omkring teknologierne har ry for at være dyre men de findes altså også i en gratis version som fungere glimrende.
ASP vs. PHP vs. ASP.NET vs. Daniel
Ovenstående er for de fleste ikke nok til at overbevise eller informere om hvorfor ASP.NET er bedre end PHP eller ASP, men det vil jeg forsøge at gøre i et par fremtidige posts herpå sitet. Så følg endelig med hvis du ikke allerede er overbevist :)