Roman Piekarski

Roman Piekarski Programista do
wynajęcia

Temat: PHP VS Ruby VS Python - prosze o wypowiedź zaawansowanych...

Witam,

Jestem ciekawy, jakie są wasze doświadczenia z przejścia z języka PHP do któregoś z tych języków. Interesuje mnie wypowiedź doświadczonych/zaawansowanych programistów PHP, którzy programują w Ruby (RoR) lub w Python. Wielu programistów wypowiada się negatywnie na temat PHP, a nie mają dużego doświadczenia w tym języku i nie znają jego możliwości.

Szczególnie interesuje mnie zdanie programistów którzy aktywnie kożystają z symfony (1.0 - 1.2) lub z ZF.

Licze na ciekawą dyskusje:)

Pozdrawiam.
Marek Wywiał

Marek Wywiał Programista,
administrator,
instruktor

Temat: PHP VS Ruby VS Python - prosze o wypowiedź zaawansowanych...

W PHP piszę od czasów wyjścia wersji 3, w pythonie mnie więcej tyle samo (wcześniej perl). Co do ruby to przeczytałem tylko 2 książki (dużą i małą :) ) i napisałem parę skryptów więc można tego nie liczyć.

W PHP używam Symfony (praktycznie tylko webdev) pythona używam w wielu innych dziedzinach, dla www używałem zope2 (staram się teraz nawrócić do zope3 po przerwie) i trochę django.

Patrząć ogólnie na programowanie dla web PHP plasuje się dla mnie w wartwie szablonu (taka jego geneza). Działa i zachowuje się całkiem dobrze jako język szablonów, nie przejmując się niezdefiniowanymi zmiennymi, czy używaną pamięcia (szablon raczej nie jest długo działającym demonem).
Oprócz samej warstwy szablonów dostarcza też wielu innych funkcji (czasem obiektów) by do warstwy szablonu dostarczyć jakieś informacje z baz danych czy je po drodze obrobić. Jednak ta 'warstwa' nadal dziedziczy zachowania specyficzne dla warstwy szablonu, co sprawdza się przy pewnych uproszczeniach.

w/g mnie nadaje się na mniejsze aplikacjie typu blog/forum/prv.page, jakiś mały ecommerce itp, gdzie nieprzechwycone notice, niezgłaszane błędy w obliczeniach (przepełnienia) nie są krytyczne dla naszej aplikacji, zaś kod nie jest zbyt duży (możemy żyć bez namespaces, ilość obiektów nie jest duża, więc nie obciąża naszego softu)

W symfony widać obejścia na czas działania, np admin/crud generator.W django jest to po prostu aplikacja admin, zainstancjonowana, działająca w trybie stateful, i generator jest zbędny. Cache zrzucany do plików (wraz z losowym usuwaniem przeterminowanych plików z cache, niestety bez sprawdzania zależności tych plików co czasem kończy się fatalem w symfony ~1.0.17), w django dobrze sprawuje się procmem.
Ilość operacji dyskowych potrzebnych do wczytywania dziesiątków partiali + plików cache obciąża mocno każdy request (php zawsze wstaje), czego nie mamy np w django.

Element, który też przeszkadza w PHP to community. Pytania na pl.comp.lang.php rzadko dotyczą programowania, częściej podstawowych pytań o składnię, lub problem z rozwiązaniem prostych problemów z dobrze znanymi algorytmami poprzez bardzo dziwny kod. Osoby te potem tworzą np pluginy do symfony, których użyteczność wynosi 0. Niekonfigurowalne, zahardcodowane zlepki prawie losowych funkcji php. Jeżeli plugin nie został napisane przez Fabien'a lub kogoś kto jest prawdziwym programistą, rezygnuję i poświęcam czas na napisanie własnego.

W Pythonie zaś większość pakietów i dodatków, którę znajduję są napisane użytecznie. Sam język jest zaprojektowany, zawiera najbardziej użyteczne elementy z dobrze zaprojektowanym, spójnym interfejsem (nie ma chaosu nazewnictwa, niekonsekwencji w kolejności parametrów i 5 funkcji realizujących prawie to samo, ale zadna tego czego potrzebujesz - to znam z php). Konsewencja i spójność skutkuje tym, że nawet po przerwie w pisaniu w Pythonie, gdy potrzebuję coś napisać praktycznie nie muszę sięgać do dokumentacji, albo pamiętam gdyż jest proste lub po prostu robię to co jest intuicyjne (i o dziwo, najczęściej działa) :).

Reasumując,
PHP może i tak, jeśli od kodu nie wymagasz dużej odpowiedzialności, czyli coś w warstwie prezentacji (pobierać i wyświetlać, ew. zapisać).

Gdy soft jest duży, ma być wspierany przez długi czas i przez wiele osób (które w trakcie wiele razy się zmienią) + wymagamy od kodu odpowiedzialności (jeżeli program ma zawieść niech zrobi to jak najszybciej i z wielkim hukiem), zamiast 'zadziałania' do końca na niezdefiniowanych zmiennych, nieprzekazanych lub przekazanych zbyt wielu parametrach (głupi błąd, ale bywa) i niszczenia lub fałszowania wyników z powodu zasady 'byle do końca', wtedy wybieram python'a (ew. jeszcze coś innego).

konto usunięte

Temat: PHP VS Ruby VS Python - prosze o wypowiedź zaawansowanych...

Roman Piekarski:
[...]
Jestem ciekawy, jakie są wasze doświadczenia z przejścia z języka PHP do któregoś z tych języków. Interesuje mnie wypowiedź doświadczonych/zaawansowanych programistów PHP, którzy programują w Ruby (RoR) lub w Python. Wielu programistów wypowiada się negatywnie na temat PHP, a nie mają dużego doświadczenia w tym języku i nie znają jego możliwości.

Szczególnie interesuje mnie zdanie programistów którzy aktywnie kożystają z symfony (1.0 - 1.2) lub z ZF.

Licze na ciekawą dyskusje:)


IMHO raczej liczysz na flejma.

Jeśli liczysz na opinie „zaawansowanych pehapowców” powinieneś raczej zapytać na grupie PHP.

Z moich obserwacji wynika, że prawie każdy, kto zajmuje się programowaniem (zwłaszcza na potrzeby www) w Pythonie, ma jakieś doświadczenie w PHP. Inną sprawą jest, że mało kto się do tego przyznaje :)

Odczucia ludzi zaawansowanych w technologii X, którzy przeszli na technologię Y są niemiarodajne. Jeśli ktoś jest „zaawansowany” to z reguły ma też wyrobione pewne nawyki, które zwiększały jego efektywność pracy w technologii X a których niestety przy pracy w technologii Y musi się pozbyć. Jest to prawie zawsze bolesne. Trudno przestawić swój tryb myślenia.

Powinieneś raczej zadać inne pytanie – czemu ludzie w ogóle migrują z PHP na Pythona czy Rubiego? I czemu zjawisko odwrotne (przejście/powrót z Rubiego/Pythona na PHP) praktycznie nie występuje.
Roman Piekarski

Roman Piekarski Programista do
wynajęcia

Temat: PHP VS Ruby VS Python - prosze o wypowiedź zaawansowanych...

Powinieneś raczej zadać inne pytanie – czemu ludzie w ogóle migrują z PHP na Pythona czy Rubiego? I czemu zjawisko odwrotne (przejście/powrót z Rubiego/Pythona na PHP) praktycznie nie występuje.

Ciekawe spojżenie na sytuacje. W takim razie, co jest przyczyna takiego stanu rzeczy? Czy dlatego, ze bycie programista PHP nie jest cool? Wlasnie takich odpowiedzi chcialbym uniknac. Interesuja mnie konkrety funkcjonalne, rozwiazania technoligiczne, wieksze badz mniejsze mozliwosci jezyka i co najwazniejsze szybkosc tworzenia produktu finalnego co jest rzeczą na dzien dzisiejszy bardzo wazna w biznesie.

konto usunięte

Temat: PHP VS Ruby VS Python - prosze o wypowiedź zaawansowanych...

Roman Piekarski:
Ciekawe spojżenie na sytuacje. W takim razie, co jest przyczyna takiego stanu rzeczy? Czy dlatego, ze bycie programista PHP nie jest cool?

Wątpię, by decyzje o wyborze charakteru i narzędzi pracy były dokonywane wyłącznie na podstawie tego czy dane narzędzie jest cool. Nie wiem, być może są i takie przypadki. Mój przypadek był inny.
Wlasnie takich odpowiedzi chcialbym uniknac. Interesuja mnie konkrety funkcjonalne, rozwiazania technoligiczne, wieksze badz mniejsze mozliwosci jezyka i co najwazniejsze szybkosc tworzenia produktu finalnego co jest rzeczą na dzien dzisiejszy bardzo wazna w biznesie.

Możliwości teoretyczne są takie same. W praktyce o Pythonie można jednak mówić jako o języku ogólnego przeznaczenia, czego nie można powiedzieć o PHP, który powstał w zamyśle jako język szablonowy na potrzeby webu. W Pythonie możesz programować na wysokim jak i niskim poziomie abstrakcji. Możesz programować obiektowo, strukturalnie i po części funkcyjnie. Możesz tworzyć oprogramowanie współbieżnie. W ogólnej opinii (z którą w pełni się zgadam) charakteryzuje się dość dużą czytelnością kodu źródłowego. Itd. itp. - na pewno znajdziesz w sieci dużo więcej argumentów z wielu wiarygodnych źródeł.

Jeśli chodzi o rozwiązania technologiczne to jest ich wiele. Jeśli nie ograniczymy się do rozwiązań webowych, to śmiem twierdzić że jest ich więcej. I uważam, z racji większej elegancji samego języka są to w większości również rozwiązania bardziej eleganckie.

Jeśli chodzi o szybkość tworzeni produktu finalnego to więcej do powiedzenia mają w tej kwestii gotowe rozwiązania i dostępne narzędzia niż sam język programowania.

Ciężko przytoczyć jakieś konkrety w sytuacji, w której nie wiadomo o czym tak naprawdę mówimy. O jakich produktach, jakie zestawy narzędzi chcesz porównywać? Bo jeśli dosłownie miałbym zinterpretować treść Twojego pierwszego posta, to odniósłbym wrażenie, że chcesz porównać dwa frameworki webowe języka PHP z dwoma innymi językami skryptowymi. Co siła rzeczy jest niemożliwe.

Ze swojej strony zachęcam do nauki pythona i przekonaniu się „na własnej skórze”.Tomasz Elendt edytował(a) ten post dnia 26.04.09 o godzinie 13:42
Marcin Lulek

Marcin Lulek Programista -
WebReactor

Temat: PHP VS Ruby VS Python - prosze o wypowiedź zaawansowanych...

Roman Piekarski:
Witam,

Szczególnie interesuje mnie zdanie programistów którzy aktywnie kożystają z symfony (1.0 - 1.2) lub z ZF.

Licze na ciekawą dyskusje:)

Pozdrawiam.

Nie chce sie rozwodzic tutaj jakos szczegolnie dlugo nad tym co powiedzieli przedmowcy, bo w wiekszosci sie z nimi zgadzam.

Ale pytasz o roznice pomiedzy aplikacja napisana z uzyciem FW pythonowego vs phpowego. Ja mam prawie 3 lata doswiadczenia z ZF, teraz programuje w pylons.

To tak 2 rzeczy ktore bardzo wplywaja na zachowanie i predkosc aplikacji:

Korzystajac z sqlalchemy i dobrodziejstw permanentnego procesu aplikacji, nie musisz nawiazywac polaczenia z baza dla kazdego requesta - mniejszy narzut.

A dwa, jako ze twoja aplikacja to proces ktory stale siedzi w pamieci, nie trzeba tez includowac 100 plikow jak w ZF dla kazdego requesta,rowniez likwidujesz duzy narzut ktory jest odczuwalny nawet jesli korzystasz z APC czy innego akceleratora.

Tak pozatym np. w ZF i pylonsie podejscie do MVC jest bardzo podobne, routing tez, nie jest ciezko sie przesiac wg. mnie, chociaz to pewnie kwestia indywidualna.
Marek Wywiał

Marek Wywiał Programista,
administrator,
instruktor

Temat: PHP VS Ruby VS Python - prosze o wypowiedź zaawansowanych...

Tomasz Elendt:
Ze swojej strony zachęcam do nauki pythona i przekonaniu się „na własnej skórze”.

Przyłączam się do powyższego. W mojej grupie wszelkie wywody przestały być potrzebne, gdy każdy sam zasmakował prostej aplikacji w pytonie (niezależnie czy to web django/pylons czy mały webspider czy cokolwiek innego).
Roman Piekarski

Roman Piekarski Programista do
wynajęcia

Temat: PHP VS Ruby VS Python - prosze o wypowiedź zaawansowanych...

Marek Wywiał:
Tomasz Elendt:
Ze swojej strony zachęcam do nauki pythona i przekonaniu się „na własnej skórze”.

Przyłączam się do powyższego. W mojej grupie wszelkie wywody przestały być potrzebne, gdy każdy sam zasmakował prostej aplikacji w pytonie (niezależnie czy to web django/pylons czy mały webspider czy cokolwiek innego).

Jakie w takim razie polecacie narzędzia developerskie do pracy w python'ie?

Co do frameworkow to wiem, ze prym wioda pylons i django.

Czy macie może jeszcze jakieś ciekawe wskazówki, uwage, które mogą mi się przydać w początkowych fazach wdrażania się w tę technologię?

konto usunięte

Temat: PHP VS Ruby VS Python - prosze o wypowiedź zaawansowanych...

pylint, pyflakes, pydev lub ew. vim z pysmell tags
L P

L P podskala.net

Temat: PHP VS Ruby VS Python - prosze o wypowiedź zaawansowanych...

Vi[m] - tak, miodzio.

http://python.about.com/b/2007/09/26/vi-tips-for-pytho...
Marek Wywiał

Marek Wywiał Programista,
administrator,
instruktor

Temat: PHP VS Ruby VS Python - prosze o wypowiedź zaawansowanych...

vim. Próbowałem już chyba wszystkiego, jednak masa krytyczna po stronie vim'a zawsze mnie przeciąga po paru próbach na swoją stronę mocy ;)

do tego:
* easy_install - coś ala PEAR, http://peak.telecommunity.com/DevCenter
/EasyInstall
* virtualenv - dowolna ilość dowolnie skonfigurowanych środowisk w przestrzeni użytkownika http://pypi.python.org/pypi/virtualenv - easy_install virtualenv
* pylint - analiza kodu źródłowego http://pypi.python.org/pypi/pylint - easy_install pylint
* ipython - python shell na dopalaczach http://ipython.scipy.org/moin/

z IDE, jeżeli eclipse to pydev całkiem miło działa. Z innych to:
* eric http://eric-ide.python-projects.org/
* boaconstructor - dla aplikacji z GUI by wxPython http://boa-constructor.sourceforge.net/Marek Wywiał edytował(a) ten post dnia 27.04.09 o godzinie 20:01

konto usunięte

Temat: PHP VS Ruby VS Python - prosze o wypowiedź zaawansowanych...

Jakie w takim razie polecacie narzędzia developerskie do pracy w python'ie?

NetBeans for Python? http://download.netbeans.org/netbeans/6.5/python/ea/

Temat: PHP VS Ruby VS Python - prosze o wypowiedź zaawansowanych...

Wingware
Michał Chmielewski

Michał Chmielewski SAP FREELANCE
CONSULTANT

Temat: PHP VS Ruby VS Python - prosze o wypowiedź zaawansowanych...

PyScripter
Bartłomiej Ogryczak

Bartłomiej Ogryczak Backend Developer @
Layar

Temat: PHP VS Ruby VS Python - prosze o wypowiedź zaawansowanych...

Jestem ciekawy, jakie są wasze doświadczenia z przejścia z języka PHP do któregoś z tych języków. Interesuje mnie wypowiedź doświadczonych/zaawansowanych programistów PHP, którzy programują w Ruby (RoR) lub w Python. Wielu programistów wypowiada się negatywnie na temat PHP, a nie mają dużego doświadczenia w tym języku i nie znają jego możliwości.

Szczególnie interesuje mnie zdanie programistów którzy aktywnie kożystają z symfony (1.0 - 1.2) lub z ZF.

Jak dla mnie największą wadą języka PHP, jest to że nie istnieje. W ogóle nie ma czegoś takiego jak język PHP, jest jedynie implementacja, lepiej lub gorzej opisana. Prowadzi to do potworków takich jak "definicja" operatora ===. Jeśli by wierzyć opisowi dokumentacji, to $a === $b powinno być równoważne $a == $b && gettype($a) == gettype($b). Oczywiście nie jest, bo PHP jest "magiczne".

Kolejną potężną wadą PHP, jest to, że jest obiektawy, a nie obiektowy. W Pythonie funkcja jest obiektem, lista jest obiektem, krotka jest obiektem, moduł jest obiektem. W PHP żandna z tych rzeczy nie jest obiektem.

System typów i rzutowania w PHP -- totalna porażka. Integer typem bardziej ogólnym od stringa? Kto to wymyślił? No i jeszcze trzymanie wszystkiego w pamięci jako napisy (ZVAL), dżizas.

I tak bym mógł długo jeszcze... dekoratory, generatory, modularność.
A i tak nie zmieni to tego, że PHP był, jest i będzie popularny. Nawet w firmach z Alexa Top 10.

Vide: http://www.codinghorror.com/blog/2008/05/php-sucks-but...
Adam Mańczuk

Adam Mańczuk programista, artysta
informatyk

Temat: PHP VS Ruby VS Python - prosze o wypowiedź zaawansowanych...

Ależ tak, tylko co z tego??
PHP to pisany na bieżąco Personal Home page Procesor i takież jest jego zastosowanie.

W temacie dyskusji, Ruby i Python są językami dynamicznymi, funkcyjnymi, obiektowymi i funkcjonują w zbliżonym zakresie zastosowań.

Lubię C, C++, lisp, scheme i moim idolem jest Python.
Odnoszę wrażenie że jak bym lubił Pascal, Javę, Adę, Perl, to kochałbym się w Ruby.

Dla mnie Ruby to Python ale bez poczucia humoru.
Bartłomiej Ogryczak

Bartłomiej Ogryczak Backend Developer @
Layar

Temat: PHP VS Ruby VS Python - prosze o wypowiedź zaawansowanych...

Adam Mańczuk:
Ależ tak, tylko co z tego??
PHP to pisany na bieżąco Personal Home page Procesor i takież jest jego zastosowanie.

Ale trzymajmy może poziom dyskusji.
Facebook.com, Wikipedia.org, nasza-klasa.pl to "personal homepage"?

Sorry, PHP można nie lubieć -- ba, sam go nie cierpię. Ale takie "argumenty" jak powyższy, nie świadczą najlepiej o znajomości tematu.
Adam Mańczuk

Adam Mańczuk programista, artysta
informatyk

Temat: PHP VS Ruby VS Python - prosze o wypowiedź zaawansowanych...

Ależ jakie argumenty??
Wygłosiłem jako osobistą opinię, tezę nawiązującą do pierwszej nazwy frameworka czyli: Personal Home Page/Forms Interpreter.

Co do argumentów to nie ma sensu ich przytaczać, kolega zrobił to sam, dodam jeszcze niespodzianki z case sensitive (czasem jest, czasem nie jest), uroki dziedziczenia i wiele, wiele innych.

PHP nie był pisany z myślą o wielkich projektach. Jest prosty w instalacji, ma olbrzymią społeczność programistów, tworzenie aplikacji w nim jest proste i tanie. Taki BASIC internetu. W BASICu napisano sporo programów, ile dotrwało do obecnych czasów?? Kto z tu obecnych wie co robi polecenie 10 goto 10??

To nie jest forum poświęcone PHP i dalsza dyskusja na ten temat jest wg. mojego skromnego zdania bezcelowa.
Artur Świerc

Artur Świerc Programista PHP/Java

Temat: PHP VS Ruby VS Python - prosze o wypowiedź zaawansowanych...

obecnie chyba trudno opierać się tylko i wyłącznie na jednym języku - można napisac w phpie interfejs użytkownika, w pythonie backend, do tego jakiś soft dla konkretnego klienta w jee i to wszystko będzie ze sobą wspaniale współgrało.

A to jak się dany język nazywa nie powinno grać większej roli - ważne, że teraz się sprawdza. Fakt, ze w phpie trzeba umieć pisać, inaczej wychodzą babole bez ładu i składu, które 'jakoś' działają, a np w javie nie przeszły by nawet kompilacji.

konto usunięte

Temat: PHP VS Ruby VS Python - prosze o wypowiedź zaawansowanych...

Artur Świerc:
obecnie chyba trudno opierać się tylko i wyłącznie na jednym języku - można napisac w phpie interfejs użytkownika, w pythonie backend, do tego jakiś soft dla konkretnego klienta w jee i to wszystko będzie ze sobą wspaniale współgrało.

Utrzymaj do tego team programistów, aby ten system modernizować - nierealne. Poza tym po co łączyć PHP, Ryby, Pythona skoro można wszystko zrobić w Ruby lub wszystko zrobić w Pythonie, lub w ostateczności PHP (jeśli ktoś lubi).
A to jak się dany język nazywa nie powinno grać większej roli - ważne, że teraz się sprawdza.

To tak jakbym napisał, że marka auta jest nieważna - ważne, że jeździ teraz. Wydaje mi się, że moi klienci mają inne podejście ;)
Fakt, ze w phpie trzeba umieć pisać, inaczej wychodzą babole bez ładu i składu, które 'jakoś' działają, a np w javie nie przeszły by nawet kompilacji.
100% masz rację, ale mimo uważam, że w każdym języku trzeba umieć pisać - w Pythonie też wychodzą wspomniane przez ciebie "babole" ;)Bartosz Burclaf edytował(a) ten post dnia 17.03.10 o godzinie 11:54



Wyślij zaproszenie do