Kategorier
Blogginlägg

Utvärdering av utvecklingsverktyg för internet: Symfony vs Zend Framework

Jag spenderade några veckor i september på att utvärdera vilken platform våra nya internetprojekt ska baseras på och tittat på några lösningar såsom CakePHP, Symfony, Ruby on Rails och Zend framework. Fler har jag inte haft tid att installera och utvärdera.

Alla baseras på PHP utom Ruby on Rails som har ett eget språk, men alla är helt öppna system med en stor skara användare och i princip alla har forum, wiki och kodexempel på många ställen.

CakePHP är ett renodlat ramverk och det behövs inga PEAR eller andra externa libraries för att köra det. Det som är bra med Cake är hela communityn, det finns otroligt mycket resurser överallt och jag är övertygad om att Cake har störst support på detta område jämfört med de andra jag testat. Cake har inget speciellt utan är bara ett väldigt bra MVC ramverk med en otroligt stor skara människor som jobbar med det.

Symfony har väldigt mycket saker, speciellt gillar jag att den genererar nya kontrollers via sitt CLI (command line interface). Generatorn går dessutom att använda igen och igen i samma kod, den bara uppdaterar koden med nya ”controllers” och ”views” så på det sättet blir det verkligen ett RAD (rapid application development). Faktiskt är Symfony det ramverket som kommit längst med detta av de jag testat. Symfonys konfigurationer finns i ett språk som heter YAML, men det håller på att försvinna till fördel för XML. Dock är det lite osäkert om hur framtiden ser ut med Symfony, det drevs huvudsakligen av en fransman och finansierades av hans företag, men nu har det gått över till att helt utvecklas i OpenSource världen och än så länge så verkar fortsättningen på utvecklingen vara lite svalt.

Ruby on Rails är lite utanför då det är ett annat språk och jag är mer bekväm med PHP just nu. Men Ruby on Rails har en ganska stor mediahype, det skrivs väldigt mycket positivt om den. Själv tycker jag inte det var något speciellt, processerna är lite enklare men jag hade svårt med språket. Det viktigaste för mig är att ha ett bra verktyg som man känner att man har full koll på och att ingenting är omöjligt och tyvärr platsade inte Ruby on Rails i den kategorin.

Zend framework har visserligen bara stöd för PHP 5, liksom Symfony och några andra, men det som är intressant med Zend är att initiativtagaren till detta framework är de som själva utvecklat en stor del av vad PHP är idag. Zend framework med version 1.6 som jag testat en värdig konkurrent till alla de andra ramverken för nu finns allt som är baskraven i ett ramverk. En intressant möjlighet med Zend är att de utvecklat ett speciellt modulsystem som ska hjälpa communityn kring ramverket att skapa add-ons vilket jag tror starkt på. För mig känns detta ramverk som man har framtidstankar i allt som finns. Det jag saknar lite i Zend är dessa generatorer som kan skapa kod utifrån konfigurationsfiler såsom i Symfony, men å andra sidan är det ganska enkelt koncept med MVC så jag lider inte så mycket över att behöva kopiera in kod för nya controllers osv. Zend har dessvärre än så länge inte så mycket av en community, det finns lite forum och Wikis men det har inte riktigt tagit fart ännu såsom med CakePHP men jag är övertygad om att detta ramverk blir störst inom ett år på alla områden.

Mina favoriter är Ruby on Rails och Symfony, dock har valet gick gång till Zend Framework för den tror jag mest på under lång sikt. Jag är redan sedan flera veckar tillbaka i full gång med utveckling under Zend och jag gillar det skarpt, speciellt att jobba med det i Eclipse.

4 svar på ”Utvärdering av utvecklingsverktyg för internet: Symfony vs Zend Framework”

Oj, frågan kring ramverk är alltid så svårt.

Efter att ha studerat Ruby språket kan min inte annat än att bli kär i det. Att programmera i Ruby är abnormt svårt samtidigt som det alltid känns så smart och smidigt. Men precis som du nämner är det inte så klokt att göra sig beronde av ett ramverk där man inte själv kan gå in och lösa eventuella buggar och problem som man stöter på.

Det är ju trots att det som är en av styrkorna med Open Source.

Du missar ett php ramverk som är på stark frammarsch. Kanske inte riktigt moget ännu, men det är upp till varje projekt att bedömma. Fördelen med CI är att det är de ramverk som är minst som ett ramverk.

Ett annat intressant val är Django ( http://www.djangoproject.com/ ). Byggt i och för Python utvecklare.

Jag har läst in mig lite på Codeigniter nu och det var verkligen ett ramverk som jag borde ha utvärderat lite mer grundligt tillsammans med de andra.

Tror det hade varit ett ännu mer naturligt val för mig personligen för jag gillar mer ”the RAD way” och utan att ha skrivit någon kod i det ramverket ännu så ser jag i forumen och deras hjälpsidor att det är otroligt simpelt att göra saker snabbt.

Fast å andra sidan så känns ZF som mer värde i att bygga något mer omfattande sajt för, så det jag gör nu i ZF ligger mer i linje med förutsättningarna för prjektet som jag nyss startat, det kommer förhoppningsvis om 3-5 år vara ett säljargument som höjer substansvärdet på bolaget. Jag kan ha fel, men jag valde utifrån den tesen.

Jag tycker själv att CodeIgniter verkar vara det bästa valet pga att det är snabbast och minst att konfigurera, och har det mesta vad ett ramverk ska ha utan att ha för mycket. Sen kan man ju alltid ropa in Zends bibliotek och simsalabim så har du Zend också. Så en kombination kan vara fruktbart. Sen fattar jag inte riktigt varför man ska använda Zend i egentligen? Zend kommer ju med nya versioner hela tiden och de ändrar API:t fundamentalt så du får lära dig nytt hela tiden och knäcker gammal kod, svår och dålig dokumentation och många buggar i API:t också – många skäl till varför det är kasst. Och skälet varför man ska använda det ”De är grundarna till PHP…”
Rasmus Lerdorf är ju grundare till PHP och han gillar ju inte ramverk, han vill ju hålla det enkelt. Det tycker jag är bra.

Bra synpunkter. Såhär efteråt så tror jag nu CodeIgniter skulle passat bättre. En petitess kanske men t.ex har jag verkligen försökt att använda formulärfunktionerna i Zend men hur mycket jag än jobbar med de så tar det bara längre tid än genom att bara koda html, som så mycket annat i Zend Framework. Deras OpenID implementation har jag fått skriva om stora delar av eftersom den inte fungerade med Ajax, så i stort sett var jag tvungen att ändå lära mig hela OpenID protokollet som så mycket annat i Zend Framework, det är bara ytliga delar som man måste jobba mycket med att lära sig för att anpassa. Jag gillar därför verktyg som är mer RAD och det verkar CodeIgniter mer vara i den aspekten.

Stängt för kommentering.