Moim zdaniem, źle porównujesz i jak poprzednicy zauważyli - źle sformułowane pytanie.
Rails to framework, odpowiedniki w PHP: Symfony, CakePHP, ZendFramework.
PHP to język, odpowiednikiem jest Ruby.
Jeśli posiedzisz nad Ruby, odkryjesz że jest znacznie ciekawszy i nie zawaham się powiedzieć: piękniejszy i dojrzalszy, podczas gdy PHP jest trochę śmietnikiem. Pomieszaniem z pomatlaniem, najłatwiej to możesz zauważyć przyglądając się parametrom funkcji, gdzie dwie siostrzane funkcje, potrafią mieć inną kolejność tych samych parametrów - wniosek: bałagan.
W celu zbudowania prestiżu Zend wymyślił certyfikat - ZendCertyficate, który przez długi czas był zwykłą pamięciówką z kolejności tych parametrów, obecnie się to zmienia.
Jeśli miałbym odpowiedzieć na pytanie: “w czym mi się lepiej pracuje i dlaczego?”, odpowiedziałbym w Ruby i Rails.
Dlaczego:
- większość frameworków do PHP stara się obecnie naśladować Rails i Django.
- PHP czyni wiele rzeczy trudniejszych do zrealizowania, zainteresowałem się Ruby, gdy potrzebowałem np. dynamicznego nadpisywania metod, tzw. monkey patching, który ma złe i dobre strony, ale bywa zbawieniem (AR)
- PHP nie ma niczego, czego nie oferowałby Ruby, na odwrót się nie da tego powiedzieć. Przytoczę kilka sloganów, które są często wypowiadane:
- FCGI i dispatcher PHP - stworzenie dispatchera, który będzie obsługiwał Ruby nie jest trudne, są gotowe rozwiązania, dostajesz tą samą funkcjonalność co PHP - więc pisanie “stronek” w czystym Ruby jest jak najbardziej możliwe.
- PHP posiada bogate środowisko i zaplecze w postaci społeczności - Ruby i Rails ma równie wielkie, jeśli nie większe.
- PHP zżera mniej zasobów - organoleptycznie stwierdzone przeze mnie i mojego administratora, że wcale tak nie jest, duży system w jakim nam przyszło pracować, a zbudowany na PHP, wdzięcznie dziedziczy bałagan języka, generuje i parsuje XML w tempie super ślimaczym oraz obciąża serwer totalnie. Z ciekawostek zaobserwowaliśmy że każdy z działających u nas systemów/frameworków w PHP ma taką wadę, że każdorazowe uruchomienie jednego skryptu powoduje includowanie plików i tworzenie wszystkich klas i funkcji od nowa (problem częściowo obeszliśmy pisząc własny dispatcher dla tych aplikacji), w momencie gdy trzy działy naraz używały bardzo intensywnie systemu, serwer umierał. Rails za to ładuje je raz i trzyma w pamięci, szczególnie z Ruby w wersji Enterprise, w której istnieje coś takiego jak copy-on-write, minimalizujące użycie pamięci.
Ruby ma swoje wady, największą jest to, że panuje słuszna opinia o trudnościach w hostingu, co prawda to było dawno i nieprawda, jednak trudno oczekiwać po administratorach serwerów, że skuszą się na Ruby i jeszcze Rails, jeśli w wielu przypadkach boją się zainstalować PHP5 (PHP4 i PHP5 mogą współistnieć), bo są zbyt nowe…
Mam nadzieję, że moja odpowiedź chodź częściowo Cię zaspokoi. Chciałeś flame’a to masz
grrrr…