Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Ruby wypiera php ?
Forum PHP.pl > Inne > Hydepark
Stron: 1, 2
NuLL
Cytat(Cysiaczek @ 24.05.2007, 14:42:20 ) *
[wniosek]Sedno sprawy - nie język ważny, ale ludzie[/wniosek]

[innywniosek]Chocby niewiadomo jak byl dobry ograniczen fizycznych nie przekroczysz[/innywniosek]
splatch
Panowie, śmieszy mnie końcówka tej rozmowy, jak i w ogóle cały temat. Ruby nie wyprze PHP, ASP.NET 3.0 nie wyprze PHP, tak samo jak i .NET 3.0 nie zabije J2EE jak i C# nie wyeliminuje Javy. Możecie sobie tutaj dywagować i zakładać cuda, ale fakt jest jeden, różnice i spektrum zastosowań każdego z języków jest inne. Nie jest możliwe, by Ruby, które tak na prawdę ujrzało światło dzienne świat ujrzał kilka kilka lat temu wyparło PHP, które jest praktycznie 2 razy starsze od początku było znacznie popularniejsze, wniosek z tego taki, że Ruby potrzebuje jeszcze ponad 5 lat by (teoretycznie) zrównać się z PHP, ale tego nie zrobi, ponieważ w chwili obecnej specyfika rynku jest zupełnie inna.

W chwili gdy PHP zaczynało do oprogramowania stron internetowych można było użyć Perla, C, ASP i JSP. Wszystkie te języki/technologie były jednak zbyt trudne i ciężkie w utrzymaniu. PHP odcięło się od tego dając lekką składnię i prostą konfigurację. Po prostu - prosty język do prostych aplikacji. Zwróćcie uwagę, że na tej płaszczyźnie PHP nie miało absolutnie żadnej konkurencji. Ba! Python, który zaczynał wcześniej niż Ruby do chwili obecnej nie święci triumfów w rankingach popularności. Spójrzcie na rynek pracy - przecież tam wciąż nie ma Ruby, ono praktycznie tam nie istnieje.

Zastanówmy się, co musi zrobić Ruby, by pobić PHP.. ok, Ruby ma fajną składnię, ale podobne konstrukcje były w Perlu oraz Pythonie i mimo wszystko nie stosuje się tego powszechnie do www, ma dedykowany serwer, ale chyba każdy kto tu się obraca jest w stanie powiedzieć co znaczy LAMP (tudzież WAMP).
Ruby ma mniej czy bardziej doskonałe Ruby on Rails, ale przecież sam .NET istnieje od lat i nie jest używany na co dzień w projektach pisanych w małych-średnich firmach. Bardzo szybko powstały (względne) porty do PHP - Cake, Symfony, PHP on Trax i tak dalej, nie mówiąc już o najgroźniejszym konkurencie dla RoR - Django, framework, który bazując na konwencjach RoR daje odczuwalnie większą wydajność. Czyżby Ruby musiał konkurować nie tylko z PHP ale i z Pythonem?

Zdefiniujmy niszę Ruby, gdzie on ma trafić? Wydaje mi się, że korporacyjne zastosowania odpadają bez najmniejszej dyskusji, tam dominuje .NET i Java i prędko miejsca nie ustąpią ani developerzy ani platformy. Tam Ruby nawet z nie wiadomo jaką propagandą nie ma szans w starciu z marketingiem Microsoftu, Suna i latami doświadczeń osób tam pracujących.

Zatem tradycyjne, lekkie stronki, bądź aplikacje "desktopowe". Tak jak wcześniej pisałem, czasy się zmieniły i Ruby nie oferuje w moim odczuciu nic (bądź odczuwalnie niewiele) ponad standard. Tu jest już PHP, które siedzi na tronie od lat, Python, który ostatnimi czasy dzięki Django (?) powiedzmy jest bardziej zauważalny. Co do aplikacji desktopowych - na tym polu Ruby ma zdecydowaną przewagę w stosunku do PHP (wielowątkowość), ale tu jest od dawna pełne grono języków - począwszy od C# i Javy przez C, C++ na Pythonie kończąc. Z drugiej strony na tą chwilę tradycyjne aplikacje są zepchnięte do konta przez aplikacje internetowe, które pisze się szybciej (?) i łatwiej (?).

Zrozumcie, że w obecnej sytuacji nie ma szans na rewolucję i masową migrację z PHP do Ruby. Jest stanowczo za późno. Ruby, może, owszem zgromadzić grono zwolenników, ale czy nie ograniczy się do tego, co się dzieje z Pythonem?
Osobiście jestem wdzięczny za Ruby on Rails jego developerom, ale nie jest to powód, przez który rzucę PHP(www) i Javę(www + desktopy), ponieważ to, co mogłem dostać od RoR dostaję już w Symfony czy w Grails-ach. Smutna, dla niektórych, prawda jest taka, że gdyby Ruby wchodziło wraz z RoR 5-7 lat temu proporcje mogły by być zupełnie inne i to PHP mogło by być w opozycji.

Edit: Sprostowania po poście Dandeliona.
mike
Amen.
Cysiaczek
Wódki mu dajcie : >
nasty
Sorry za offtopic, ale nie moglem się powstrzymać winksmiley.jpg

To co w Java można zrobić tak:
Kod
new Date(new Date().getTime() - 20 * 60 * 1000)

W Ruby robi się tak
Kod
20.minutes.ago


To ja dziękuje za taki język tongue.gif
sztosz
Za Javę, czy Ruby? Bo mi się bardziej podoba Ruby w tym przykładzie winksmiley.jpg
Dandelion
praca a ruby

http://www.itjobswatch.co.uk/jobs/uk/ruby.do

Zwroćcie uwage na olbrzymi wzrost w ciagu ostatniego roku

Wydaje mi sie ze na europejskim rynku ruby/ror zostaly zauwazone niedawno dlatego nie ma takiego zainteresowania jak np na rynku amerykanskim

Co do wieku ruby i php

Cytat
8 czerwca 1995 roku autor udostępnił kod źródłowy pod nazwą PHP Tools 1.0.


Cytat
Ruby to interpretowany, w pełni obiektowy i dynamicznie typowany język programowania stworzony w 1995 roku przez Yukihiro Matsumoto


Co do pisania stron.

Rubyonrails jest jednym z niewielu frameworkow dostepnych dla ruby dlatego moze liczyc na wsparcie calej spolecznosci ktora nie uczestniczy w wielu projektach z tego wzgledu bedzie on szybciej rozwijany niz konkurencyjne projekty w php. Nie ma tez obawy ze projekt nagle upadnie co niestety ma miejsce w swiecie php
splatch
Cytat(Dandelion @ 26.05.2007, 19:02:41 ) *
praca a ruby

http://www.itjobswatch.co.uk/jobs/uk/ruby.do
Zwroćcie uwage na olbrzymi wzrost w ciagu ostatniego roku

Wzrost rzędu 141 w stosunku do PHPowych 16 rzeczywiście może działać na wyobraźnię. Domniemam, że przy PHP rynek angielski jest praktycznie nasycony, te 16 punktów to raczej rotacja ludzi z branży + zgłoszone drobne zapotrzebowanie na nowych ludzi. W przypadku Ruby rynek zgłasza wciąż zapotrzebowanie na ludzi, ponieważ (jak mi się wydaje) część firm zaczyna migrować (o tym dalej), zatem zgłoszenie popytu na programistów Ruby jest czymś naturalnym. Pragnę zwrócić uwagę na skale wykresów - dla PHP skala 0-6%, dla Ruby 0-0.5% (no i dla porównania Java 0-40%).

Zapytałem Google co sądzi o popularności pracy w PHP i Ruby.
praca+ruby - 290,000.
praca+php - 2,310,000.
Teoretycznie, 7,9x więcej pracy dla programistów PHP.

job+ruby - 26,700,000
job+php - 221,000,000.
Teoretycznie, 8x więcej pracy dla programistów PHP.

Cytat(Dandelion @ 26.05.2007, 19:02:41 ) *
Co do wieku ruby i php
Cytat
8 czerwca 1995 roku autor udostępnił kod źródłowy pod nazwą PHP Tools 1.0.

Cytat
Ruby to interpretowany, w pełni obiektowy i dynamicznie typowany język programowania stworzony w 1995 roku przez Yukihiro Matsumoto

Troszkę się rozpędziłem w swoim poprzednim poście. winksmiley.jpg Powiedzmy, że w ramach sprostowania zapytam, kiedy pierwszy raz usłyszeliście o Ruby? Ja osobiście jakieś półtorej roku temu, no najwcześniej dwa lata temu, kiedy już programowałem kilka lat w PHP. Być może nie jest to najlepszy argument, ale ten język po prostu pokazał się dopiero jakiś czas temu i moje stwierdzenie o tym, że Ruby ma 5 lat wynikało właśnie z tego (mój błąd - nie sprawdziłem tego dokładnie). Popularność Ruby zaczęła odczuwalnie rosnąć dopiero po ukazaniu się Ruby on Rails w lipcu 2004, i nie okłamujmy się, głównie (w 95% przypadków) dzięki temu frameworkowi Ruby zawdzięcza wciąż rosnącą popularność. Rok później ukazało się Django, dzięki czemu popularność Pythona również zaczęła szybciej rosnąć. Czyli tak jak wspominałem, na istnieniu RoR zyskuje nie tylko tylko Ruby, ale i Python, fakt, że znacznie mniej PHP, ale możemy dojść do kuriozalnego wniosku, że ten jedyny framework może być największą zgubą Ruby. Wystarczy dobry port (vide szybszy jak to się ma w przypadku Django) i najważniejszy atut Ruby zostaje obalony. Nota bene, wykresy PHP i Ruby nie są lustrzanymi odbiciami, zatem koegzystencja wszystkich tych języków jest możliwa, bez straty dla pozostałych (w chwili obecnej ich popularność spada, wcześniej mniej-więcej "proporcjonalnie" rosła).

Cytat(Dandelion @ 26.05.2007, 19:02:41 ) *
Co do pisania stron.
Rubyonrails jest jednym z niewielu frameworkow dostępnych dla ruby dlatego może liczyć na wsparcie całej społeczności która nie uczestniczy w wielu projektach z tego względu będzie on szybciej rozwijany niż konkurencyjne projekty w php. Nie ma tez obawy ze projekt nagle upadnie co niestety ma miejsce w świecie php

Ten argument akurat uważam za nietrafiony. To, że Ruby ma 1 framework a PHP znacznie więcej wynika przede wszystkim z wielkości społeczności. Drugi aspekt tego wszystkiego jest taki, że Ci, którzy korzystają z Ruby na potrzeby aplikacji webowych nie wyobrażają sobie pracy z czymś innym niż RoR. Błędne koło brak nowości czy brak potrzeby?

Jeszcze jeden aspekt, którego nie poruszałem wcześniej, a który pragnę nadmienić. To, że Ruby do tej pory wciąż zyskuje moim zdaniem wynika głównie z tego, że wiele małych i średnich firm migruje właśnie ze względu na RoR. Dlaczego małe i średnie? Ano dlatego, że projekty, które realizują to standardowe jedno-dwu-trzy miesięczne fast foody + ewentualny support. W świecie większych projektów Ruby nie miało nawet większej szansy na zaistnienie.
Jak też wcześniej pisałem, nie ma najmniejszych szans w starciu z "enterprise". Sam trafiłem jakiś czas temu do projektu aplikacji dla domu maklerskiego, który był realizowany na platformie sprzed dobrych 10 lat (nadającej się do wyrzucenia). Dlaczego bank jechał na tym starociu? Ano dlatego, że ma kadrę, która utrzymuje już systemy napisane w ten sam sposób, infrastrukturę i licencje. Nie musi inwestować w nic więcej. Nie wspomnę już o tym, że większość systemów, które obsługują transakcje w bankach jest pisanych w Cobolu. Wszędzie tam Ruby, jak i inne młodsze języki nie mają prawa wstępu.
Ten przykład jest może przesadzony, ale chciałem podkreślić, że jest wiele firm, które rozwija soft w pewnym języku (PHP, Java) od dłuższego czasu. Przejście na Ruby nie jest możliwe ot, tak, ponieważ cała praca włożona do tej pory w rozwój softu i zdobycie pozycji rynkowej pójdzie na marne. Nie wspomnę już o przekwalifikowaniu programistów, co może być również sporym problemem (ich niechęć i/lub brak entuzjazmu), rodzącym napięcia a na pewno pociągającym koszty. Tworzenia typowych aplikacji biznesowych to nie freelancerka, gdzie bierzesz to narzędzie, które Ci się podoba i każesz klientowi kupić konto na tym a nie innym serwerze.
rashid
Strasznie gdybasz Splatch. Czytajac Twoje wypowiedzi mozna dojsc do wniosku, ze jakikolwiek postep jest niemozliwy, bo sa juz starsze rozwiazania robiace cos podobnego.

PHP byl super rozwiazaniem kiedy sie pojawil, bo zdejmowal z karku progarmisty cale to zamieszanie zwiazane z CGI, wypelnianiem naglowkow HTTP itd. Do tego byl latwy do opanowania i prosty w instalacji dla potrzeb hostingu. Mysle jednak, ze zaden doswiadczony programista PHP nie zaprzeczy, ze jezyk jest chaotyczny, niezorganizowany i bez jasnej wizji. Nie jest to ogromna przeszkoda w rozwijaniu aplikacji, ale wystarcza do powaznego utrudnienia w traktowaniu PHP jako powaznej platformy.

Obecnie priorytetami w rozwijaniu aplikacji webowych staja sie: bezpieczenstwo, szybkosc tworzenia prototypow i standardyzacja. RoR, a takze inne podobne frameworki, sprawdza sie tu znakomicie dzieki swojej uporzadkowanej strukturze i "wymuszeniach" w takich kwestiach jak testy. PHP nie jest w stanie podjac tutaj walki, bo wciaz ulubionym sportem jest pisanie nowych frameworkow. Kluczowe pytanie w rozwiazaniach biznesowych "A jak to moge zintegrowac z ...?" w PHP ma stala odpowiedz "Przysiadziemy i napiszemy skrypty integracyjne". Zend juz dawno sie polapal, ze to slepa uliczka, dlatego ruszyl w kierunku pisania wlasnego frameworka. Zend Framework, obojetnie co o nim mowia w press release'ach, ma na celu wykoszenie czesci chalupniczo wykonanych frameworkow i wprowadzenie odrobiny standardyzacji, zeby PHP zaczal byc traktowany powazniej. Mial to zrobic lata temu PEAR, ale sie rozbil o smieszne debaty na temat tego, czy zauwazaja istnienie PHP5.

Szybkosc PHP jest niewatpliwie atutem, ale warto usiasc i przeliczyc, czy to sie oplaca. Dobrze napisana aplikacja bedzie sie skalowala poziomo, na maszynach za $1000. Biorac pod uwage koszty pracy programistow i uwzgledniajac lepsza wydajnosc programowania w RoR (to jest fakt, nie spotkalem jeszcze nikogo kto by usiadl do RoR i stwierdzil, ze pracuje wolniej) okazuje sie, ze po miesiacu/dwoch zwraca nam sie koszt dokupienia 5-10 maszyn i od tego czasu RoR jest bardziej oplacalny i rownie szybki jak PHP.

Ruby jako jezyk zdobywa szeroka popularnosc dopiero ostatnio, ale od wielu lat korzystaja z niego ludzie, ktorzy zeby zjedli na Smalltalku. O ile sam Smalltalk ginie juz w mrokach przeszlosci, to idee z niego sie wywodzace stanowia podstawe wspolczesnej informatyki.

Na koniec moze zacytuje wypowiedz Martina Fowlera z Thoughtworks (www.thoughtworks.co.uk), ktory w niedawnym podcascie tak podsumowal spektrum ich zlecen z ostatniego roku: .NET spada, JAVA trzyma sie na swoim poziomie, Ruby eksplodowalo i aktualnie stanowi 40% naszych zamowien. To sa ludzie, ktorzy napisali m. in. system zarzadzajacy ochrona zdrowia w Wielkiej Brytanii.
splatch
Cytat(rashid @ 28.05.2007, 11:12:19 ) *
Strasznie gdybasz Splatch. Czytajac Twoje wypowiedzi mozna dojsc do wniosku, ze jakikolwiek postep jest niemozliwy, bo sa juz starsze rozwiazania robiace cos podobnego.

Gdybam bo nie jestem guru, które ma władzę i moc wydawania samosprawdzających się przepowiedni. Co do postępu. Co do stwierdzenia ze starszymi - takie są polskie realia i nie sądzę by światowe pod tym względem się znacznie różniły. Żadna instytucja posiadająca gotowe platformy nie będzie rzucała wszystkiego na rzecz Ruby, bo jest on jest "trendy" co najwyżej zainwestuje w adaptację istniejących technologii (vide Grails dla Javy, Django dla Pythona, Symfony dla PHP).

Cytat(rashid @ 28.05.2007, 11:12:19 ) *
PHP byl super rozwiazaniem kiedy sie pojawil, bo zdejmowal z karku progarmisty cale to zamieszanie zwiazane z CGI, wypelnianiem naglowkow HTTP itd. Do tego byl latwy do opanowania i prosty w instalacji dla potrzeb hostingu. Mysle jednak, ze zaden doswiadczony programista PHP nie zaprzeczy, ze jezyk jest chaotyczny, niezorganizowany i bez jasnej wizji. Nie jest to ogromna przeszkoda w rozwijaniu aplikacji, ale wystarcza do powaznego utrudnienia w traktowaniu PHP jako powaznej platformy.

Nikt tutaj nie wyciągał tego argumentu wcześniej, ale równie dobrze można dojść do wniosku, że doświadczonemu programiście PHP nie przeszkadza to w żaden sposób. PHP przecież pozostaje do "stronek" i do niczego więcej.

Cytat(rashid @ 28.05.2007, 11:12:19 ) *
Obecnie priorytetami w rozwijaniu aplikacji webowych staja sie: bezpieczenstwo, szybkosc tworzenia prototypow i standardyzacja. RoR, a takze inne podobne frameworki, sprawdza sie tu znakomicie dzieki swojej uporzadkowanej strukturze i "wymuszeniach" w takich kwestiach jak testy. PHP nie jest w stanie podjac tutaj walki, bo wciaz ulubionym sportem jest pisanie nowych frameworkow.

To, że powstają nowe narzędzia nie znaczy, że na rynku nie ma liderów. Porównując to do Javy - tam pojawia się nowy framework/znacząca biblioteka bardzo często, można powiedzieć, że co pół roku jest jakiś "hit", który wnosi coś nowego, a sam język czy też J2EE nie traci popularności, więc dlaczego PHP by miało? Po prostu nowości czekają na lepsze czasy, podczas gdy na rynku dominują starzy znajomi.

Cytat(rashid @ 28.05.2007, 11:12:19 ) *
Kluczowe pytanie w rozwiazaniach biznesowych "A jak to moge zintegrowac z ...?" w PHP ma stala odpowiedz "Przysiadziemy i napiszemy skrypty integracyjne".

Zintegrujemy z ... ? W jaki sposób miałaby przebiegać owa integracja, co ma się kryć pod tym tajemniczym zdaniem działającym na niekorzyść PHP?

Cytat(rashid @ 28.05.2007, 11:12:19 ) *
Zend juz dawno sie polapal, ze to slepa uliczka, dlatego ruszyl w kierunku pisania wlasnego frameworka. Zend Framework, obojetnie co o nim mowia w press release'ach, ma na celu wykoszenie czesci chalupniczo wykonanych frameworkow i wprowadzenie odrobiny standardyzacji, zeby PHP zaczal byc traktowany powazniej. Mial to zrobic lata temu PEAR, ale sie rozbil o smieszne debaty na temat tego, czy zauwazaja istnienie PHP5.

Już teraz możemy stwierdzić, że Zendowi się to nie uda, ponieważ tworzy w gruncie rzeczy drugiego PEAR'a, ale to raczej temat na oddzielną dyskusję.

Cytat(rashid @ 28.05.2007, 11:12:19 ) *
Szybkosc PHP jest niewatpliwie atutem, ale warto usiasc i przeliczyc, czy to sie oplaca. Dobrze napisana aplikacja bedzie sie skalowala poziomo, na maszynach za $1000. Biorac pod uwage koszty pracy programistow i uwzgledniajac lepsza wydajnosc programowania w RoR (to jest fakt, nie spotkalem jeszcze nikogo kto by usiadl do RoR i stwierdzil, ze pracuje wolniej) okazuje sie, ze po miesiacu/dwoch zwraca nam sie koszt dokupienia 5-10 maszyn i od tego czasu RoR jest bardziej oplacalny i rownie szybki jak PHP.

Weźmy pod uwagę też, to, że niejedna aplikacja J2EE działa szybciej niż ta oparta Ruby on Rails (nie wiem jak ma się sprawa z Grails).

Cytat(rashid @ 28.05.2007, 11:12:19 ) *
Ruby jako jezyk zdobywa szeroka popularnosc dopiero ostatnio, ale od wielu lat korzystaja z niego ludzie, ktorzy zeby zjedli na Smalltalku. O ile sam Smalltalk ginie juz w mrokach przeszlosci, to idee z niego sie wywodzace stanowia podstawe wspolczesnej informatyki.

Nie mniej faktem jest, że to nie korzenie Ruby ale RoR uratowały ten język od zakończenia takiego jakiego doczekał się Smalltalk, znaczy wymarcia. Swoją drogą jeśli idzie o migrację ludzi z Smalltalka to IBM swojego czasu zatrudniał ich najwięcej i zostali oni przekwalifikowani na Javę (po zamknięciu Visual AGE pisanego w Smalltalku zaczęli pisać Eclipse).

Cytat(rashid @ 28.05.2007, 11:12:19 ) *
Na koniec moze zacytuje wypowiedz Martina Fowlera z Thoughtworks (www.thoughtworks.co.uk), ktory w niedawnym podcascie tak podsumowal spektrum ich zlecen z ostatniego roku: .NET spada, JAVA trzyma sie na swoim poziomie, Ruby eksplodowalo i aktualnie stanowi 40% naszych zamowien. To sa ludzie, ktorzy napisali m. in. system zarzadzajacy ochrona zdrowia w Wielkiej Brytanii.

Nie można wnioskować tego tylko na podstawie jednej firmy. Nasza branża jest tak wielka, że nawet to w czym pisze Microsoft/Sun/Oracle nie rzutuje na resztę a co dopiero "jakaś-tam" firma software'owa? Idąc tym tropem możemy wyciągnąć wniosek, że brak ofert pracy z Prokomu znaczy, że polski rynek stoi w miejscu, albo to, że piszą kijowy soft znaczy, że ogólnie cały polski rynek jest do niczego, a tak na pewno nie jest.
Zachowania jednej firmy, nawet takiej jak Thoughtworks nie będą odzwierciedlać trendów europejskich (porównaj "spadek" .NETa w Anglii) z tym, co powiedziałeś. Być może te trendy są bardziej zbieżne z amerykańskimi, ale nie znam miejsca, gdzie mógłbym to sprawdzić. Super, że Ruby wbija się tam, gdzie PHP do tej pory nie miało prawa wejścia, ale i tak podtrzymuję zdanie, że przed poważnymi wyzwaniami (banki, instytucje finansowe) drzwi dla Ruby jak i RoR są dosłownie zatrzaśnięte.

Tak jak pisałem w poprzednim poście, PHP, Ruby i Java są w stanie żyć obok siebie bez większych problemów, ale na pewno nie może być mowy o wypieraniu PHP przez Ruby (a taki jest temat tego wątku), ponieważ jest to po prostu niemożliwe.
Cysiaczek
@rashid - Uważam, że splatch ma sporo racji. Przedstawił stan faktyczny dotyczący ilości ofert pracy i wskazał przyczynę takiego stanu rzeczy, czyli RoR, który jest mocno promowany. Ty z kolei masz rację, że PHP jest językiem dość chaotycznym. Zapewne masz też rację, że inwestycja w RoR szybko sie zwróci. Pozwolę sobie jednak mieć odmienne zdanie co do samego pisania aplikacji z użyciem RoR (tylko widziałem przykłady). Ze smutkiem stwierdzam, że nadaje sie to tylko do prostych aplikacji www, które nie wyjdą poza prostego CMS'a. Osiągniesz zatem dokładnie tyle, ile w php z użyciem... powiedzmy cakePHP + propel (nie wchodźmy w szczegóły).
Może to jest tak, że nagła "eksplozja" zamówień na aplikacje pisane w Rubym jest związana z niewiedzą? Kiedy analityk usłyszy opinie na temat języka, że jest lepszy, bardziej obiektowy, najlepiej rozwijany, ma super framework, który napisze bloga używając 50 linijek kodu itp., to poleci do szefa i zarekomenduje go. Powie mu: "Szefie, wygląda na to, że nasz serwis najlepiej napisać w Rubym, bo to lepsza technologia niż PHP, która jest dla dzieciaków i wszyscy się z niej wycofują."
Ruby jest po prostu na fali. Za używaniem go zamiast php nie przemawiają żadne merytoryczne argumenty. Ot. Kolejny język.
To, że sięgają po niego w większości osoby z doświadczeniem, jest jego jedyną zaletą, bo rzeczywiście łatwiej o profesjonalistę.

Odniosę się jeszcze do tych sławetnych 50 linijek kodu.
Prezentacja niczego sobie - robi wrażenie... do czasu, aż zadasz sobie pytanie, co tak naprawdę tam się dzieje.
Dzieje się niewiele. Upraszczając: Tabela bazy danych mapowana na obiekt i połączona z generatorem formów + walidator. Dzieki temu możemy wygenerować formularz i go obsłużyć. Nic więcej. To nawet nie jest strona www, tylko jej fragment, przez pomyłkę chyba nazywany blogiem w 15 minut.

Pozdrawiam.
mike
W Symfony można wygenerować wszystkie obiekty ORM dla całej bazy jednym zapytaniem.
Potem można wygenerowac całutki panel admina do zarządzania tym, mało tego można to wszystko sparametryzować sobie.

Nic szczególnego, ma to i Symfony i Django.

RoR nie daje nic szczególnego w tym zakresie.

Ponadato, powiedzmy szczerze (zresztą ~splatch już to zaznaczył) Ruby bez RoR byłby niczym.
PHP go kładzie nawet gdyby nie miało zadnego frameworka.
rashid
@cysiaczek - nie zgadzam sie ze stwierdzeniem, ze RoR sie nadaje tylko do prostych aplikacji. Do nich jest on swietny, ale nie widzialem dotychczas nic, co utrudnialoby prace nad wiekszymi aplikacjami. Zgadzam sie, ze czesto podobne rezultaty mozna osiagnac w roznych portach RoR (np. Cake), jednak porty maja do siebie to, ze sa zawsze odrobine wsteczne.

W porzadnej firmie analityk ma niewiele do powiedzenia w kwestii wykorzystywanej platformy. Zarzady zdaja sobie sprawe z dosyc powszechnie znanego pociagu do nowinek wsrod personelu technicznego i staraja sie filtrowac tendencje do wyrzucania w bloto wszystkiego co ma wiecej niz 2 lata.

Sila RoR nie skupia sie na zmniejszaniu ilosci tworzonego kodu, tylko w zaoszczedzaniu czasu programisty spedzanego na powtarzalnych zadaniach. Sam rowniez zaczalem sie przygladac RoR po slawnym screencascie z "blogiem" i zdecydowalem sie wowczas poswiecic troche czasu na przyjrzenie sie tej technologii z bliska. Usiadlem, pokonfigurowalem narzedzia i napisalem kilka prostych serwisikow na wlasne potrzeby. Tego nie pokaze zaden screencast. Trzeba usiasc i popisac troche kodu, zeby zauwazyc, ze "cos w tym jest". Wszystkim polecam to goraco, z pewnoscia nie uznacie tego czasu za stracony. Nawet jesli nie zdecydujecie sie na zmiane wykorzystywanej platformy, to sadze ze wylapiecie kilka ciekawych pomyslow do wykorzystania w PHP. Z pewnoscia nie warto oceniac RoR po pozorach ze screencastow i blogow, lepiej sprawdzic samodzielnie.
Cysiaczek
@rashid - Ależ ja nie mówię, że nie warto ruszać Ruby'ego - sam noszę się z myślą nauki tego języka (irytuje mnie składnia), a niektóre rozwiązania podpatrzyłem snitch.gif. Ujmę to inaczej. Pytanie: Co wybrać, czego używać - sprowadza się do pytania - czy wolisz lody truskawkowe, czy waniliowe?

Pozdrawiam programistów erROR snitch.gif
sztosz
Cytat(Cysiaczek @ 28.05.2007, 12:44:34 ) *
Pytanie: Co wybrać, czego używać - sprowadza się do pytania - czy wolisz lody truskawkowe, czy waniliowe?


Najlepiej to widać na przykładzie który podał ~Nasty. Nie zmienisz prosto ludzkich nawyków, przyzwyczajeń, nie wiem nawet jak trafnymi i wyszukanymi argumentami a propos znakomitości jakiegoś języka.
NuLL
Cytat
W Symfony można wygenerować wszystkie obiekty ORM dla całej bazy jednym zapytaniem.Potem można wygenerowac całutki panel admina do zarządzania tym, mało tego można to wszystko sparametryzować sobie.Nic szczególnego, ma to i Symfony i Django.

Przyjrzyj sie jeszcze wydajnosci obu rozwiazan winksmiley.jpg
Radarek
Myślałem, że ten temat umarł, a tu proszę :-).

Prawdopodobnie będzie to dość dłuższa wypowiedź więc proszę o uzbrojenie się w cierpliwość :-).

[quote]
Filozofią PHP jest tworzenie dynamicznych aplikacji przeznaczonych dla www.
[/quote]
Hm i to jest filozofia? Ze świata Rubiego i Railsów dostałem na wejściu: DRY, Convention over configuration i testy unitowe (chodzi o to, że sam framework "prosi" mnie o pisanie testów).

[quote]
Można modyfikować metody
[/quote]
Jakiś przykład? Rozumiem też, że jak w każdym porządnym języku tak i w php wszystkie obiekty dziedziczą po bazowym (przeważnie Object - java, ruby...)?

[quote]
Istnieją aplikacje wspomagające testy jednostkowych.
[/quote]
Tak wiem. Tylko co mi po testach, które wywalają się kompletnie, gdy metoda zostanie wywołana na obiekcie null? (cały proces testów jest przerwany, bo taka sytuacja kończy się fatalem w php, a testy po poprawieniu błędu trzeba uruchamiać od nowa)

[quote]
Architektura MVC - i to jest trudne?
[/quote]
Każdy pattern w teori nie jest trudny. Ale co innego teoria a co innego praktyka. Nie wystarczy mieć w aplikacji kontrolery, modele i widoki, żeby aplikacja była zgodna z architekturą MVC. Bez obrazy, ale znam przekrój społeczności PHP i z 90% ludzi niewiele wychodzi poza "gołego" php (frameworki itp).

[quote]
Design patterny - zna każdy, kto poważnie traktuje swoje zajecie
Framework - myślę, że coraz więcej osób zna, a wielu napisało swój
[/quote]
To jest właśnie "choroba" phpowców. Jest 20 frameworków, ale ja koniecznie muszę napisać swój. To własnie przez to php czekał na frameworki z prawdziwego zdarzenia tak długo.


[quote]
Ehhh. Guzik, a nie wyprze PHP. Jakby ktoś zadał sobie trud obejrzenia changeloga przy każdym wydaniu, zainteresował się jak wygląda obecnie SPL (big hołd dla developerów : P), czy obsługa błędów od php 5.2 (można przechwycić), to doszedłby do jedynego słusznego wniosku... php się rozwija.
[/quote]
Jest to jednak niewielki rozwój. Niestety, ale php upiera się ciągle przy kompatybilności wstecz i płaci za to cały czas. Język był od początku strukturalny i nagle nie stanie się super obiektowy itp. Mało tego. Sam rozwój w php polega na tym, że próbuje coś tam poodgapiać z różnych języków, a od siebie nie daje praktycznie nic.

[quote]
Framework Rails widziałem w akcji i przeanalizowałem pod kątem "filozofii" tworzenia oprogramowania. Jeśli to ma być wyznacznik dla aplikacji www, to ja dziękuję, bo nie ma tam nic, czego nie ma w PHP lub czego w php nie można napisać.
Z całym szacunkiem dla tego języka, ale do php to jeszcze ma kawałek.
[/quote]
Oczywistym jest, że w Php napiszesz sobie każdą aplikację jaką da się napisać w Ruby. Bo czemu nie. Chodzi o koszty, wygodę pisania a przede wszystkim możliwość utrzymania aplikacji w przyszłości (po 2 latach patrzysz na kod i zastanawiasz się o co kaman). Dynamizm języka, metaprogramowanie, spójne, logiczne i proste api, eskpresja, przejrzystość kodu - o to się sprawa rozchodzi (i tutaj już php kuleje). Bo jeśli jest Ci to obojętne to możesz pisać w asmie - tam też można napisać wszystko :-).


[quote]
[ciekawostka]Wykop ma być przepisany z powrotem na PHP ze względów wydajnościowych.[/ciekawostka]
[/quote]

Najgorzej to jest gdzieś coś usłyszeć i puszczać bzdury w świat. W komentarzu do wpisu http://yashke.com/2007/05/13/no-luv-4-ror-...koppl/#comments Pan Tomasz Drożdżyński napisał:
[quote]
Oto trzy równorzędne powody:

Po pierwsze: Wydajność. Porównanie wydajności RoR do frameworków PHP’owych nie ma sensu, ponieważ piszemy w czystym PHP. Wydajność nie jest problemem bieżącym, mamy dobry serwer, który zupełnie wytrzymuje obecne obciążenie strony. Lecz ilość odwiedzających rośnie z dnia na dzień w dość szybkim tempie.

Po pierwsze: Ludzie. Aktualnie dysponujemy 3 osobowym zespołem programistów PHP. Dzięki przewadze w popularności PHP nad Rubym, każdy z członków zespołu może być szybko zastąpiony, bardzo łatwo znaleźć dodatkowe, doświadczone osoby do pracy.

Po pierwsze: Moment. Zdecydowaliśmy się na taki krok teraz, póki serwis jest w miarę prostą aplikacją.
[/quote]
Podkreślam: "ponieważ piszemy w czystym PHP". W testach wydajnościowych różnych frameworków (w tym django, rails i symfony) można poczytać na stronie http://www.alrond.com/en/2007/jan/25/perfo...ing-frameworks/. No więc Panowie, czemu nie programujecie w Pythonie, skoro ma tak dobrą wydajność?
Poza tym, odkąd wykop jest na dedyku to nie zauważyłem by chodził wolno. To taka moja dygresja tylko.

[quote]
[kontra-ciekawostka]sa instalacje rails wyciagajace 4000 requestow na sekunde[/kontra-ciekawostka]
[wniosek]widocznie kiepskie te instalacje skoro wykop z nich nie skorzysta i woli jednak PHP[/wniosek]
[wniosek]Wykop ma cienki serwer [/wniosek]
[/quote]

Jeden serwer nie wyciągnie 4000req/s. To już są aplikacje wieloserwerowe, skalowalność i takie tam. Równie dobrze może to być php, ruby, python. Nie zachowujmy się jak dzieci, dyskutujmy na poziomie :-).

[quote]
Zrozumcie, że w obecnej sytuacji nie ma szans na rewolucję i masową migrację z PHP do Ruby. Jest stanowczo za późno. Ruby, może, owszem zgromadzić grono zwolenników, ale czy nie ograniczy się do tego, co się dzieje z Pythonem?
Osobiście jestem wdzięczny za Ruby on Rails jego developerom, ale nie jest to powód, przez który rzucę PHP(www) i Javę(www + desktopy), ponieważ to, co mogłem dostać od RoR dostaję już w Symfony czy w Grails-ach. Smutna, dla niektórych, prawda jest taka, że gdyby Ruby wchodziło wraz z RoR 5-7 lat temu proporcje mogły by być zupełnie inne i to PHP mogło by być w opozycji.
[/quote]

Ciagle podkreślacie, że php jest taki popularny, że używa go tyle, a tyle osób (ilość rezultatów w zapytaniach google itp). To ja zadam Wam proste pytanie. Czy wyznacznikiem jakości jest dla Was to ile osób coś używa? (tak mi się przypomniało: skoro muchy jedzą g*** to musi to być dobre i dla mnie, prawda?) W Rubim nie musi programować 50% programistów na świecie, wystarczy 1%, ale tych dobrych. Nie każdy hosting musi oferować railsy, wystarczy mi 1 (ten na którym umieszczę aplikację). Nie musi być masa ofert pracy w railsach, wystarczy 1 (ta, dzięki której zdobędę pracę). I tak dalej. Nie mierzmy jakoś ilością.

[quote]
Popularność Ruby zaczęła odczuwalnie rosnąć dopiero po ukazaniu się Ruby on Rails w lipcu 2004, i nie okłamujmy się, głównie (w 95% przypadków) dzięki temu frameworkowi Ruby zawdzięcza wciąż rosnącą popularność.
[/quote]
Oczywiście, że tak. Railsy stały się killer application dla Rubiego. Ale czy coś w tym złego? Jednak trzeba sobie powiedzieć jedno: Railsy są tak dobre bo Ruby jest tak dobry. I nie są to tylko moje słowa.

[quote]
Ponadato, powiedzmy szczerze (zresztą ~splatch już to zaznaczył) Ruby bez RoR byłby niczym.
PHP go kładzie nawet gdyby nie miało zadnego frameworka.
[/quote]
Turlam się ze śmiechu. Przepraszam, ale nie mogę się powstrzymać. Jak już wcześniej powiedziałem RoR dał kopa Rubiemu. I to jest fakt. Ale, że goły PHP kładzie Rubiego to przesadziłeś biggrin.gif. Mike, rozumiem, że przeczytałeś conajmniej 1 dobrą książkę o Rubim i napisałeś kilka programów? Bo inaczej takie opinie to o kant d** rozbić.

[quote]
Pozwolę sobie jednak mieć odmienne zdanie co do samego pisania aplikacji z użyciem RoR (tylko widziałem przykłady). Ze smutkiem stwierdzam, że nadaje sie to tylko do prostych aplikacji www, które nie wyjdą poza prostego CMS'a. Osiągniesz zatem dokładnie tyle, ile w php z użyciem... powiedzmy cakePHP + propel (nie wchodźmy w szczegóły).
Może to jest tak, że nagła "eksplozja" zamówień na aplikacje pisane w Rubym jest związana z niewiedzą? Kiedy analityk usłyszy opinie na temat języka, że jest lepszy, bardziej obiektowy, najlepiej rozwijany, ma super framework, który napisze bloga używając 50 linijek kodu itp., to poleci do szefa i zarekomenduje go. Powie mu: "Szefie, wygląda na to, że nasz serwis najlepiej napisać w Rubym, bo to lepsza technologia niż PHP, która jest dla dzieciaków i wszyscy się z niej wycofują."
[/quote]
Następny urwał się z choinki. Nadaje się tylko do prostych aplikacji? No bez jaj :-). Dobrze, że przyznałeś "tylko widziałem przykłady". Jesteś prawie usprawiedliwiony...


Ok, czas na małe podsumowanie. Przede wszystkim moja odpowiedź nie ma wywołać żadnego flame wara. Jestem zły na Was za to, że nie wysililiście się zbytnio by dać szansę Rubiemu i Railsom a macie już o nim opinię! Z tym, że danie szansy to wg mnie 1 książka + kilka prostych programów (np w trakcie czytania książki) i 1 malutki projekcik (np prosta aplikacja w stylu TODO application). Pokazałem już 2 zatwardziałych phpowcom (mieli postawę dokładnie taką jak Wy, prawie wszystkie było na "nie") railsy i po napisaniu prostej aplikacji (zrobili to praktycznie z biegu, nie uczyli się języka) przyznali jednak, że coś w tym jest...
I na koniec jeszcze chciałem powiedzieć, że nigdy nie powiem, że Ruby jest prostym językiem dla mas (php jest prostym językiem dla mas, dzięki temu nawet dzieciak z gimnazjum może o sobie mówić "programista php" - zaprzeczycie?). Ruby wymaga trochę od programisty, ale odpłaca mu się z nawiązką.
pawel_k
nawet sie z Tobą zgadzam, ale pod jednym ALE - jeśli porównujesz php z ror... sam ruby nad php az takie przewagi nie ma (nie mówie ze php kladzie go na lopatki czy ze jest na odwrot), ale porownanie frameworka do jezyka programowania jest troche naciaganiem. php jest kiepskim jezkiem, ale po to mamy frameworki aby niwelowaly jego wady (a przynajmniej maskowaly).

w istnieniu 20 frameworkow nie widze nic zlego, wez pod uwage fakt ile jest frameworkow do javy to ta ilosc do php jest smiesznie mala. jasne ze ror jest genialny i wiekszosci osob nie potrzeba nic wiecej, ale konkurencja nikomu jeszcze nie zaszkodzila.

poza tym, jesli wezmiesz sie za porownanie rubiego do symfony i uzyjesz argumentow ktore sluza Ci do pokazania wyzszpsci ror nad php - ruby wymieknie. porownanie symfony do ror ma juz wiekszy sens i jest uzasadnione. i w tym wypadku mysle ze ror ma mimo wsyzstko kilka elementow do developingu ktorych symfony nie ma (sam ich nie testowalem ale slyszalem o automatycznej synchronizacji wersji produkcyjnej z developerska na podstawie svn'a, ale nie wazne, nie chce mieszac). zostalem przy symfony bo po pierwsze oferuje mi bardzo podobne narzadzia, praktycznie identyczna skladnie jesli chodzi o nazwy, a przede wszystkim znam bardzo dobrze php. do tego skladnie rubiego mi nie odpowiada, chociaz nie przecze ze inni moga byc zachwyceni. dlatego zostaje przy php i symfony, ale ror doceniam i podziwiam....
Radarek
Ale ja nigdzie nie porównuję railsy z phpem. Fakt, że ludzie często to robią, ale ja rozdzielam to na 2 sprawy: ruby vs php i rails vs wstaw dowolny framework php. I w obu tych porównaniach dla mnie Ruby wygrywa. Jeśli dla Was jest inaczej - ok, Wasz wybór i szanuję to.

Cytat
poza tym, jesli wezmiesz sie za porownanie rubiego do symfony i uzyjesz argumentow ktore sluza Ci do pokazania wyzszpsci ror nad php - ruby wymieknie.


Według mnie właśnie nie. Jeszcze raz powtórzę. Ruby to świetnie poukładany język, spójny, z przejrzystym api. Railsy, zbudowane na Rubim, dzięki jego autorom posiada dokładnie te same cechy: proste, przejrzyste api, obiektowość (obsługa wyjątków itp). Php - poraz kolejny - niespójne api, 1 wielki namespace z funkcjami, podstawę tworzy kod strukturalny bez wyjątków, ze śmieszną obsługą błędów (notice na ekran). I jakkolwiek Symfony jest świetnym frameworkiem to niestety nie zasłoni wad języka. Mało tego, będziesz mieszać 2 style (strukturalny + oop).

Cytat
i w tym wypadku mysle ze ror ma mimo wsyzstko kilka elementow do developingu ktorych symfony nie ma (sam ich nie testowalem ale slyszalem o automatycznej synchronizacji wersji produkcyjnej z developerska na podstawie svn'a, ale nie wazne, nie chce mieszac).


Kolejna osoba, która coś gdzieś słyszała :-). Na prawdę dziwię się Wam, że macie tak silną opinię o czymś o czym niewiele wiecie. Php pamiętam jeszcze od wersji 3 (chociaż przyznaję, że nie mam na koncie jakiś spektakularnych projektów), śledziłem jego rozwój. Byłem jego wielkim fanatykiem, nieraz kłóciłem się z ludźmi od javy, .net, którzy php uważali za g**. I nadal nie uważam, żeby tak było. Ale poznałem Rubiego i nie czułem takiego powera jeszcze przy żadnym języków (jakby kogoś interesowało to poznawałem języki w takiej kolejności: pascal, c, c++, php, java, c#, perl, teraz ruby, oczywiście nie znam tych języków na takim samym poziomie). I podkreślam: rubiego (nie railsy).

Cytat
zostalem przy symfony bo po pierwsze oferuje mi bardzo podobne narzadzia, praktycznie identyczna skladnie jesli chodzi o nazwy, a przede wszystkim znam bardzo dobrze php. do tego skladnie rubiego mi nie odpowiada, chociaz nie przecze ze inni moga byc zachwyceni. dlatego zostaje przy php i symfony, ale ror doceniam i podziwiam....

I ok, rozumiem Twoje podejście. Dopóki nie przeszkadzają Ci wady w języku, które wymieniłem wcześniej, dopóki nie denerwuje Cie, że poraz 1000 musisz szukać w manualu w jakiej kolejności trzeba podać parametry w preg_replace to zostań przy swoim języku. Nie ma sensu kupować wymieniać samochodu, bo dotychczasowy kolor się znudził...

Zachęcam wszystkich do chociaż spróbowania. Nawet jeśli język nie spełnia Twojego wewnętrznego "fu" to przynajmniej będziesz wiedział dlaczego.
pawel_k
Cytat(Radarek @ 31.05.2007, 14:37:46 ) *
I jakkolwiek Symfony jest świetnym frameworkiem to niestety nie zasłoni wad języka. Mało tego, będziesz mieszać 2 style (strukturalny + oop).
to akurat nieprawda,
przykładowa akcja logout w symfony:
  1. <?php
  2. public function executeLogout()
  3. {
  4. if ( $this->getUser()->isAuthenticated() == true )
  5. {
  6. $this->getUser()->setAuthenticated( false );
  7. $this->getUser()->clearCredentials();
  8. $this->getUser()->getAttributeHolder()->removeNamespace();
  9. }
  10. $this->redirect( '@homepage' );
  11. }
  12. ?>

czy akcja wyswietlenia listy czegokolwiek, tutaj jakis filmow...
  1. <?php
  2. public function executeShowAll()
  3. {
  4. $objPager = new sfPropelPager( 'Videos', (int) sfConfig::get( 'app_pager_homepage_max_videos', 10 ) );
  5. $objCrit = new Criteria();
  6. $objCrit->add( VideosPeer::ACTIVE, true );
  7. $objCrit->add( VideosPeer::DELETED, false );
  8. $objCrit->addDescendingOrderByColumn( VideosPeer::VIDEO_ID );
  9. $objPager->setCriteria( $objCrit );
  10. $objPager->setPage( (int) $this->getRequestParameter( 'page', 1 ) );
  11. $objPager->setPeerMethod( 'doSelectJoinAll' );
  12. $objPager->init();
  13. $this->objPager = $objPager;
  14. }
  15. ?>


jeśli to jest mieszanie kodu obiektowego ze strukturalnym to ok, ale czy inaczej to wyglada w RoR? jasne ze w symfony gdzies na najmizszym poziomie mam pg_connect czy pg_query, czy inne wbudowane funkcje php ale tak na prawde mnie to nie obchodzi.

czysty kod strukturalny jest wrzucany w templatech bo obiektowy bylby nieprzejzysty, i w jednym i drugim frameworku mamy helpery o identycznych nazwach i parametrach...


Cytat(Radarek @ 31.05.2007, 14:37:46 ) *
Kolejna osoba, która coś gdzieś słyszała :-). Na prawdę dziwię się Wam, że macie tak silną opinię o czymś o czym niewiele wiecie.

Masz racje, ale zadałem sobie troche trudu zeby poznac sam jezyk, ale nie przekonalem sie niestety do skladni rubiego. ale zdązyłem wyrobić sobie o nim opinie - jak najbardziej pozytywaną.

do RoR nie musiałem sie przekonywać - po prawie roku wcześniejsego programowania w symfony sama filozofia była mi znana i jak najbardziej byłem zwolennikiem takiej implementacji mvc. i ślę wielkie podziekowania do developerow RoR'a ze developerzy symfony mają sie na kim wzorować winksmiley.jpg
i mam silną opinie na ich temat.

tak na prawde myslalem o przejsciu na rubiego z jednego powodu - idac do jakiejkolwiek pracy jako programista rubiego w 99% bym mial do czynienia z RoR i ze wszystkimi jego zaletami, a nie musiałbym poprawiać wiekowego kodu strukturalnego pisanego przez dzieci. i to jest moim zdaniem najwieksza zaleta i zdecydowanie najwieksza przewaga rubiego nad php... ehhh, gdyby nie ta skladnia:/
Radarek
Twój przykładowy kod źródłowy jest jak najbardziej obiektowy. Tylko, że jest to api frameworka, który z założenia jest obiektowy. Ale w którymś momencie będziesz musiał użyć api phpa, tj pracować na tablicach, stringach, plikach, obrabiać grafikę (gd, imagemagick) i będziesz miał kod strukturalny.

Cytat
tak na prawde myslalem o przejsciu na rubiego z jednego powodu - idac do jakiejkolwiek pracy jako programista rubiego w 99% bym mial do czynienia z RoR i ze wszystkimi jego zaletami, a nie musiałbym poprawiać wiekowego kodu strukturalnego pisanego przez dzieci.


True, true. Wolałbym popełnić harakiri niż grzebać w kodzie sprzed 2lat, php4 itp.

Cytat
ślę wielkie podziekowania do developerow RoR'a ze developerzy symfony mają sie na kim wzorować winksmiley.jpg


To jest ogromna bolączka php. Wszystko praktycznie jest zerżnięte od innych. Oczywiście nie ma nic złego we wzorowaniu się i kopiowaniu dobrych pomysłów. Problem w tym, że takie podbieranie od jednego to (z c++ składnia), od drugiego to (z javy oop) niekoniecznie prowadzi do czegoś dobrego. Mało tego. Próbuje się przenosić praktycznie całe frameworki i dostosować do realiów php. I tu jest pies pogrzebany, bo wszystkiego przeskoczyć się nie da. Przykładowy kod w Rubim:
Kod
#ponizszy blog wykona sie albo caly, albo transakcja zostanie automatycznie zakonczona
Account.transaction(david, mary) do
  david.withdrawal(100)
  mary.deposit(100)
end

class Account < ActiveRecord::Base
  belongs_to    :portfolio
  has_one    :project_manager

  validates_presence_of :name
  validates_uniqueness_of :subdomain
end


Jest to coś czego nie da się uzyskać w php. I nie tylko w nim.
Zreszta nie chce wnikać w szczegóły, że coś się da zrobić w Rubim, a nie da w php. Każdy musi sam spróbować i poczuć ten power smile.gif.

Cytat
ehhh, gdyby nie ta skladnia:/


To tylko pierwsze wrażenie, jesteś przyzwyczajony do składni php. Wbrew pozorom składnia jest bardzo prosta i intuicyjna. Niektórzy porównują ją do perla co jest kompletną bzdurą. W perlu czułem się jak w gąszczu, nie wiedząc w którym kierunku mam pójść (te ciągłe %, $, @, $aaa->{aaa}(1) etc, którego kiedy użyć?). Nawet php pod tym względem wypada gorzej (jest $this-> więc czemu nie $self-> tylko self?, uzycie == czy ===?). Każdy z Was musiał przebrnąć przez składnię php, teraz ma ją w małym palcu. Logiczne jest więc to, że składnia, które trochę odbiega od tej phpowej wydaje Wam się dziwna.
Cysiaczek
Nie ma $self, bo klasa to nie zmienna. Gdyby było $self to byłby to ewidentny błąd. Skoro do kontekstu klasy odnosimy się poprzez operator ::
czyli nazwaKlasy::metoda() lub nazwaKlasy::$składowa, to dlaczego nagle mielibyśmy pisać $self::$metoda() ?
$this jest, bo to pseudo zmienna zawierająca obiekt aktualnej klasy. Twój zarzut jest zatem chybiony.
Nie ma czegoś takiego jak "brak kodu strukturalnego". Sam fakt, że w rubym wszystko jest obiektem nie oznacza wcale, że nie da się kodu napisać tak, aby skutecznie udawał strukturalny. Duża część metod w obu tych językach zawiera kod strukturalny. Można to zmienić jedynie przez stworzenie fasady. W taki sposób np. symuluje się w php4 obecność funkcji file_get_contents(). Patrząc na SPL widzę właśnie budowanie obiektowego API jako alternatywę dla funkcji. Przykładem nie będzie zestaw funkcji do operowania na katalogach i plikach. Było opendir() readdir(), a teraz masz klasę DirectoryIterator i elegancko przeglądasz co chcesz.
Wogóle nie rozumiem argumentu o muchach jedzących gówno. Przecież php nie aspiruje do bycia językiem dla aplikacji destopowych, od początku jest językiem wspomagającym pisanie stron www, a teraz śmiem twierdzić jest językiem do pisania aplikacji www, bo taką kategorię należy wyodrębnić. Perl, czy python mimo, iż są dobrymi językami, to nie zostały stworzone do obsługi www. Dlatego właśnie nie odniosły sukcesu w na tym polu. php używa dużo osób i dlatego obok projektów mocnych muszą pojawić się i słabe, bo to naturalne.
Nie jest winą php, że ludzie mieszają html i php (logikę) w jednym pliku, zadają głupie pytania na forum, czy nie używają frameworków. Gdyby kiedyś "prawdziwi" programiści nie zaczęli nabijać się z tego języka, tylko wspomogli "braci mniejszych", to pewnie teraz naukę php zaczynałoby się od nauki Symfony (skoro już ją przywołujemy).

Wielu rzecz faktycznie nie powinno się przenosić do php. Wiele wzorców projektowych po po prostu sie nie nadaje (np. Observer), ale pamiętam jak gdzieś czytałem jednego programistę Java (chyba), który szedł w zaparte, że w php nie ma sensu implementować singletona, "bo to jest robione na siłę" i się nie przyda. Gdzie tu znajomość rzeczy? Musisz pamiętać, ze nie wszyscy programiści php robią to zawodowo - niektórzy po prostu mają stronkę, czy dwie i traktują to jako hobby. To, że ich zachowanie, ich kod i ich umiejętności rzutują na profesjonalistów, to już zupełnie inna sprawa, a na pewno na inną dyskusję.

Na koniec powiem tyle: Spotkałem kiedyś starszego człowieka (ok 70 lat) - napisał doktorat z Pascala - Miał gdzieś brak obiektowego API : >

Pozdrawiam
Turgon
I tutaj dyskusja skończy się tym, że jedni stwierdzą PHP, to bezczelny zżynacz od innych. Na dodatek ma okropną składnię...
Z Radarek, po co mam wchodzić w strukturalny, skoro framework udostępnia mi do tego zadania odpowiednie biblioteki? Po co mam sam wynajdywać koło od nowa?

@Cysiaczek: Co do symfony, to jeszcze nigdy go nie tknąłem... Boję się tego potwora i z resztą wolałbym nazwę w stylu "AC/DC Returns" =) I nadal nie mam zamiaru... Pisze sobie w własnym pseudo-frameworku, który powstał w epoce kamienia łupanego. Działa na PHP5 jest zgodny z większością standardów. Wykorzystuje pracę innych i tyle tongue.gif
Radarek
Cytat
Nie ma $self, bo klasa to nie zmienna. Gdyby było $self to byłby to ewidentny błąd. Skoro do kontekstu klasy odnosimy się poprzez operator ::
czyli nazwaKlasy::metoda() lub nazwaKlasy::$składowa, to dlaczego nagle mielibyśmy pisać $self::$metoda() ?
$this jest, bo to pseudo zmienna zawierająca obiekt aktualnej klasy. Twój zarzut jest zatem chybiony.


Ok, masz rację. W sumie niepotrzebnie zszedłem do takich szczegółów. To nie jest takie ważne.

Cytat
Nie ma czegoś takiego jak "brak kodu strukturalnego". Sam fakt, że w rubym wszystko jest obiektem nie oznacza wcale, że nie da się kodu napisać tak, aby skutecznie udawał strukturalny.


Chodzi mi o całą podstawę języka, czyli wbudowane typy (tak proste, jak i złożone, np hashe, tablice, klasy).

Cytat
Wogóle nie rozumiem argumentu o muchach jedzących gówno. Przecież php nie aspiruje do bycia językiem dla aplikacji destopowych, od początku jest językiem wspomagającym pisanie stron www, a teraz śmiem twierdzić jest językiem do pisania aplikacji www, bo taką kategorię należy wyodrębnić.

Z muchami w ogóle nie zaczaiłeś. Chodzi o to, że wielu z Was podaje arg., że php jest najlepszy bo bardzo dużo osób go używa (więcej niż Rubiego). I tu podajecie mi takie fakty jak ilość wyników w google na zapytania "php jobs", że mnie firm udostępnia hosting dla railsów etc. Więc ja mówię, że ilość nie jest miernikiem jakości. Rozumiesz już przykład z muchami?

Cytat
Perl, czy python mimo, iż są dobrymi językami, to nie zostały stworzone do obsługi www. Dlatego właśnie nie odniosły sukcesu w na tym polu. php używa dużo osób i dlatego obok projektów mocnych muszą pojawić się i słabe, bo to naturalne.

Bzdura. Co ma takiego php sam w sobie, dzięki czemu mozna powiedzieć, że jest stworzony do pisania dynamicznych stron (aplikacji), a języki takie jak Perl, Python, Ruby w tej kwestii wypadają słabiej? Odpowiem Ci: nic. Przecież na najniższym poziomie chodzi o odebranie requestu http i wygenerowaniu odpowiedzi. Tyle. To co dostajesz z zewnątrz to dane GET, POST, COOKIES, adres url. Coś jeszcze? Reszta zależy od Ciebie. Proszę, podaj jakieś konkretne przykłady, dzięki czemu w php pisze się lepiej aplikacje www? Pytam jak najbardziej powaznie, bo może czegoś nie wiem.

Cytat
Na koniec powiem tyle: Spotkałem kiedyś starszego człowieka (ok 70 lat) - napisał doktorat z Pascala - Miał gdzieś brak obiektowego API : >

Nie bardzo rozumiem jaki wniosek mam z tego wyciągnąć? Zawsze się znajdą jacyś odmieńcy...smile.gif


Cytat
Z Radarek, po co mam wchodzić w strukturalny, skoro framework udostępnia mi do tego zadania odpowiednie biblioteki? Po co mam sam wynajdywać koło od nowa?


Czyli rozumiem, że nigdy nie operujsz na tablicach, stringach, liczbach, plikach w php?

Nie chcę głupiego przekomarzania się. Zadam proste pytanie: kto z Was umie Rubiego (samodzielne pisanie programów z pomocą dokumentacji) i zrobił chociaż 1 mały (np w celach dydaktycznych) projekcik, niech będzie w railsach? Bo inaczej taka dyskusja nie ma sensu.
splatch
Panowie prowadzicie spory na temat wyższości języków, a zapominacie o jednym - o temacie, w którym się wypowiadacie - a mianowicie Ruby wypiera PHP. Są domysły, dlaczego Ruby + RoR może wyprzeć PHP, ale nie ma dowodów na to, że to robi. Tutaj nie ma rady, i największe znaczenie ma popularność, Ruby może zyskiwać przewagę w ramach jakości, ale zwróć uwagę, że i z tym można walczyć w PHP. RoR nie zdobyło wyłączności na testy jednostkowe, framework ze scafoldingiem itp. Na tym polu konkurencja może się odbywać bez najmniejszych obaw ze strony PHP.
Walczycie między sobą na argumenty sięgające coraz niższych partii języków zamiast wrócić do dyskusji (przecież to nie jest Ruby vs PHP!).

Pozwolę sobie na przytoczenie cytatu:
Cytat
Cytat
Popularność Ruby zaczęła odczuwalnie rosnąć dopiero po ukazaniu się Ruby on Rails w lipcu 2004, i nie okłamujmy się, głównie (w 95% przypadków) dzięki temu frameworkowi Ruby zawdzięcza wciąż rosnącą popularność.

Oczywiście, że tak. Railsy stały się killer application dla Rubiego. Ale czy coś w tym złego? Jednak trzeba sobie powiedzieć jedno: Railsy są tak dobre bo Ruby jest tak dobry. I nie są to tylko moje słowa.


Nie wiem czy zwróciłeś na moje dalsze słowa, które tyczyły się tematu, dlatego przypominam Ci je:
Cytat
Rok później ukazało się Django, dzięki czemu popularność Pythona również zaczęła szybciej rosnąć. Czyli tak jak wspominałem, na istnieniu RoR zyskuje nie tylko tylko Ruby, ale i Python, fakt, że znacznie mniej PHP, ale możemy dojść do kuriozalnego wniosku, że ten jedyny framework może być największą zgubą Ruby. Wystarczy dobry port (vide szybszy jak to się ma w przypadku Django) i najważniejszy atut Ruby zostaje obalony. Nota bene, wykresy PHP i Ruby nie są lustrzanymi odbiciami, zatem koegzystencja wszystkich tych języków jest możliwa, bez straty dla pozostałych (w chwili obecnej ich popularność spada, wcześniej mniej-więcej "proporcjonalnie" rosła).


Cytat
(...) podajecie mi takie fakty jak ilość wyników w google na zapytania "php jobs", że mniej firm udostępnia hosting dla railsów etc. Więc ja mówię, że ilość nie jest miernikiem jakości.

A ja mówię, że ilość wyników jest bez wątpienia wyznacznikiem popularności. Spróbuj przekonać wspomniane miliony much, by rzuciły gówno, które jedzą i przerzuciły się na padlinę..

Parafrazując Twoje słowa Radarku, nie chcę się przekomarzać co jest lepsze a co gorsze, chcę tyko by padły racjonalne dowody na rzekome wypieranie PHP przez Ruby.
Na końcu moja drobna prośba proszę, zmień ton i przestań być agresywny. Wyśmiewanie a później wycinasz fragmenty postów i chwytasz za słówka. To nie jest recepta na zdrową dyskusję.
Wychodzisz z założenia, że Ruby i RoR jest najlepsze i starasz się nam to udowodnić na siłę i powiem Ci, że w tym temacie mnie przekonałeś już wystarczająco ponieważ wisi mi, który język w tym temacie okaże się lepszy, bardziej obiektowy, przyswajalny, namacalny, och i ach, bo nie jest to przedmiotem sporu, który toczymy nad odpowiedzią do pytania z pierwszego posta:
Cytat
Otóż chciałbym sie dowiedzieć jakie macie zdanie na ruby [Ruby on Rails] czy on wyprze php?
Radarek
Ok, może mnie poniosło. Ale nie lubię jak ludzie piszą głupoty, nie mają kompletnie pojęcia o tym (vide słowa mike'a i inne).

Cytat
Na końcu moja drobna prośba proszę, zmień ton i przestań być agresywny. Wyśmiewanie a później wycinasz fragmenty postów i chwytasz za słówka. To nie jest recepta na zdrową dyskusję.


Trochę zboczyłem z tematu, fakt. Ale co do samego tematu (nie ja zakładałem topic) to powiem tak: Ruby nie wyprze php, bo php jest dla mas, a na Rubiego (czy też Pythona) przechodzą (raczej) ludzie, którzy osiągnęli pewien poziom i poczuli, że php to jednak nie to. Co oczywiście nie oznacza, że nie ma ludzi na poziomie programujących w php, ale procentowo jest ich zdecydowanie mniej niż w innych społeczniościach. Co do tych nieszczęsnych much, co za pożywienie mają g**: skoro im smakuje to niech sobie jedzą :-). Tyle ode mnie. Ja bardzo chętnie podyskutuję na temat samego Rubiego, gdyby ktoś chciał się coś dowiedzieć więcej to zapraszam na priva lub też mojego bloga.
Sedziwoj
Cytat(Radarek @ 31.05.2007, 22:16:03 ) *
php jest dla mas, a na Rubiego (czy też Pythona) przechodzą (raczej) ludzie, którzy osiągnęli pewien poziom i poczuli, że php to jednak nie to


Jak ja nie lubię jak ktoś w wypowiedź wplata takie coś, bo to jest uparte twierdzenie że "lepsi" przechodzą z PHP na [do wyboru], mimo że za chwilę piszesz:
Cytat
Co oczywiście nie oznacza, że nie ma ludzi na poziomie programujących w php

Więc po co to wcześniejsze zdanie? Czyżbyś sam nie wiedział co piszesz...

To tylko taka uwaga [OT], bo nie pierwszy raz się zdarza takie coś.
Bo sprawa wypierania jest już raczej wyjaśniona (nie wyprze), a co lepsze... to nie ten temat.
Riklaunim
ja nie sądzę że lepsi przechodzą na Ruby czy Pythona. To raczej kwestia programistów znających narzędzie ze średniej półki, którzy chcą nauczyć się czegoś z wyższej np. Prado czy Symfony. I tutaj konkurencją może być RoR czy Pythonowe frameworki. Ich główną przewagą jest łatwiejsza nauka - mniej wiedzy trzeba przyswoić na raz by załapać o co chodzi. Coś w tym stylu.
rashid
Chyba pora powoli konczyc ten watek smile.gif

Na zakonczenie troche danych do przemyslenia:
TIOBE Ruby
TIOBE PHP
Google Trends
NetCraft

Mysle, ze powyzsze dane jednoznacznie wskazuja na spadek popularnosci PHP wzgledem Ruby. Watpiacych odsylam do matematyki z poziomu szkoly sredniej. Ja ze swojej strony nie powiem, ze rzucam PHP i bezwarunkowo przeskakuje na inny jezyk. Nie przeszkadza mi to jednak w korzystaniu z innych narzedzi i zapoznawaniu sie z tym, czym wygrywaja z PHP. Innym tez to polecam, bo nie ma nic gorszego niz zamkniecie sie w czterech scianach i udawanie, ze na zewnatrz nic nie ma. Nikt z nas nie jest prorokiem i nie przewidzimy tutaj co sie stanie za kilka lat. Patrzac w przeszlosc mysle, ze kazdy z nas zdaje sobie sprawe, ze jezyki programowania przemijaja. Pozostaje pytanie, czy juz nadeszla pora agonii PHP i czy zastapi go Ruby, czy moze Lua, a moze D? To chyba najmniej wazne, wazniejsze jest nie przespac tego momentu lezac wygodnie na manualu do PHP.
bumelang
Dzieki, Radarek, ze jako jedyny zostales w tym watku promujac Ruby'ego i Rails! Tym bardziej, ze momentami dyskusja nabrala formuly, co sie komus widzi po przejrzeniu strony Rails (nota bene robiacej dosyc kiepska robote tymi prezentacjami, ze o braku dobrych manuali dostepnych za darmo nie wspomne - byc moze stad wynika tak mala wiedza forumowiczow o tym frameworku?).

Ale, zeby nie przynudzac, nie wiem, czy spekulacje Rails vs PHP maja tak duzy sens, jak to wynika z tej dyskusji. Mozna by sadzic, czytajac blogi i rozne dyskusje na anglojezycznej sieci, ze wiekszosc programistow Rails to imigranci z tzw. lightweighted J2EE (Spring/Hibernate itp.). To jest platforma ktora plasuje sie miedzy PHP a pelnym J2EE, ale jak na tak proste rozwiazanie, zzera ja nieco zlozonosc - tysiace linijek konfiguracji, xdoclety, maveny i cala reszta. I tutaj bardziej widzialbym miejsce dla Rails - projekty, warte ok. 0,5-2 mln, do obslugi wewnetrznej srednich firm, ktore placa z reguly niewiele, a wymagaja szybkich zmian w aplikacji. Oczywiscie wejsciu Rails do duzych zapobiega wiele rzeczy i to zostalo tutaj napisane, wiec nie bede sie powtarzal.

Druga grupe beda pewnie stanowili imigranci z PHP i Web, ale raczej wydaje sie, ze jak narazie tez sa to rozwiazania nieco wiekszej skali, niz blog Kowalskiego, gdzie i tak kupuje sie serwery i mocno wykorzystuje cacheowanie, a to co sie najbardziej liczy, to - jak ktos zauwazyl - ilosc osobodni, a nie ilosc procesorow. Tutaj nie da sie patrzyc na Rails jak na samodzielny system, trzeba popatrzec na Rails w kontekscie lighttpd i innych ultrawydajnych rozwiazan load balancing/cache NB IO, ktore powstaly, gdy siec zaczela sie robic wieksza, niz spodziewali sie projektanci Apache. W takim chocby Onecie tez nie maja przeciez PHP, to jest PHP-podobny twor, ktory - choc bazowany na PHP - z wydajnoscia PHP+Apache ma tyle wspolnego, co EVO z Matizem.

Reasumujac
- w mojej opinii - nic narazie nie zagraza PHP w segmencie
- Panie, bo ja bym sobie chcial te teksty sam wrzucac...
- To moze CMSa Panu wrzuce, mam takiego, swojego

i nic, poza .NET sie by chyba w tym segmencie nie sprawdzilo - nic nie jest tak proste i tak podobne do C++/Java. Nic tez nie zagraza PHP w segmencie malych aplikacji dla mniejszych firm - chociaz w tym rynku Rails by sie sprawdzil, gdyby nie problemy ze znalezieniem specjalistow i idace za tym koszty pracy. Penwie tez nikt nie zamierza wymieniac portali napisanych w PHP na te napisane w Rails.

Ale Ruby to bardzo dobry jezyk, a Rails to blyskotliwy framework. I bardzo, bardzo sie ciesze, ze mam okazje pracowac w czyms, co jest przyjemne i jakims cudem sie wypromowalo, a nie czyms, co jest kompromisem, jak C++ i Java, wypromowanym przez wielkie koncerny. Pozdrowienia!
Cysiaczek
Panowie (i panie). Głosuję za zamknięciem tego topiku, bo coś czuję, ze zaraz poleje się krew ; )
Proszę nie odbierajcie tego postu personalnie, bo ja atakuję jedynie poglądy, nie ludzi.

Obejrzałem dwa filmiki z Twojego bloga ~Radarek. Pomysł na promocję fajny... ale tylko pomysł. Te prezentacje ruby vs php to przecież taka bzdura, że aż mi się wierzyć nie chciało, że ktoś to nakręcił. Ujawniają one (filmiki), ze społeczność Ruby ma jakieś kompleksy. To niepokojące, że "prawdziwi" programiści nie wiedzą, że zmiana obsługiwanej bazy danych w php to kwestia plików konfiguracyjnych, a najczęściej proces przezroczysty dla użytkownika. Filmik mógłbym pominąć milczeniem, bo nie takie głupoty znajduje się codziennie na youtube, ale dlaczego, do ciężkiej cholery, tak dobrze oddają one stosunek społeczności Ruby do php?
Podobne argumenty padają w dyskusji - również tej, na siłę próbujecie przekonać php'owców, że ruby jest lepsze (to jeszcze ok), ale za chwilę czuję, że gardzicie tymi ludźmi. Przypomina to trochę flame war windziarzy z linuksowcami, gdzie Ci drudzy pogardliwie odnoszą się do oponentów. Problem nie leży w tym, że któryś z języków jest lepszy - problemem są fanatyczne przekonania ludzi. Od zarania dziejów te same - moje, znaczy lepsze.
Wygląda mi to na kampanię negatywną - php czegoś nie ma, my to mamy i jesteśmy fajni. Szkoda tylko, że jako argument w merytorycznym sporze nie można użyć stwierdzeń z tych filmików, bo po prostu mijają się z prawdą.

~mike, czy Ja padamy ofiarą stwierdzeń "Nie programowałeś - nie wiesz". Guzik z pętelką - wiem, bo mimo iż nie znam języka, to mogę z powodzeniem czytać jego kod i wychwytywać konstrukcje, które we wszystkich językach są niemal identyczne. W ten sam sposób uczyłem się wzorców czytając kod Javy, a ostatnio co rusz zaglądam do źródeł w pythonie. Obejrzałem sobie kilkanaście frameworków do php. Przy dziesiątym nie musiałem sprawdzać jak działa - wystarczyło zajrzenie do kilku plików i wyobrażenie sobie kroków, które muszę wykonać aby otrzymać działającą aplikację. RoR nie był wyjątkiem - nie rzucił mnie na kolana, nie zaparzył mi kawy i nie poszedł po zakupy.

Jakiś czas temu powziąłem decyzję o nauce Ruby'ego. Będę w nim pisał jednak aplikacje konsolowe wspomagające mój framework w php. Nawet mi to odradzano na Ircu, ale i tak zobaczę jak będzie. Do aplikacji www jednak nie zamierzam odejść od PHP.

Pozdrawiam.
mike
To teraz ja powiem.
Cytat(bumelang @ 1.06.2007, 00:42:42 ) *
Reasumujac[/b] - w mojej opinii - nic narazie nie zagraza PHP w segmencie
- Panie, bo ja bym sobie chcial te teksty sam wrzucac...
- To moze CMSa Panu wrzuce, mam takiego, swojego
Nie programowałeś, nie pisz.
Te słowa pokazują, że właśnie Ty nie wyszedłeś poza wspomniane przez Ciebie "stronki" i "cmeski".
Nie znasz ciekawszych zastosowań PHP, zamilcz (jak to ~splatch w takich sytuacjach mówi tongue.gif ).
Jak się czegoś nie zna i nie rozumie to łatwo to bagatelizować.

Najbardziej mnie denerwuje to, że Ruby nie jest w stanie zaistnieć ne tocząc piany w którąś stroną.
Ciągle porównania, które jakoby miały ujawnić porażki wszędzie indziej tylko nie w Ruby.
Chłopaki, pokażcie mi plusy Ruby'ego bez atakowania jakiegokolwiek języka programowania.

I jeszcze ten idiotyczny tekst, że Ci lepsi programiści pójdą do Ruby.
A żebyście się nie zdziwili. Ci lepsi to mają Ruby w dupie i pójdą do Java (J2EE, Eclipse/RPC), w technologie ciekawe i szeroko stosowane w wielkich korporacjach, albo chociażby w strona Python'a.

A poza tym RoR, RoR i RoR, ....
Ten framework nie daje NIC, NICZEGO, NIC a NIC więcej niż Symfony czy na przykład Cake czy denny CI.
Szybkość? Jak postawię dedyka to ta szybkość jest takim samym argumentaem jak to, że wlasnie świeci słońce.
bumelang
Cytat(mike @ 1.06.2007, 11:36:47 ) *
To teraz ja powiem.
Nie programowałeś, nie pisz.
Te słowa pokazują, że właśnie Ty nie wyszedłeś poza wspomniane przez Ciebie "stronki" i "cmeski".
Nie znasz ciekawszych zastosowań PHP, zamilcz (jak to ~splatch w takich sytuacjach mówi tongue.gif ).


Sluchaj, Mike, nie wiem, na jakiej podstawie wnosisz taka teze, ale ze nic o mnie nie wiesz, moglbym Ci napisac: zamilcz. Ale moim celem nie jest ublizanie komus, probuje podjac dyskusje w temacie. Przepraszam, ze w ogole podejmuje dyskusje z takim argumentem, ale zostalem wywolany do tablicy.

Nikt tu chyba nie ma zamiaru nikogo bic za to, ze programuje w Railsach albo ze nie programuje. Ja sie probuje ustosunkowac do tematu: gdzie moze Rails (ewentualnie) zdobyc znaczaca pozycje na rynku. I stwierdzam, ze moglby ja zdoby w segmencie wiekszych aplikacji PHP i mniejszych aplikacji klasy enterprise, pod pewnymi obwarowaniami, ktore wymieniam.

A tutaj spotykam sie z milym odzewem: "php jest tak samo dobre jak rails" (do czego zaraz sie ustosunkuje), albo "nie programowales [nic wiecej niz strone Cioci Kloci w PHP], nie pisz" (nie obraz sie Mike, ale przeczytaj to, co napisalem, ze zrozumieniem - pisze o segmencie rynku typu amatorskiego, nie o sobie, o Tobie, ani nawet nie o PHP czy o czymkolwiek konkretnym, poza synoniem prostej strony, a Ty mi wyjezdzasz ad personam nie wiedzac o mnie nic).

Jakie sa zalety Ruby on Rails? Narazie podam dwie, ale dosc ogolne:

1) PHP wg mnie, nie jest tymczasem ani zle ani dobre w sensie, ze - jak kazdy jezyk programowania, ktory stworzony zostal zgodnie z teoria jezykow, umozliwa zaprogramowanie dowolnej funkcjonalnosci logicznej i wykorzystanie API, ktore integruje go z uslugami OS. Jako ze jest tez jezykiem obiektowym, to pewnie jeszcze mozna to wszystko zaprogramowac w obiektach, mniej lub bardziej zgodnie z paradygmatem. Kwestia jest tez nie tylko to, jak mozna to zrobic, ale tez jakim nakladem pracy i co, gdy przyjdzie to komus przerabiac. Tutaj konwencje Rails i fakt, ze jest tylko jeden framework, zapewne znaczaco ulatwiaja, poniewaz nowy w projekcie programista nie musi sie uczyc nowego frameworku. Ulatwiaja, nie powoduja, ze nie da sie tego osiagnac w PHP! Ale to ulatwienie, to jest niewatpliwa zaleta Rails z punktu widzenia kadry zarzadzajacej.

2) Ruby - tez wedlug mnie - jest dodatkowo jezykiem ktory nie nosi sladow kompromisu, nie jest hybryda procedury z obiektem, jak PHP i C++, to na pewno sprawia, ze mozna w nim programowac duuuzo bardziej komfortowo. W pewnym sensie jest kontynuatorem Smalltalka, ktory jednak nie odniosl z powodow biznesowych zadnego sukcesu. Ale Panowie, ja nie pisze, ze PHP sie nie nadaje do czegos, ale chyba wszyscy sie zgodza, ze PHP to prosty jezyk, stworzony do prostych zastosowan, ktory jest wypasiony ponad miare na sterdyach, zeby spelnial wymagania wspolczesnych uzytkownikow i to niestety zwyczajnie daje sie odczuc piszac w nim (tak, tez mi sie zdarza), pisze to obiektywnie, bez pogardy. Ale to tez jest zaleta Rails, tym razem z punktu widzenia programisty, ale tez kadry - bo elegancja tego jezyka sprawia, ze kod jest latwiejszy w utrzymaniu.

Oczywiscie poza tym Ruby ma tez duzo minusow - najwieksze juz padly. Ale nie jako jezyk, tylko jako produkt. Jako jezyk tez nie jest bez winy - moim zdaniem zostawia na przyklad za duza dowolnosc wyboru skladni programiscie - jesli ktos kiedys programowal w Perlu wie, o czym mowie, a wszyscy pewnie pamietacie te konkursy na najkrotszy kod, ktory realizuje zadana funkcjonalnosc w Perlu. To sprawia, ze czasem naprawde trzeba poznac bardzo dobrze jezyk, zeby zrozumiec czyjs kod i jest trudny do nauki.


A co do tezy, ze lepsi programisci pojda do Javy/.NET/Pythona/Ruby. Ja wcale nie stawiam takiej tezy - znam kilka osob z duzym dosiwadczeniem, ktore wcale nie wybieraja sie ani do Javy ani do Ruby. Podobnie jak znam takich, ktorzy nawet nie wiedza, co to jest Rails i programuja w PL/SQL. Ale mysle z reszta, ze ci, ktorzy programujac w PHP zaczna programowanie w Javie czy .NET, zrobia to przede wszystkim (nie w 100%, przeciez to nie matematyka, tylko socjologia) z powodow finansowych lub checi poznania aplikacji klasy enterprise, co - tak czy owak nie mowi nic na temat wyzszosci jednego jezyka nad drugim, ale moze duzo powiedziec na temat jego przyszlosci. Jesli chodzi o mnie, naprawde zalezy mi na Waszej opinii w temacie watku, gdzie widzicie miejsce dla PHP, a gdzie dla Rais. Ja wskazalem swoje przypuszczenia, moze znajdzie sie jeszcze ktos, kto to zrobi, bo jak narazie zrobilo to tylko pare osob, ktorym jestem wdzieczny. Zapraszam.
pawel_k
Cytat
(...) nie jest hybryda procedury z obiektem, jak PHP i C++ (...)
mnie takie stwierdzenia nie przekonują. java jest niby strasznie obiektowym językiem, ale to ze program startowany jest z jakiejs klasy nie czyni kodu obiektowym. pamietam jak mielismy jave na studiach - taka prawda ze przez wszystkie zajęcia pisaliśmy kod strukturalny, mimo że korzystaliśmy z obiektów. dopiero na ostatnich zajęciach dostaliśmy drzewa pisane w pełni zgodnie z paradygmatem obiektowym - z grupy 30 osób może 3 wiedziały co się dzieje...
Radarek
Cytat
Panowie (i panie). Głosuję za zamknięciem tego topiku, bo coś czuję, ze zaraz poleje się krew ; )
Proszę nie odbierajcie tego postu personalnie, bo ja atakuję jedynie poglądy, nie ludzi.


E tam, dopóki nie padają słowa na k, ch to nic się nie dzieje :-).
Cytat
Obejrzałem dwa filmiki z Twojego bloga ~Radarek. Pomysł na promocję fajny... ale tylko pomysł. Te prezentacje ruby vs php to przecież taka bzdura, że aż mi się wierzyć nie chciało, że ktoś to nakręcił. Ujawniają one (filmiki), ze społeczność Ruby ma jakieś kompleksy.

Ujawniają one, że społeczność Ruby ma poczucie humoru. Nie widzę problemu by społeczność Php nagrała podobne filmiki, gdzie pośmieje się (razem z Rubbistami) z Rubiego smile.gif. Oglądnij ostatni, tj 5 filmik - tam akurat trochę ironicznie przedstawione są 2 hasła Railsowe "Web development that doesn't hurt" i "No need to repeat yourself".

Cytat
To niepokojące, że "prawdziwi" programiści nie wiedzą, że zmiana obsługiwanej bazy danych w php to kwestia plików konfiguracyjnych, a najczęściej proces przezroczysty dla użytkownika.

Szkoda, że nie doszedłeś do momentu, w którym napisałem "Od razu uprzedzam, zanim zaczną sie komentarze. Chłopaki zrobili to dla żartu, należy podchodzić do tego z rezerwą. Sami na swojej stronie internetowej napisali, że zdają sobie dobrze sprawę z tego, że PHP też ma frameworki, ORMy i inne takie :-).". Sami autorzy tych filmików napisali na swoim blogu:
Cytat
On a serious note, though, we're not trying to bash any frameworks or languages... We know PHP has frameworks that allow for organization like Rails as well as database abstraction and OR mapping. We believe in using the best tool for the job, what ever that may be. These videos are for FUN and are not intended to start language or framework wars. Which is why our next ones are going to be vi vs emacs. Totally kidding.

Więcej luzu...

Cytat
Podobne argumenty padają w dyskusji - również tej, na siłę próbujecie przekonać php'owców, że ruby jest lepsze (to jeszcze ok), ale za chwilę czuję, że gardzicie tymi ludźmi. Przypomina to trochę flame war windziarzy z linuksowcami, gdzie Ci drudzy pogardliwie odnoszą się do oponentów. Problem nie leży w tym, że któryś z języków jest lepszy - problemem są fanatyczne przekonania ludzi. Od zarania dziejów te same - moje, znaczy lepsze.
Wygląda mi to na kampanię negatywną - php czegoś nie ma, my to mamy i jesteśmy fajni. Szkoda tylko, że jako argument w merytorycznym sporze nie można użyć stwierdzeń z tych filmików, bo po prostu mijają się z prawdą.

Na początku byłem bardzo spokojnie nastawiony, ale jak czytam
Cytat
Ponadato, powiedzmy szczerze (zresztą ~splatch już to zaznaczył) Ruby bez RoR byłby niczym.
PHP go kładzie nawet gdyby nie miało zadnego frameworka.

to nie wiem czy mam płakać czy się śmiać. To jak mam reagować na to jak nie agresją, skoro takie opinie wydają osoby, które nie znają w ogóle Rubiego.

Cytat
~mike, czy Ja padamy ofiarą stwierdzeń "Nie programowałeś - nie wiesz". Guzik z pętelką - wiem, bo mimo iż nie znam języka, to mogę z powodzeniem czytać jego kod i wychwytywać konstrukcje, które we wszystkich językach są niemal identyczne. W ten sam sposób uczyłem się wzorców czytając kod Javy, a ostatnio co rusz zaglądam do źródeł w pythonie. Obejrzałem sobie kilkanaście frameworków do php. Przy dziesiątym nie musiałem sprawdzać jak działa - wystarczyło zajrzenie do kilku plików i wyobrażenie sobie kroków, które muszę wykonać aby otrzymać działającą aplikację. RoR nie był wyjątkiem - nie rzucił mnie na kolana, nie zaparzył mi kawy i nie poszedł po zakupy.

No piękniej to nie mogłeś tego ująć. "Guzik z pętelką - wiem, bo mimo iż nie znam języka, to mogę z powodzeniem czytać jego kod i wychwytywać konstrukcje, które we wszystkich językach są niemal identyczne." Jedyne co możesz powiedzieć patrząc na kod w innym języku to to, że Ci się nie podoba składnia (i tak prawdopodobnie będzie gdy składnia jest trochę inna od tej do której się przyzwyczaiłeś).

Cytat
Najbardziej mnie denerwuje to, że Ruby nie jest w stanie zaistnieć ne tocząc piany w którąś stroną.
Ciągle porównania, które jakoby miały ujawnić porażki wszędzie indziej tylko nie w Ruby.
Chłopaki, pokażcie mi plusy Ruby'ego bez atakowania jakiegokolwiek języka programowania.


Pianę to my toczymy jak padają takie słowa jak Twoje wcześniej, chociaż nie masz kompletnie pojęcia o Rubim (gdzieś coś słyszałeś). I taka mała uwaga: Ruby już zaistniał czy tego chcesz czy nie.
bumelang
Cytat(pawel_k @ 1.06.2007, 16:46:10 ) *
mnie takie stwierdzenia nie przekonują. java jest niby strasznie obiektowym językiem, ale to ze program startowany jest z jakiejs klasy nie czyni kodu obiektowym. pamietam jak mielismy jave na studiach [...]


Java to jest C++ tylko nieco uproszczony, bo nie musi sie wiazac z kodem w C bez pisania wrapperow. To tez jest jezyk przemyslu - kompromis miedzy tym, co by sie chcialo, a tym, co jezyk musi spelniac (w tym przypadku byla to skladnia podobna do C++ i wydajnosc kodu). Ruby oferuje znacznie więcej - sprobuj sie zapoznac choby z http://www.ruby-lang.org/pl/

A tak na marginesie, rozbudowana dynamiczna typowalnosc (prosta jest tez w PHP) jest oczywiscie cecha Ruby (czyli slynne 10.times { puts "hello" }), ale to nie sprawia, ze z jezykiem pracuje sie ultra wydajnie, co najwyzej przyjemniej. Ale na tym swiat Ruby sie nie konczy.
nasty
Cytat
No piękniej to nie mogłeś tego ująć. "Guzik z pętelką - wiem, bo mimo iż nie znam języka, to mogę z powodzeniem czytać jego kod i wychwytywać konstrukcje, które we wszystkich językach są niemal identyczne." Jedyne co możesz powiedzieć patrząc na kod w innym języku to to, że Ci się nie podoba składnia (i tak prawdopodobnie będzie gdy składnia jest trochę inna od tej do której się przyzwyczaiłeś).
Gówno prawda! Znając dobrze jeden-dwa języki, można z zrozumieniem czytać kod pisany w innych językach.
Jako dowód podam Ci przykłady pisane w różnych językach, IMO żaden doświadczony programista nie powinien mieć żadnego problemu z ich zrozumieniem:
1. C#:
Kod
using System;

public class CommandLine2 {
   public static void Main(string[] args) {
       Console.WriteLine("Number of command line parameters = {0}", args.Length);
       foreach(string s in args) {
          Console.WriteLine(s);
       }
   }


2. C++:
Kod
#include <iostream.h>

void main(int argc, char *argv[])
{

    for(int i=0; i < argc; i++)
       cout<<argv[i];

}


3. Java:
Kod
public class Echo {
    public static void main (String[] args) {
        for (String s: args) {
            System.out.println(s);
        }
    }
}


4. VB:
Kod
Imports System
Module Example
    Sub Main(ByVal Args() as String)
        Dim I = Args.Length
        Console.WriteLine(I & " arguments")
        Dim J As Integer
        For J = 0 to I-1
              Console.WriteLine(J & ": " & Args(J))
        Next
    End Sub
End Module

Tak samo jest z zrozumieniem logiki i sensu jakiejś platformy/frameworku. Osoba dobrze znająca 1-2 frameworki, nie ma problemu z zrozumieniem o co chodzi w innych. Dlatego sadze ze argumenty typu "nie używałeś - spadaj" są chybione.
sztosz
@Nasty: Nie sposób się nie zgodzić.

Przykład jest bosko prosty biggrin.gif

PS. Widać jak dupiate VB jest biggrin.gif
Radarek
Nasty
Cytat
Tak samo jest z zrozumieniem logiki i sensu jakiejś platformy/frameworku. Osoba dobrze znająca 1-2 frameworki, nie ma problemu z zrozumieniem o co chodzi w innych. Dlatego sadze ze argumenty typu "nie używałeś - spadaj" są chybione.


Być może nie wyraziłem się jasno. Oczywiste jest, że języki w jakiś sposób są podobne (tu pętelka, tam wrunek, typy proste, stringi, tablice itp), więc znając 1, 2 języki zrozumiesz prawdopodobnie inne (w dużym stopniu). Ale chodziło mi o to, że patrząc na samą składnie jesteś w stanie powiedzieć czy fajnie sie w tym pisze czy nie. Bo wpływa na to wiele rzeczy: składnia (to widzisz i tylko to możesz ocenić z patrzenia), ale także api, prostota pisania, dostęp do bilbiotek itp (z samego przeglądania kodu nie da się tego poczuć). I proszę mi tu bez gówien bo ja mój ton obniżyłem, Wy się zapieracie, że to ja (my?) jestem agresywny, a sami nie jesteście lepsi (a nas (broniących Rubiego) jest 2-3, Was cała reszta).
sztosz
Cytat(Radarek @ 1.06.2007, 22:48:54 ) *
Ale chodziło mi o to, że patrząc na samą składnie jesteś w stanie powiedzieć czy fajnie sie w tym pisze czy nie.


Jak to nie? Widzę VB, i nie mam ochoty na nic, widzą Pythona, Rubiego i... trudno żeby się ni chciał. A w Pythonie to po prostu piszę, w PHP piszę i debuguję, a w C debuguję. Składnia ma ogromne znaczenie.
Radarek
No bez jaj, jaki cudem, po przeglądnięciu kilku listingów kodu w danym języku jesteś w stanie stwierdzić czy dany język spełnia Twoje wymagania? Rozumiem, że jak widzisz kod assemblera, czy nawet tego nieszczęsnego VB to można szybko dojść do wniosku, że w tym pisać nie chcemy. Ale nie przy tak wysokopoziomowych językach jak php, ruby, python. Przecież kod źródłowy wpierw trzeba napisać, poczuć na własnej skórze, że ktoś coś kompletnie schrzanił (np api) a coś innego jest zrobione bardzo dobrze. Praktyka to podstawa. Równie dobrze można powiedzieć, że to czy jakiś posiłek jest dobry poznasz po jego wyglądzie, to czy samochód się dobrze prowadzi bo zobaczeniu go w tv. Panowie. Nie róbmy sobie jaj...

Cytat
A w Pythonie to po prostu piszę, w PHP piszę i debuguję, a w C debuguję. Składnia ma ogromne znaczenie.

A na to akurat składnia nie ma już takiego wpływu. Tylko to co wspomniałem wcześniej api, spójność nazw, prostota, przemyślane konstrukcje języka. A w przypadku C to jest także kwestia niskiego poziomu pisania (wskaźniki), martwienie się o alokację i dealokację pamięci.
sztosz
Złe porównanie z tym posiłkiem, czy samochodem. To raczej tak że po jednym kęsie, możesz powiedzieć że ci smakuje, a po 5 minutach jazdy będziesz wiedział że dobrze się samochód prowadzi. No ale kilka tabliczek czekolady każdego może (nie musi) zemdlić. Po kilku przykładach wiesz że jest to język którym warto się zainteresować. Ale może się okazać że nie był to strzał w dziesiątkę. Ktoś już wspomniał że tak na prawdę liczą się osobogodziny, a efektywność pracy programisty w danym języku, a tu składnia ma ogromne znaczenie. Na pewno łatwiej i szybciej będę pisał w Pytonie niż w VB.NET, i to że ten drugi ma ze sobą .NET Framework nie ma większego znaczenia dla tego czy pracuję wydajnie i szybko, skoro rzygam a widok VB.
Nightmare
Czy jest wogóle sens dyskutować na temat czy jeden język wypiera drugi. Myślę, że nie liczy się to czy programuje w Ruby czy w PHP ale jakie to daje efekty. Oczywiście każdy może przedstawić opinie, że lepiej programuje mu się w danym języku ale nie powinien tworzyć stwierdzeń typu "Ten język wypiera inny." Bo jeśli programista, który do tej pory używał danego język i uzyskiwał podobne efekty tym samym kosztem to po co ma się teraz przerzucać na inny. Jak mu wygodniej niech używa jakiego chce, wolnośc Tomku w swoim domku.
Rafael6666
Też tak myślę... Przecież Java służy całkiem do czego innego. PHP i Java mogą współpracować ze sobą, ale nie się nawzajem wypierać smile.gif ... A co do Ruby to wątpię, żeby wyparł PHP (bardzo w to wątpię). Język Ruby jest taki dziwny trochę...
Sedziwoj
Cytat(Rafael6666 @ 5.06.2007, 19:43:02 ) *
A co do Ruby to wątpię, żeby wyparł PHP (bardzo w to wątpię). Język Ruby jest taki dziwny trochę...

Może dla Ciebie jest dziwny, ograniczone spojrzenie na świat jest złe, lepiej umieć patrzeć z różnych aspektów.
Jak tak czytam i analizuję powody zwiększenia popularności danych języków, to jednak widoczne są przyczyny zwiększenia popularności. A znając ogólną tendencje ludzkości, to Ruby nie wyprze PHP, co najwyżej zdobędzie pewien procent rynku i na tym się zatrzyma. No chyba że jakaś rewolucja będzie, ale to nie jest już sprawa tego tematu.

A jeszcze zahaczając o składnie, to nie widzę powodu aby ją włączać w dyskusje, bo to nie ona przyniosła zaistnienie Ruby na rynku. Chociaż już patrzyłem na parę kodów, ale nadal nie mam czasu aby coś się poduczyć pisania w Ruby, zapewne to zrobię jak tylko się znajdzie troszkę tego czasu. Bo zawsze lepiej mieć jakiekolwiek mniemanie o innych językach.
Cysiaczek
Nie wytrzymałem i postanowiłem jeszcze się wypowiedzieć.

Naprawdę żałosne jest to, jak promuje się Ruby i RoR. Kampania negatywna w najgorszym wydaniu. Nie mówi się całej prawdy, tylko tą wygodną.

Proszę - oto propaganda
http://www.idg.pl/news/112853/Ruby.on.Rail...ilverlight.html

i jeszcze ankieta... żenujący poziom merytoryczny autorów, ale i osób, które im doradzały.
http://www.pcworld.pl/pojedynek/207.html
dr_bonzo
Cysiaczek: i niby to DHH i spolka uzadzili te ankiete?

Ale ankieta jest bez sensu, porownuja jezyk do FW.
Cysiaczek
@dr_bonzo - Właśnie o to chodzi. Bez przerwy słyszę, co ten Ruby i RoR nie potrafią. Ciągle padają negatywne stwierdzenia w stylu:
W php trzeba było...
W przeciwieństwie do php...
...robi się lepiej niż w php.

Co jest do jasnej cholery? Brakuje rzeczowych argumentów? Trzeba bez przerwy porównywać? Gdzie są stwierdzenia w stylu:

Podobnie jak inne jezyki...
Podobnie jak niektórych frameworkach...
W RoR podobnie jak w Symfony można zrobić tak...

Tych stwierdzeń powinno być więcej.

Nie język krytykuję, nie RoR - głupotę, ignorancję, zakłamanie i zadufanie.

Pozdrawiam.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.