Fulkod, PHP och Java
Det är fullt möjligt att skriva snygg, lättläst, flerskiktad/väl-separerad, objektorienterad kod i PHP. En del javautvecklare tror att PHP är enbart är ett scriptspråk som helst bör undvikas när man ska bygga ett skalbart och robust system. Visst, Java har sina fördelar. För att skriva bra Javakod krävs att man har iaf någorlunda bra koll på systemutveckling och i synnerhet objektorienterad programmering. Det är svårare att skriva fulhack i Java än i PHP just pga att Java har en högre inlärningströskel och tillåter inte samma utrymme för fulkod. PHP är lätt att komma igång med och därför finns det också många icke-utbildade hobbyprogrammerare. Detta är en av orsakerna till att många PHP-system är dåligt skrivna.
I mina år som konsult inom Java och PHP har jag sett det mesta. Jag har sett väldigt bra skriven Javakod och hemsk PHP-kod. Men jag har också sett bedrövlig Javakod och otroligt välskriven PHP-kod. Vad jag försöker säga är att det går att skriva väldigt bra PHP-kod. Det handlar mer om programmerarens kunskaper än själva språket i sig. När PHP5 kom för några år sedan introducerades en del objektorienterade funktioner vilket innebär att man i princip kan skriva PHP-koden helt objektorienterad, vilket är trevligt om man kommer ifrån Javavärlden.
Några fördelar jag ser med PHP
- Stöds av alla webhotell. Javahosting är fortfarande dyr (och sällsynt) jämförelsevis.
- Snabbare utveckling. Faktum är att utvecklingen går enormt mycket snabbare då man ej behöver kompilera om (och deploya) för minsta ändring. Testade dock JavaRebel ett tag vilket snabbare upp en hel del om man kodar Java.
- Lättare att underhålla. Om man kör en komplex Javamiljö och vill göra en ny release behöver man sannolikt ett större servicefönster (bygge, deployment etc) än om man hade kört PHP. Naturligtvis behöver man bra rutiner gällande release management, oavsett.
- Mindre komplex utvecklingsmiljö. För att komma igång behöver man i princip ladda ner MAMP och sen köra igång. Man kan skippa 'krims-kramset' med ant, maven etc för att underhålla en egen utvecklingsmiljö. En Apache server är betydligt enklare att konfigurera än en app server som Weblogic eller JBoss (Tomcat däremot något enklare).
Jag tillhör dem som tycker att både Java och PHP har sin plats därute. Det handlar mer om vilket syfte man har med det man utvecklar. För start-ups där time-to-market och pris är de viktigaste faktorerna så skulle jag dock rekommendera en PHP-lösning.