Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Migracja z PHP do innego języka.. i na odwrót
Forum PHP.pl > Inne > Hydepark
Quantum
Czy kiedykolwiek zastanawialiście się nad zmianą swojego "głównego" języka programowania ? Jakie były tego powody ? Czego brakowało Wam w poprzednim, a co zaintrygowało Was w nowym ?

Osobiście, jakiś czas temu szukałem odpowiedniego dla siebie frameworka w PHP. Wcześniej pisałem w Kohanie 2.3.4 czekając na zapowiadaną trójkę.. i rozczarowałem się jak i wiele innych osób. Dodatkowo totalny brak dokumentacji (praktycznie stoi w miejscu) był "wisienką na torcie". Postanowiłem spróbować innych języków, lecz z początku - nie zbyt na poważnie. W PHP przeszkadzał mi brak pełnej obiektowości. Mianowicie, nie mogłem napisać konstrukcji w stylu:
  1. array('a', 'b', 'c')->foreach($key, $value) {
  2. // operacje
  3. }

czy
  1. echo ('tekst')->ucfirst


Już sam operator "->" nie byłby zbyt trafiony, kombinacja 'tekst'->metoda psułaby wyraźnie estetykę kodu. Może i tak PHP był projektowany od początku.

Pierwszego "odkryłem" Pythona, składnia była dla mnie już o niebo lepsza, ale szukałem dalej, aż trafiłem na Ruby. Nigdy do tych języków nie przywiązywałem większej uwagi, kiedyś wydawały mi się nieco skomplikowane[?]. Po przetestowaniu obu, postanowiłem przysiedzieć trochę więcej w jednym i sprawdzić jego możliwości, plusy i minusy. Wybór padł ostatecznie na Ruby. Jedyny problem to taki, że na ten moment ten język nie jest zbyt popularny w Polsce. Rezultatem są nikłe oferty pracy i drogie hostingi (mam na myśli sytuacje, gdy wybieramy serwer pod małą stronę, np: "portfolio", w przypadku większych aplikacji i tak wybór pada na dedyk/vps). Po kilku dniach zapoznawania się z nową składnią i latach doświadczenia z pisania w PHP w kilku paradygmatach nauka kolejnego języka dotąd "idzie jak po maśle" smile.gif.

Jakie są Wasze doświadczenia w tym temacie ?
dziamber
Podobnie jak Ty, początkowo po PHP przerzuciłem się na Ruby. Ale jakoś nie starczyło mi motywacji może czasu na naukę. Jedyne co mi po ruby pozostało to 4 książki (w tym 2 o ROR) oraz domena ruby-lang.pl (na której chciałem rozpowszechnić ten język w kraju smile.gif). Kto wie może jeszcze do niego wrócę.

Co sprawiło że zainteresowałem się Ruby? Chciałem się nauczyć nowego języka, a że chodzą słuchy że mało jest programistów ruby więc postanowiłem ugryźć ten temat. Choć przyznam, że bardzo przypadło mi do gustu to, że w Ruby wszystko jest obiektem smile.gif

P.S.

Jeżeli chciałbyś prowadzić bloga o ruby to napisz mi na pw. Może razem stworzymy jakąś małą społeczność, a zarazem wrócę do nauki Ruby.
Zyx
Pewnie, tylko zaraz potem pojawiało się kilka zasadniczych pytań:

1. Jeśli nie PHP, to co? Nie czarujmy się, żaden język nie jest idealny, a jak ktoś twierdzi inaczej, jest niegodnym uwagi fanatykiem, któremu propaganda zaślepiła wzrok i który nie jest nawet godny nazywać się "programistą".

2. Co mam zrobić z prawie dziewięcioletnim bagażem doświadczenia w PHP?

3. I ile czasu zajmie mi poznanie nowego języka choćby do połowy mojej znajomości PHP?

4. Kto mi przepisze garść co fajniejszych bibliotek na ten nowy język? W myśl przysłowia "cudze chwalicie, swego nie znacie", mnóstwo programistów zdaje się nie zauważać, że od pewnego czasu PHP nie ma się czego wstydzić w tej kwestii i co więcej - takie rzeczy, jak Doctrine 2 to coś, czego inni powinni programistom PHP zazdrościć. Z bardziej przyziemnych rzeczy, po prostu odmawiam pracy z językiem, który nie będzie miał zaimplementowanego OPT albo czegoś działającego na podobnych zasadach smile.gif.

5. Czy naprawdę wady PHP są aż tak poważne, by warto było migrować?

Jak sobie odpowiedziałem na te pytania, wyszło mi, że prędzej napiszę własne PHP, niż zmienię język do tworzenia aplikacji WWW (bo poza nim znam i rozwijam także znajomość innych). W części przekonań utwierdziła mnie niedługa przygoda z Rubym i "jedynym słusznym" Ruby On Rails. Flejma nie chcę wszczynać, dlatego powiem tylko, że ani jeden, ani drugi mi się wybitnie nie spodobał.
mrok
Cytat
2. Co mam zrobić z prawie dziewięcioletnim bagażem doświadczenia w PHP?

Rozwijając temat - co mam zrobić z masa kodu php, który mogę w każdej chwili wykorzystać ponownie w innym projekcie? Przepisywać wszystko na nowo, żeby było ruby-way?


Osobiście średnio 2 razy w roku zaczynam pałać miłością do Pythona (bo to bo tamto), znajduję wiec jakieś małe wyzwanie w którym mogę go wykorzystać, potem wkurzam się, że piszę coś co częściowo mógłbym wziąć z wcześniej wykonanego projektu - i tak mi jakoś samo przechodzi winksmiley.jpg
SHiP
Zgadzam się z Zyxem. Ja swego czasu myślałem o migracji w trochę innym kierunku tj. do okienek(dokładnie QT) i nawet napisałem prawie kopię kurnika(ale tylko z jedną grą) i jak już skończyłem doszedłem do wniosku, że ja się na tym po prostu nie znam, bo mimo, że wszystko działało miałem wrażenie, że jest to napisane nieelegancko, bałem się o bezpieczeństwo połączenia, działanie na różnych Windowsach etc etc. Postanowiłem więc zostać przy php. Jednak aby czasem się "zrelaksować" uciekam od tego języka w stronę JavaScript. Troszkę inna technologia oraz całkowicie inne wymagania od programisty. Gdyby jeszcze na rynku były propozycje pracy dla programistów JS to z chęcią bym się przerzucił winksmiley.jpg.
erix
Cytat
Gdyby jeszcze na rynku były propozycje pracy dla programistów JS to z chęcią bym się przerzucił

Są, ale nie w PL. winksmiley.jpg I to zazwyczaj ze znajomością ExtJS (który - podobnie jak QT - jest potężnym frameworkiem).

Ale skoro już jesteśmy przy JS, to zawsze możesz pójść w stronę Titanium, czy AIR (Titanium, to platforma pozwalająca na pisanie aplikacji desktopowych w popularnych językach webowych, JS na pewno, PHP chyba też winksmiley.jpg)
marcio
Ja przy PHP pozostalem nic mi w nim nie brakuje lubie go taki jaki jest.
Jak mam ochote ucze sie i kodze w Python'ie i teraz bede zaczynal C#.
Nie ma powodu dla ktorego zaczalem kodzic tez w innych jezykach poprostu z czasem samo php mi sie znudzilo smile.gif

Wady wadami ale inne jezyki tez nie sa takie super ;]

Jak ktos patrzy na perspektywe pracy to w PHP jest ona nieskonczona ofert jest pelno z roznego rodzaju snitch.gif
Quantum
Cytat(Zyx)
Z bardziej przyziemnych rzeczy, po prostu odmawiam pracy z językiem, który nie będzie miał zaimplementowanego OPT albo czegoś działającego na podobnych zasadach .

System szablonów włącznie z pseudo-językiem został zaimplementowany w RoR. Fakt faktem jest to chyba jedyny framework do Ruby i jeżeli coś nam w nim nie odpowiada to nie mamy czego szukać w samym Ruby.

Cytat(Zyx)
Nie czarujmy się, żaden język nie jest idealny, a jak ktoś twierdzi inaczej, jest niegodnym uwagi fanatykiem, któremu propaganda zaślepiła wzrok i który nie jest nawet godny nazywać się "programistą".

Tak.. społeczność Rails, jest conajmniej dość agresywna w stosunku do porównujących ich język do innego, wystarczy rzucić okiem na ten plakat: szkolenie/2010/plakat_1000.jpg

Żaden język idealny nie jest, z tego co na początku udało mi się zauważyć to benchmark na jakiejś stronie porównującej języki webowe. Ruby było za PHP, lecz Ruby on Rails było już przed Symfony. Kilka dni temu znalazłem fajną stronkę, mianowicie: http://railsforphp.com/reference/. Pokazuje ona na przykładach jak używać odpowiedników funkcji/rozwiązań z PHP w Ruby/Rails.

Cytat(SHiP)
Jednak aby czasem się "zrelaksować" uciekam od tego języka w stronę JavaScript.

Pełna obiektowość, FTW ! biggrin.gif W sumie to właśnie dzięki JS-owi zacząłem poszukiwania odpowiednika pod względem składni i struktury do backend-u. Większą przyjemność sprawiało mi podpinanie nowych zdarzeń pod nowy interfejs niż jego obsługę po stronie serwera.

Cytat(marcio)
Jak ktos patrzy na perspektywe pracy to w PHP jest ona nieskonczona ofert jest pelno z roznego rodzaju

Racja, racja, ale sam przyznasz, że większość ofert pracy dla programisty PHP na samym PHP się nie kończy (pomijając (x)HTML, CSS, ew. JS - bo to właśnie technologie webowe, których nie wyobrażam sobię nie znać pracując na takim stanowisku). W dodatku nie są tak dobrze opłacane jak inne bo.. "i tak znajdzie się ktoś kto przystanie na nasze warunki".
batman
Odnoszę wrażenie, że podobny temat już był (i to nie jeden raz), ale ten wydaje się być najbardziej sensowny ze wszystkich. Mam nadzieję, że taki pozostanie i będzie można go przypiąć dla potomnych. A teraz do rzeczy.

Cytat(Zyx @ 10.08.2010, 22:41:55 ) *
2. Co mam zrobić z prawie dziewięcioletnim bagażem doświadczenia w PHP?
Wykorzystać w innym języku. Jeśli przesiadka odbywa się na inną technologię webową, to nie jest to aż tak trudne jak to się wydaje.

Cytat(Zyx @ 10.08.2010, 22:41:55 ) *
3. I ile czasu zajmie mi poznanie nowego języka choćby do połowy mojej znajomości PHP?
Dużo. Dlatego też podczas zmiany języka/technologii należy wziąć pod uwagę inne aspekty, takie jak kasa. Pracując jako programista PHP od X lat można wyrobić sobie pewną markę oraz stanowisko. Im dłużej się pracuje w jednym miejscu, tym więcej się zarabia. Przejście do zupełnie innego świata oznacza obniżenie zarobków oraz budowanie wszystkiego od nowa. Im człowiek starszy, tym mniej mu się chce takie coś zrobić.

Cytat(Zyx @ 10.08.2010, 22:41:55 ) *
4. Kto mi przepisze garść co fajniejszych bibliotek na ten nowy język? W myśl przysłowia "cudze chwalicie, swego nie znacie", mnóstwo programistów zdaje się nie zauważać, że od pewnego czasu PHP nie ma się czego wstydzić w tej kwestii i co więcej - takie rzeczy, jak Doctrine 2 to coś, czego inni powinni programistom PHP zazdrościć. Z bardziej przyziemnych rzeczy, po prostu odmawiam pracy z językiem, który nie będzie miał zaimplementowanego OPT albo czegoś działającego na podobnych zasadach smile.gif.
Ale po co przepisywać? Wystarczy znaleźć zamienniki. A Doctrine jest kopią Hibernate. Z tą zazdrością to bym się wstrzymał. Entity Framework z .NET bije Doctrine na głowę smile.gif

Cytat(Zyx @ 10.08.2010, 22:41:55 ) *
5. Czy naprawdę wady PHP są aż tak poważne, by warto było migrować?
To zależy. Jeśli ktoś chce tworzyć tylko strony www, PHP będzie dla niego najlepszym językiem.

Cytat(SHiP @ 10.08.2010, 23:08:00 ) *
Gdyby jeszcze na rynku były propozycje pracy dla programistów JS to z chęcią bym się przerzucił winksmiley.jpg.

Cytat(erix @ 10.08.2010, 23:09:46 ) *
Są, ale nie w PL. winksmiley.jpg I to zazwyczaj ze znajomością ExtJS (który - podobnie jak QT - jest potężnym frameworkiem).
Są i to w Polsce. Sam miałem okazję brać udział w rekrutacji na stanowisko programista JS (czysty JS bez żadnych zbędnych dodatków). Nie udało się, poległem na 3 etapie.

Cytat(erix @ 10.08.2010, 23:09:46 ) *
Ale skoro już jesteśmy przy JS, to zawsze możesz pójść w stronę Titanium, czy AIR (Titanium, to platforma pozwalająca na pisanie aplikacji desktopowych w popularnych językach webowych, JS na pewno, PHP chyba też winksmiley.jpg)
Wprawdzie można pisać aplikacje AIR w Javascript, jednak daleko im do aplikacji pisanych w Actioscript. Chociażby dlatego, że w JS (jeszcze) nie ma takiego cuda jak E4X.

Jeśli chodzi o przesiadkę, to od pewnego czasu zgłębiam tajniki Silverlight. Do tego siłą rzeczy doszedł C# (poznawałem go wcześniej, gdy .NET miał numerek 2, ale jakoś wiedza wyparowała). Obok Silverlight zdarza mi się grzebnąć coś w ASP.NET MVC i w tym przypadku z przesiadką nie byłoby żadnego problemu. Jeśli kiedykolwiek robiło się coś w dowolnym frameworku, który miał z MVC coś wspólnego, przesiadka na ASP nie sprawi większego problemu. Zasady są takie same, różni się jedynie język.

Z przesiadką na inną technologię wiąże się jeden dosyć poważny problem, o którym już wspomniałem - mniejsze zarobki (przynajmniej na start) oraz konieczność poznawania nowej technologii od podstaw. W przypadku Silverlighta jest to zupełnie inny model programowania. W PHP pisze się wszystko sekwencyjne, w SL programowanie oparte jest o zdarzenia. W PHP trzeba korzystać z różnych protez w warstwie prezentacji, w SL mamy XAML. PHP i ASP.NET to dwa zupełnie różne światy jeśli chodzi o serwer, na którym uruchamiane są aplikacje. Proces wdrażania aplikacji, dostęp do danych, konta użytkowników i ich prawa dostępu, ".htaccess" - to wszystko (a nawet więcej) trzeba poznawać na nowo i ktoś kto posiada dużą wiedzę w jednej dziedzinie, może czuć się zniechęcony faktem, że musi zaczynać od nowa. Wprawdzie łatwiej będzie mu tą wiedzę przyswoić, jednak jej ogrom może przytłaczać.
erix
Hmm, z nowymi technologiami raczej nie byłoby takiego problemu, gdyby nie fakt, że na hostingach współdzielonych nie ma po prostu do nich dostępu, więc kolejni adepci mają ograniczone pole manewru do nauki...

Zresztą, skoro update z PHP 5.2 na 5.3 stanowi problem, to o czym my rozmawiamy...?
Quantum
Znalazłem porównanie frameworków Symfony, Ruby on Rails i Django pod względem wydajności:

http://oldwiki.rubyonrails.org/rails/pages...ork+Performance

Django > RoR > Symfony

Bardzo zależy mi na skalowalności aplikacji. O tym jak szybko się aplikacje w RoR pisze to już się przekonałem przez wiele screencastów. Nie chciałbym jednak na samym starcie witryny iść w niesamowite koszta utrzymania x-mongrelów. Przejście z jednego języka na drugi nie może być dla mnie zbyt wysoką stratą wydajności z uwagi na fakt, że PHP i tak do "błyskawic" nie należy.

Z tego co wiem na Django oparte jest grono.net, znacie inne aplikacje narażone na podobny traffic oparte na RoR/Symfony ?
erix
Cytat
Przejście z jednego języka na drugi nie może być dla mnie zbyt wysoką stratą wydajności z uwagi na fakt, że PHP i tak do "błyskawic" nie należy.

Trzeba tutaj wspomnieć przykład Wykopu. Pierwotnie napisane w Ruby, jednak potem przepisali... do PHP. tongue.gif
Quantum
Cytat(erix)
Trzeba tutaj wspomnieć przykład Wykopu. Pierwotnie napisane w Ruby, jednak potem przepisali... do PHP.


Tu nie chodziło o wydajność, a o "siłe roboczą". Na ofertę pracy dla programisty PHP nadal zgłosi się kilka razy więcej potencjalnych koderów niż dla Ruby.
SHiP
@erix: a to nie było tak, że wykop był w php ale przepisali go do Ruby. Później się coś im nie pasowało i wrócili do php?
Quantum
Cytat(SHiP)
@erix: a to nie było tak, że wykop był w php ale przepisali go do Ruby. Później się coś im nie pasowało i wrócili do php?

http://antyweb.pl/krotka-rozmowa-z-wlascicielem-wykoppl/

Mam nadzieję, że rozwiałem wszelkie wątpliwości biggrin.gif

Co do hostingów to sprawa wygląda o niebo lepiej niż kilka lat temu, generalnie tam gdzie jest Ruby jest i przeważnie Python wraz z obsługą ich frameworków. Na pierwszy rzut oka to vipserv.org, megiteam.pl, vpsinn.pl, slicehost.com, cal.pl, newrails.pl mają nawet ciekawe oferty.
mike
Cytat(Quantum @ 12.08.2010, 19:40:24 ) *
Znalazłem porównanie frameworków Symfony, Ruby on Rails i Django pod względem wydajności:

http://oldwiki.rubyonrails.org/rails/pages...ork+Performance

Django > RoR > Symfony
To jeszcze poszukaj daty publikacji tego tekstu tongue.gif i zobacz której wersji (0.7.1587) Symfony użyto w testach.

Co do zmian języka to Java.
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.