Fra PHP til Rails

Tags:    diverse

Kære udviklere,

Jeg er PHP udvikler som har kigget lidt på Rails og kan rigtigt godt lide det sofar.

Jeg kunne godt tænke mig at høre fra andre PHP folk som har taget skiftet til Rails. Hvad er jeres erfaringer med det, er i tilfredse med det? Er der nogle ting som irritere jer.. føler i jer begrænset?



Jeg synes Ruby on Rails er rigtig rart at kode i. Det er uhyre nemt at lave en webapplikation der overholder et MVC pattern. Jeg har ikke prøvet at bruge nogle MVC frameworks i PHP, men jeg har til gengæld prøvet at bruge det pattern uden et framework, og det har ikke altid været særlig behageligt. Jeg nyder Rubys simple syntax, jeg savner bestemt ikke PHPs dollartegn og -> pile! Jeg er endnu ikke stødt på noget jeg har kunne lave i PHP som jeg ikke har kunne lave i RoR. Men jeg har oplevet talrige ting som var latterligt meget nemmere i RoR.

Jeg er dog skuffet over understøttelsen af Windows. Ruby kører meget langsomt på Windows, så derfor har jeg installeret Ubuntu i en VMWare og udvikler der fra. Jeg har ikke brugt Ubuntu før det, så det har også været en lærerig proces :-).

Da jeg skulle i gang ville jeg gerne bruge bogen Rails for PHP Developers, men faldt i stedet over Rails for .Net Developers i min lokale boghandel, og den har været rigtig god at komme i gang med. Siden hen har jeg købt bogen Agile Web Development with Rails.



Der er ikke rigtigt nogen begrænsninger som sådan med Rails (eller Ruby, for den sags skyld). Ruby kan ikke så meget som udgangspunkt, men Rails og andre gems giver al den funktionalitet du kunne drømme om.

Rails er også utroligt snabbt at kode i, og du får lynhurtigt en masse pæn kode fra hånden som er nem at vedligeholde og meget portabel. Jeg kan bestemt anbefale at have Rails-erfaring med i bagagen.

Det sagt, så er Rails(og Ruby generelt) sløvt som bare pokker. Det er et af de absolut langsommeste web-frameworks derude, så hvis du skal bruge det på store deployments vil du få store performance-problemer. Twitter var oprindeligt skrivet i Rails, men de fandt meget hurtigt ud af at platformen ganske enkelt ikke kunne understøtte den traffik der var behov for. Derfor bruger Twitter nu Scala til det meste (Rails lever stadig, omend meget få steder, i Twitter-regi).

Personligt er jeg performance-fetishist, og Rails' performance alene er nok til at holde mig fra det til de fleste projekter. Jeg føler en begrænsning i og med at hvis mit projekt bliver en brændende success, kan jeg risikere at skulle skrive hele systemet om. Så vil jeg hellere udvikle i lynende hurtige CodeIgniter i PHP, der giver mange af de samme muligheder som Rails gør, til mange gange hastigheden.

Det er mine to cents; Konklusion: Rails er en rigtigt dejlig platform som er et must at have med i sin portfolio, og som kan være rigtigt appellerende til mange ting. Men det er hverken så hurtigt eller så portabelt som PHP er det, og det er man nødt til at have med i sine overvejelser.

NOTE: Når jeg siger langsomt mener jeg naturligvis under pres. Til "normale" sites og projekter af mellemstor størrelse vil Rails være rigeligt hurtigt. Men i spidsbelastninger og store deployments er det bare ikke godt nok :)



Hej Per og Kim,

Det lyder rigtigt fornuftigt.

Kim - Ja, jeg har nemlig også invisteret i Agile web development i PDF format.. Super fed "bog", kan klart anbefale den til alle som vil igang med det. Jeg er så heldig at jeg har en dedikeret ubuntu server som jeg har sat rails op på med Apache. Det køre som en drøm.

Per - Troede faktisk stadig at Twitter kørte Rails, men havde godt hørt at de har haft(har) gevaldige performance problemer. Jeg satser dog ikke på at lave nogle projekter forløbigt som kommer i nærheden af den trafik de har :-)

Har fået nogle spørgsmål i forbindelse dagens læsning men det smider jeg lige i en ny tråd for at holde det lidt on topic.

Tak for jeres svar!



Såvidt jeg er orienteret benytter Twitter stadig idag en Rails app som deres webbaserede frontend. Langt de fleste af de bagvedliggende systemer, og særligt Kestrel, er dog i Scala nu. Kestrel er Scala versionen af den oprindelige Starling message server, som var skrevet i Ruby til Twitters eget formål.

Foruden det er jeg dog enig i både Kim Jensen og Per Sikker Hansens's observationer.



t