Temat: PHP VS Ruby VS Python - prosze o wypowiedź zaawansowanych...
Roman Piekarski:
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.
Szybkość działania: PHP > Python > Ruby
Szybkość pisania kodu: Ruby >= Python > PHP
Jeśli chodzi o dostępność bibliotek i frameworków zdecydowanie wygrywa Python, Ruby próbuje go gonić (np. "kradnąc" pewne pomysły np. WSGI --> rack). W PHP bibliotek też jest sporo, ale niestety są one wątpliwej jakości (przeglądał ktoś kiedyś kod Smarty?), jedynym wyjątkiem od reguły, o którym mi wiadomo to Zend Framework, który jest na prawdę porządnie przemyślany i napisany.
Siermiężność PHP wbrew pozorom ma swoje zalety - na dobrym programiście wymusi ona przemyślenie i dobre zaplanowanie obiektowej struktury projektu, by dalsze rozwijanie aplikacji było mu lekkie i przyjemne.
Uświadomiłem to sobie, jak pisałem testy jednostkowe do pewnego modułu i nagle okazało się, że w phpunit nie da się mockować metod statycznych i natywnych metod PHP. Z pomocą przyszło mi dependency injection, co znacząco poprawiło czytelność kodu.
Niestety wadą "siermiężności" jest to, że trzeba się troszeczkę więcej napisać, a wiadomo więcej kodu => więcej błędów i więcej WTF :D
Ruby i Python w stosunku do PHP mają "wyższy próg startu". Wydaje mi się, że w przypadku tych dwóch języków trzeba o wiele większego zrozumienia istoty rzeczy by zacząć pisać pierwsze projekty, które robią coś więcej niż wypisanie "Hello World".
I kolejne moje subiektywne odczycie: Rubiego i Railsów trzeba ciągle się uczyć. Chodzi mi tu głównie o śledzenie blogów, przeglądanie nowych gemów i pluginów. Słowem ciągle ulepszanie swojego warsztatu by nadążyć za nowymi trendami. Mam wrażenie, że świat PHP nie rozwija się aż tak dynamicznie. Mnogość narzędzi Rubiego i Rails, które mogą ułatwić nam pracę może przyprawić o zawrót głowy. Dla przykładu: RSpec, Shoulda, factory_girl, cucumber, mocha.. a PHP mamy tylko biedny PHPUnit ;)
Podejrzewam, że to samo można powiedzieć o Pythonnie.
W przypadku PHP wydaje mi się, że jest troszeczkę mniej rzeczy do ogarnięcia.