Sprzątanie po PHP czyli Passenger 2.0 i Ruby Enterprise 1.0

Opublikowane przez Jarosław Zabiełło Tue, 03 Jun 2008 23:40:00 GMT

Stało się! Twórcy świetnego modułu Apache’a – mod_rails – zmieniają jego nazwę na mod_passenger, bo mod_rails nie jest już więcej modułem tylko dla Rails. W nowej wersji 2.0 (ktora ma wyjść na dniach) dodano pełne wsparcie dla Rack i tym samym mod_passenger 2.0 obsługuje wszystkie pozostałe frameworki używające Rack’a (ze świetnym Merbem włącznie).

Drugim, ciekawym projektem firmy Phusion jest Ruby Enterprise (wersja 1.0 ma być dostępna lada dzień razem z Passenger 2.0). Jest to podrasowana wersja interpretera Rubiego (MRI) powodująca nie tylko przyśpieszenie ale także znaczne zmniejszenie zużycia pamięci RAM (dodano technikę copy-on-write do garbage collectora interpretera MRI, dokładniej opisano to na slajdach). Wg tego co twierdzą ludzie z Phusion, uzyskano zmniejszenie o 33% zużycia pamięci przez Rails. To bardzo dobra wiadomość, bo pamięć mimo, że jest generalnie tania, nie jest tania w ofertach hostingowych VPS.

Passenger wprowadza nową jakość dla frameworków Rubiego. Coraz więcej firm hostingowych to docenia i przechodzi na Passenger’a (z tych bardziej znanych, Dreamhost już tego używa). Sam moduł mod_passenger jest nie tylko trywialny w użyciu, jest też bardzo szybki i stabilny. Chyba nadchodzą ciężkie chwile dla tych, co trzymali się PHP głównie z powodu jego taniego hostingu i prostoty uruchomiania serwerze. Rails i Merb mogą wkrótce trochę pozamiatać po PHP. :)

Szybkość mod_passenger’a robi wrażenie. Bije wydajnością kombinację Nginx + asynchroniczny Thin używający szybkich, uniksowych socketów. Jest też szybszy od komercyjnego Litespeed’a.

Co ciekawe, mod_passenger obsługuje interfejs WSGI do Pythona! Jeden moduł pozwoli więc na odpalanie Rails, Merb’a i Django równocześnie. Mało tego, jeśli mod_passenger dla Pythona będzie działał tak sprawnie jak dla Rails, to będziemy mieć trywialne przeładowywanie aplikacji Django bez konieczności restartu całego Apache’a.

Vide:

Update

2008-06-25


Phusion Passenger 2.0 and Ruby Enterprise Edition from Carl Youngblood on Vimeo

Tagi , , , , , , , ,  | 34 comments

Comments

  1. Avatar Greg powiedział about 6 hours later:

    Ostatnio duzo sie mowi/pisze o upadku PHP a tymczasem powstaje PHP6. Ciekawe jak to sie “ulozy” po premierze szostki. Poki co PHP w dalszym ciagu przewodzi calej tej stawce.

    Pozdr.

  2. Avatar Pawel Rutkowski powiedział about 7 hours later:

    @Greg: Przewodzi w czym ? Moim zdaniem wszyscy ktorzy moga (poza studentami) uciekaja z PHP.

  3. Avatar Jacek Becela powiedział about 8 hours later:

    Czas przerobic skrypty Capistrano, wywalić tą całą pajęczynkę różnorakich serwerów / proxiaków i cieszyć się z zaoszczędzonego czasu. A propos PHP i PHP6, Panowie, litości ;)

  4. Avatar piter powiedział about 8 hours later:

    @Jacek Becela:

    Ja już to robię od jakiegoś czasu i jestem wielce zadowolony :-) Polecam!

  5. Avatar Greg powiedział about 8 hours later:

    PHP jest w dalszym ciągu naczesciej uzywanym jezykiem na serwerach.

    Gdzie to widac? 1. kazdy hosting oferuje PHP. rzadko trafia sie Ruby, Java, czy ASP 2. z tego co sie orientuje to PHP jest najszybsze z w/w. 3. najwiecej sie widzi pliki index.php w adresach 4. cos musi byc skoro allegro.pl jest na php. Wykop.pl byl kiedys na Rubym ale wydajnosciowo nie wyrobil i teraz jest na PHP?

    Nie jest wyznawca PHP, bo swoje wady ale duzej ilosc zalet nie mozna nie zauwazyc.

    Ruby tez jest ok, i pewnie jak zdobecie wieksza popularnosc (glownie hosting) to moze to bedzie nowy lider.

    Pozdr.

  6. Avatar Greg powiedział about 9 hours later:

    Mały dopisek.

    Sprawdziłem ilość ofert pracy na pracuj.pl

    Ruby->8 PHP->83 ASP->71.

    Wiecie może jak to jest poza PL?

  7. Avatar Tomash powiedział about 9 hours later:

    Brawo Jarek – pierwsza notka na Twoim blogu, z której dowiedziałem się czegoś, a nie tylko będąca tłumaczeniem z anglojęzycznych blogów. Absolutnie bez złośliwości, naprawdę podoba mi się, że ekosystem DOBRYCH blogów o RoR rozszerza się o tak mocnego polskiego reprezentanta :)

    Poza tym zainspirowałeś mnie do przepchnięcia mod_rails w firmie na maszynie developerskiej, bo combo apache+mongrel najwyraźniej już niespecjalnie pasuje do naszych czasów ;) (plus akrobacje do automatycznego startu mongreli przy reboocie – fuj)

  8. Avatar Jacek Becela powiedział about 9 hours later:

    Pracy w Rails jest dużo. W Polsce jesteśmy na tym etapie, na którym Zachód był dobry rok, półtora temu. Powoli się przebija, z resztą czy to ważne, skoro pracy jest więcej niż programistów?

  9. Avatar jiima powiedział about 10 hours later:

    Co do PHP… Nie wiem co tak wszyscy nienawidzą PHP i chcą mu odebrać rynek z przyczyn ideologicznych. Generalnie ja jestem zwolennikiem właściwych narzędzi do właściwych zastosowań. Nie napiszę poważnej aplikacji enterprise z integracją między systemową w PHP, nie ważne czy 4, 5, 6 czy 24. Nie będę pisać małego blogowego sofcika w Javie czy czymś w tym stylu. PHP wystarczy.

    Co do Ruby, w tej chwili mam wrażenie że jest gdzieś pomiędzy. Wciąż część rozwiązań nie ma wystarczającej wydajności by zająć miejsce PHP i wystarczającej “komercyjności” by wygryźć Javę. Moim zdaniem wydajność należy poprawiać, ale po to by iść w stronę Javy a nie PHP. “posprzątać” po PHP mogą inne rozwiązania niż Rails czy Merb, coś lżejszego (nie wiem, czyste strony eRB na przykład, albo Lua?). Też dziś nad tym trochę myślałem. Główny temat przewodni, to dlaczego do diabła nie PHP?

    To że są słabi programiści, czy wręcz “programiści” tego języka, to nie jest powód. Kiepskich programistów Ruby nie jest wiele, ale ich przybywa na fali “dymu” związanej z railsami. Znam jednego takiego – wielki guru, programuje w konsoli, szuka odpowiednika TextMate dla linuxa (bo nie ma Mac’a a co to za programista Rails bez TextMate) a nie wie co to sygnał, obiekt singletonowy i do czego to cholerne wczesne ładowanie w Active Record. I będzie ich więcej. Nawet takich, którzy nie będą wiedzieć co to Ruby, bo przecież “programują w Railsach”.

    Java też ma takich “agentów” choć są lepiej poukrywani, głównie w firmach konsultingowych. Na forach nie udzielają się bo to dla geeków. Sprzątałem projekt po takim jednym. O Springu coś tam słyszał, ale to open source więc pewnie nie za dobre. W projekcie miał jednego gigantycznego bloba (polecam książkę “Antipatterns”) który robił wszystko, w dodatku był EJB (2.0). Tłumaczył mi że tak trzeba, bo to fasada sesji. Na stronach nie nadawał ID elementom, bo jakiś taglib tego nie lubił…

    Tak więc nie potrzeba PHP by wyprodukować złego programistę…

  10. Avatar Ris powiedział about 10 hours later:

    @Greg Wykop.pl przeszedł na php raczej z powodu tańszego programisty a nie szybkości działania.

  11. Avatar jiima powiedział about 10 hours later:

    @Jacek

    Chyba nie jesteśmy z tego samego kraju. Kilkakrotne próby znalezienia roboty w Ruby (niekoniecznie Rails) lub Pythonie (o bardziej ezoterycznych rozwiązaniach jak Erlang nie wspominam) kończyły się znalezieniem dobrze płatnej roboty w Javie. Wolałbym co innego, ale…

    Ostatnia propozycja jaką miałem dotyczyła umowy o współpracę za jakieś śmieszne pieniądze. Sorki, mam rodzinę na utrzymaniu…

    Jest jeszcze Google (dla fanów Pythona) ale raz że dostać się trudno (choć kusi spróbować), dwa że najbliższe dwa lata jestem uwiązany do obecnego miejsca i nie jest to Wrocław…

  12. Avatar Greg powiedział about 12 hours later:

    @Ris A jaka róznica w jezyku programowania dla programisty?

    Dobry programista zarabia tyle sama bez względu na to czy pisze w PHP, Ruby, Javie etc…

    No chyba że się myle.. macie jakieś info w temacie?

  13. Avatar rsz powiedział about 12 hours later:

    Oj, Jarek, Jarek, fantasta z Ciebie. Zobacz komu rośnie w rankingach popularności języków…

  14. Avatar rsz powiedział about 12 hours later:

    jiima: nie wiem, czemu masz takie złe doświadczenia, ja z pracą w Pythonie w Polsce nigdy nie miałem problemu. A jeśli szukasz pracy w tej chwili, to zapraszam do nas:

    http://www.jobpilot.pl/stellenanzeigen/7d7/13/2535112.htm?dummy

    Pieniądze nieśmieszne, ale robota też raczej nietrywialna :)

  15. Avatar Tomash powiedział about 13 hours later:

    Właśnie przeniosłem swoje lokalne/developerskie sajty na mod_rails, a na firmowym VPSie naszego bloga. DOSKONAŁE. 10/10, żegnaj Mongrelu :)

  16. Avatar Ris powiedział about 13 hours later:

    @Greg Wydaje się mi, że programistom php płaci się mniej, wykop.pl to potwierdza.

  17. Avatar Jarosław Zabiełło powiedział about 14 hours later:

    Ofert pracy, jak to słusznie zauważył Jacek Becela, jest wciąż więcej niż chętnych. Oczywiście więcej jest wciaż ofert dla PHP niż Rubiego, ale to idzie raczej siłą bezwładności (PHP jest dużo dłużej obecny na rynku). Wszyscy, których znam, jak poznali Rubiego, to nie chcą wracać do PHP. Anyway, chciałem tylko powiedzieć że dzięki mod_passenger powinien wkrótce pojawić się wysyp tańszych ofert hostingowych a to na pewno będzie się przekładać na rosnącą popularność Rubiego.

    Greg@ generalnie javowcom płaci się więcej, bo i też więcej potrzeba wiedzy i umiejętności aby używać tej platformy. Jednakże, w konkretnych przypadkach, jest wszystko możliwe. Bywa, że dobrzy spece od Rails zarabiają więcej. Ale są oczywiście i tacy co koszmarki tworzą w Ruby. Programista to trochę zawód artystyczny, są partacze, rzemieślnicy i artyści. W koszmarkach tworzonych w Ruby celują ci, co dopiero przesiedli się z Javy czy PHP na Rubiego. Zobacz prezentację Obiego Fernandeza The Worst Rails Code You’ve Ever Seen.

    W każdym razie w świecie Rubiego dzieje się dużo dobrego. Mamy już szybki JRuby 1.2, jest JRuby Rack, Rails już działa nawet Rubiniusie. Mamy mod_passenger. Ruby ma genialnego RSpec’a o którym nie tylko pehapowcy, ale nawet pythonowcy mogą tylko sobie pomarzyć.

  18. Avatar jiima powiedział about 15 hours later:

    @JZ

    “Rails działa na Rubiniusie”... Chciałbym. Jak na razie z tego co zrozumiałem na InfoQ w zasadzie odpala się na Rubiniusie, a od tego do sensownego działania daleko. Sam site Rubiniusa jest rzadko aktualizowany, developerzy wyraźnie zajmują się bardziej kodowaniem niż promowaniem tego co robią… Może to i dobrze, ale wolałbym nie polować na wieści po różnych sajtach tylko mieć wszystko na miejscu.

    @All

    Co do kasy, zauważyłem że rzeczywiście w środowisku Javy płaci się najlepiej póki co, zaś developerzy PHP zarabiają gorzej. Czasem dużo gorzej – jak dyskutowałem z jednym takim managerem to tłumaczył się że “przecież to PHP a nie Java”. Fakt posiadania przeze mnie certyfikatu nie przekonał go. I może to lepiej… Gorzej że ostatnio usłyszałem podobny argument przy poszukiwaniu pracy w Ruby (ściślej – Rails).

    Być może to też kwestia tego, co używają w Polsce rozmaite firmy do produkcji softu. Małe firemki mielą PHP i mało płacą, giganci używają Javy lub (co ciekawe dużo mniej chętnie) .NET i płacą lepiej. Znajomość “ezoterycznych” języków jak Erlang czy COBOL opłaca się raczej pod względem stabilności a nie płac (jak już dorwiesz robotę, to nie będzie im się spieszyło pozbywać się ciebie). Ruby i Python znajdują się w dość dziwnym miejscu. Zwykle firmy które ich używają to małe przedsiębiorstwa i sytuacja podobna jest do sytuacji z PHP. Co więcej, sporo z nich to startupy o niepewnej przyszłości. Jest kilka dużych firm które “tego” używają lub planują używać, ale żeby tam się dostać, Ruby czy Python musi być raczej “dodatkowym atutem” a nie głównym obiektem specjalizacji.

    Co do świata Ruby, owszem, coraz lepiej w tej dziedzinie. Ale czekam na stabilnego Rubiniusa i Ruby 2.0 (głównie z powodu YARVa niż czegokolwiek innego). Hybrydy w stylu JRuby czy głośno reklamowanego Iron Ruby jakoś mniej mnie pociągają.

  19. Avatar piter powiedział about 15 hours later:

    @jima

    Obawiam się, że zanim doczekasz się Ruby 2.0 z czymś na kształt YARV, to jRuby będzie sporo do przodu. Do tego wszystkiego dochodzi jeszcze jak szybko wiodące frameworki “dociągną” do nowego Ruby (btw, czy ktoś testował Rails na Ruby 1.8.7?).

    Osobiście w jRuby upatruję dużej szansy na polskim rynku – z tego właśnie powodu, że duże firmy piszą w Javie, a pokusa “szybkości składania” aplikacji web’owej w oparciu o taki np. RoR + dostęp do bibliotek Javy jest nie do zignorowania…

  20. Avatar Greg powiedział about 17 hours later:

    @Ris

    Masz jakies konkretne info ze wykop.pl potwierdza mniejsza zarobi php-owcow?

    Jak mozesz to podaj jakiegos linka…..

  21. Avatar Jarosław Zabiełło powiedział about 17 hours later:

    @jiima: Oczywiście, że Rails na Rubiniusie nie nadaje się jeszcze do produkcji. Evan Phoenix mówi, że dopiero teraz zaczynają fazę optymalizacji wydajnościowej. Rubinius jest już stabilny, ale nie jest jeszcze wydajny.

    Co do JRuby to jest już i szybki i stabilnym więc nie wiem o co ci chodzi. IronRuby jest zbyt niedojrzały.

    Nie wiem jak sytuacja w Polsce, ale w Irlandii miałem już niejedną propozycję pracy w Ruby i Pythonie.

  22. Avatar Husio powiedział about 20 hours later:

    @Greg Z tego co się mówiło, wykop.pl został przepisany na PHP, bo nie mogli znaleźć dobrego programisty/ów którzy zajęliby się portalem. Po błędach jakie znajdywali potem użytkownicy, można wnioskować że zatrudnili średnio zaawansowanych koderów.

    Trafiłem dziś na fajny wpis w którym autor porusza podobny temat ( http://mamchenkov.net/wordpress/2008/06/04/where-did-all-the-php-programmers-go/ ) i to chyba wyjaśnia dlaczego wciąż PHP a nie inne języki.

  23. Avatar Jarosław Zabiełło powiedział about 20 hours later:

    @Husio: artykuł z linku ciekawy, ale wnioski z niego są zdecydowanie nieprzychylne dla PHP. Biedny autor artykuł rozpacza że wokół same pehapowe cieniasy i nie ma w czym wybierać. A cieniasy są dlatego że wszyscy co lepsi programiści, jak tylko mają okazję, uciekają gdzie pieprz rośnie od PHP do innych języków, Pythona, Rubiego itd

  24. Avatar Husio powiedział about 21 hours later:

    Hm, moim zdaniem artykuł jest bardzo dobry, a autor zaznaczył, że dobrzy programiści PHP istnieją. Tyle że jest tak jak napisałeś (tak jak i autor wymienionego wpisu, co z resztą nie trudno jest zauważyć chociażby w środowisku railsowców) prawie każdy dobry programista ucieka od PHP.

    Wnioski są nieprzychylne PHP, zgoda. Ale czy to nie jest prawda? W PHP tworzy się naprawdę sporo kodu. Jaka jego część jest warta uwagi? PHP jest na tyle się popularny, że chwyta się go każdy dzieciak i posiadając minimalną wiedzę, coś tam pisze. Wiedza o programowaniu kończy się i zaczyna na prostych skryptach PHP + podstawach zapytań SQL. I wydaje mi się, że takie osoby autor miał na myśli (reszta już dawno pisze w Pythona/Ruby/idt ;)

  25. Avatar Greg powiedział about 22 hours later:

    A co w takim razie robi allegro.pl??

    Najwiekszy polski portal aukcyjny, ktory rozlozyl wiekiego ebay-a na lopatki, oparty jest wlasnie o php?

    Jak to mozna wytlumaczyc? Jakies hipotezy…...

  26. Avatar Greg powiedział about 22 hours later:

    Mala dopiska facebook.com rowniez wybralo PHP.

    Chyba jeszcze duzo wody w Wisle uplynie zanim Ruby zamiecie PHP.

    Mozna by rzecz ze PHP podziela los Windowsa. Jak cos jest latwe, popularne, szybko sie tego uczy to musi byc kiepskie.

    Lepiej brzmi jak uzywa sie czegos co jest super trudne, malo spotykane, profesjonalne. Podobne trendy widzimy w Linuxie, Rybum etc…..

    Zreszta czy to wazne, im wiekszy wybor tym lepiej dla nas.

    No ale to tylko moje osobiste przemyslenia…..

  27. Avatar Greg powiedział about 22 hours later:

    Szok, youtube na PHP: http://youtube.com/results.php?search_query=php&;search_type=&aq=f

    Pozdrawiam,

  28. Avatar Jarosław Zabiełło powiedział about 24 hours later:

    @Greg: Allegro wygrało bo serwery mieli w PL a nie zagranicą i dużo wcześniej zdobyli wielką bazę użytkowników. Ebay.pl nie dość że był opóźniany zewnętrznymi serwerami, to nie przedstawił nic rewolucyjnego w swoje ofercie aby przeciągnąć ludzi z Allegro. Technologia tu akurat nie była najważniejsza.

    @Husio: Dla mnie PHP, poza paroma gotowymi aplikacjami, nie ma nic ciekawego do zaoferowania.

    To z czym musi się zmierzyć branża PHP to ucieczka doświadczonych programistów którzy zetknęli się z Django, Pylons, Rails czy Merb. Zjawisko to nie jest jeszcze masowe tylko dlatego, że te frameworki są relatywnie mało znane. mod_passenger może to zmienić, bo jedną z barier dla Rubiego był do tej pory relatywnie drogi hosting.

    Nie bez znaczenia jest też to, że tych początkujących programistów Rails (dzięki generatorom kodu i dobrej dokumentacji) prowadzi za rączkę od początku do końca. Dzięki temu początkujący railsowiec stworzy zwykle lepszej jakości kod niż początkujący pehapowiec. A ci bardziej doświadczeni, co już otrzaskali się z samy Rubim, pewnie przeskoczą na Merba, bo daje im więcej możliwości.

  29. Avatar Ris powiedział 1 day later:

    @Greg Była na ten temat dyskusja na wykopie dlaczego przeszli z rails na php, ktoś tam napisał, że chodziło o tańszego programistę. Linka nie podam, nie pamiętam, na stronę nie wchodzę już odkąd stała się jednym wielkim śmietnikiem.

  30. Avatar RazorJack powiedział 1 day later:

    Wszędzie tylko same wrzuty w kierunku PHP, nikt nie dostrzega, że jednak PHP było swojego rodzaju przełomem. PHP pokazało firmom, że do napisania prostego sklepu internetowego nie trzeba dziesiątki ekspertów od Javy którzy przez pół roku kawowych dni i bezsennych nocy skodują upragniony sklep. PHP pokazało, że tanimi środkami (hosting za parędziesiąt złotych) i w niedługim czasie można zrealizować aplikacje internetowe. Tego PeHaPowi nie można odmówić.

    Ale czas przekonywania firm już dawno minął, większość już jest uświadomiona. Personal Home Page, do którego próbowano dopisać obiektowość, przestaje być potrzebny. Dziękujemy za wszystko i żegnamy. Czas iść do przodu, a myślę, że mod_passenger w tym bardzo pomoże.

  31. Avatar Jan Koprowski powiedział 3 days later:

    Ktoś sprawdził czy mod_passenger2 odziedziczył po mod_rails zrzucanie uprawnień ?

  32. Avatar riklaunim powiedział 8 days later:

    PHP był czymś nowym, ale kiedyś. Sam zaczynałem od PHP i z czasem szukałem coraz lepszych narzędzi, aż popatrzyłem na Django i tak już zostało. Co do ofert pracy to problemu nie ma, choć publicznie może nie są tak widoczne. W przypadku PHP jest ich pełno, choć nie każdego interesuje praca polegająca na instalowaniu i modyfikacji osCommerce czy Joomli :P

  33. Avatar Pies powiedział 25 days later:

    A ja tam lubię PHP, szczególnie od 5-ki która dodała szereg ciekawych możliwości, typu getters/setters, ArrayAccess. Nie uważam, żeby był to lepszy czy gorszy język niż Ruby lub Python.

    Dziwi mnie agresywny ton niektórych komentarzy tutaj. Naprawdę zależy Wam na tym, żeby PHP zniknęło z powierzchni Ziemi? Wydaje mi się, że powinniście raczej walczyć o to, by programista miał swobodę wyboru narzędzi, a nie by mu tą swobodę zastąpić Waszym ulubionym językiem/frameworkiem.

    Przyznam, że nigdy jeszcze na serio nie programowałem ani w Ruby, ani w Pythonie. Próbowałem kiedyś ugryźć Rails, ale skończyło się na tym, że napisałem sobie w PHP jego odpowiednik (CakePHP).

    Myślę, że powinniście trochę się wyluzować na punkcie PHP—chyba dużo bardziej istotne dla nas wszystkich jest to, że języki skryptowe generalnie stają się mainstreamem programowania. Którego z nich się używa ma moim zdaniem drugorzędne znaczenie.

  34. Avatar Maciek powiedział about 1 month later:

    ” ...jeśli mod_passenger dla Pythona będzie działał tak sprawnie jak dla Rails, to będziemy mieć trywialne przeładowywanie aplikacji Django bez konieczności restartu całego Apache’a.”

    Jest to mozliwe juz od dluzszej chwili za pomoca mod_wsgi, ktore szczerze polecam Pythonowcom. Rownie banalne jak mod_passenger 2.0, jednak bardziej skrojone na miare

(leave url/email »)

   Pomoc języka formatowania Obejrzyj komentarz