Sprzątanie po PHP czyli Passenger 2.0 i Ruby Enterprise 1.0
Posted by 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:
- Passenger 2.0 na GitHub.com dla tych, co chcą już teraz zainstalować mod_passenger 2.0 (ja już to zainstalowałem)
Update
2008-06-25
Phusion Passenger 2.0 and Ruby Enterprise Edition from Carl Youngblood on Vimeo


Kanały IRC![[Dilber w Onecie]](/images/larry.png)


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.
@Greg: Przewodzi w czym ? Moim zdaniem wszyscy ktorzy moga (poza studentami) uciekaja z PHP.
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 ;)
@Jacek Becela:
Ja już to robię od jakiegoś czasu i jestem wielce zadowolony :-) Polecam!
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.
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?
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)
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?
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ę…
@Greg Wykop.pl przeszedł na php raczej z powodu tańszego programisty a nie szybkości działania.
@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…
@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?
Oj, Jarek, Jarek, fantasta z Ciebie. Zobacz komu rośnie w rankingach popularności języków…
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 :)
Właśnie przeniosłem swoje lokalne/developerskie sajty na mod_rails, a na firmowym VPSie naszego bloga. DOSKONAŁE. 10/10, żegnaj Mongrelu :)
@Greg Wydaje się mi, że programistom php płaci się mniej, wykop.pl to potwierdza.
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ć.
@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ą.
@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…
@Ris
Masz jakies konkretne info ze wykop.pl potwierdza mniejsza zarobi php-owcow?
Jak mozesz to podaj jakiegos linka…..
@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.
@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.
@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
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 ;)
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…...
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…..
Szok, youtube na PHP: http://youtube.com/results.php?search_query=php&;search_type=&aq=f
Pozdrawiam,
@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.
@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.
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.
Ktoś sprawdził czy mod_passenger2 odziedziczył po mod_rails zrzucanie uprawnień ?
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
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.
” ...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