Newsletter

Grupa MagazynyInternetowe

Online: 1133

Wyszukiwarka

PHP, Python, Ruby, JAVA, .NET

Jeśli nie PHP, to co?

Jeśli nie PHP, to co? PHP zdobył przed laty popularność jako język skryptowy do tworzenia stron internetowych. Wzięła się ona z pewnością stąd, że jeszcze kilka lat temu nie było alternatywy dla szybkiego, prostego i dostosowanego do potrzeb WWW języka. Dziś jest inaczej. Prezentujemy języki i technologie, które również powstały z myślą o programowaniu webowym.

Paweł Gruszecki

Sam PHP może się podobać z uwagi na jego prostotę. Brak skomplikowanych typów i struktur danych oraz generalna filozofia, która sprawia, że PHP pilnuje za programistę niemal wszystkiego. Ponieważ dodatkowo PHP jest językiem interpretowanym, to wszystkie wprowadzane do kodu zmiany są natychmiast widoczne na serwerze.

PHP posiada jednak wielu przeciwników. Zarzuca mu się zbyt daleko idące uproszczenia oraz to, że pozostaje daleko w tyle za innymi nowoczesnymi językami programowania.

Warto zdać sobie sprawę, że dzisiejsze problemy PHP wynikają z historii jego rozwoju. To, co w PHP3 wystarczało do tworzenia prostych stron (i w zasadzie do niczego więcej), w miarę wzrastających aspiracji do miana kompleksowego języka właściwego dla programowania aplikacji internetowych, okazało się już zbyt małą funkcjonalnością. Dodawano więc nowe rozwiązania, ale przyzwyczajenia użytkowników oraz chęć zachowania jak najszerszej kompatybilności istotnie blokowały rozwój PHP.

Szybkiej ewolucji nie ułatwiał także brak wsparcia ze strony dużych producentów oprogramowania oraz ograniczone dopuszczenie programistów Open Source do rozwoju projektu (wszystkie zmiany i tak muszą być nadzorowane przez firmę Zend).

Przez to nawet dzisiaj PHP5 oraz nadchodzący PHP6 wyglądają dość mizernie na tle konkurencyjnych technologii. Główny zarzut formułowany pod ich adresem to dopiero raczkująca obiektowość. Krytycy narzekają również na słabe środowiska zintegrowane, czyli programy wspierające pisanie oraz debugowanie kodu PHP. Omawiany język nie doczekał się dotąd również własnych serwerów aplikacji, które mogłyby wydatnie zwiększyć szybkość wykonywania skryptów.

Nasuwa się więc pytanie: jeśli nie PHP, to co?

Python

http://www.python.org

Jest to język, który dopiero od pewnego czasu jest szeroko wykorzystywany do tworzenia aplikacji internetowych. Wcześniej znany był jako świetne rozwiązanie do programów i skryptów okienkowych oraz uruchamianych jako narzędzia systemowe.

Jeśli nie PHP, to co?

Serwis Grono.net jest przykładem udanego polskiego wdrożenia projektu w oparciu o framework Django (Python)

Jeśli nie PHP, to co?

Python jako język może się wydawać początkowo dość egzotyczny. Inne słowa kluczowe, nieznacznie odmienna składnia, inny sposób funkcjonowania klas, metod i atrybutów. Wreszcie specyficzny sposób konstrukcji kodu - dla wydzielania bloków kodu nie stosuje się tutaj nawiasów klamrowych, tylko usystematyzowane "wcięcia". Ale zdaniem zwolenników Pythona, uczy to porządku. To, czy specyficzna składnia kodu Pythona to zaleta czy wadą, jest kwestią subiektywną i pozostawimy ją bez jednoznacznego rozstrzygnięcia.

Pomimo tych wszystkich różnic, Python jest językiem bardzo czytelnym. Po zapoznaniu się ze składnią programowanie przebiega szybko. A przy tym - co stanowi dużą zaletę - Python od początku tworzony był jako język obiektowy.

Obecnie jednak dobry język programowania to nie tylko ten, który posiada ciekawszą składnię czy imponującą ilość obsługiwanych bibliotek (Python ma ich dużo).

Równie ważne jest dobre wsparcie ze strony frameworków. Python takie wsparcie posiada - Django jest świetnym frameworkiem do prostych systemów internetowych na bazie CMS, a Pylons i TurboGears wpasowują się tam, gdzie możliwości konfigurowania Django okazują się zbyt małe. Django i Pylons stanowią dojrzałe, rozwijane od wielu lat systemy. Również TurboGears zdobywa coraz więcej zwolenników.

Pylons to drugi (obok Django) znany framework tworzony w oparciu o język Python Pylons to drugi (obok Django) znany framework tworzony w oparciu o język Python

Zaletą Pythona jest ponadto to, że uruchamiane skrypty są automatycznie kompilowane do bajtkodu. Programy można w takiej postaci dystrybuować - utrudnia to odczytanie pierwotnego kodu źródłowego programu. PHP taką funkcjonalność posiada dopiero po wykupieniu dodatkowego oprogramowania zewnętrznego (np. ionCube). Bajtkod niestety przyspiesza tylko nieznacznie wykonywanie się programów, a pomimo jego zastosowania Python wciąż pozostaje językiem interpretowanym, a nie kompilowanym.

Wady Pythona? Jeśli jako wadę PHP uznaliśmy brak wsparcia ze strony dużych korporacji, to uczciwie należy tę cechę wpisać również po stronie wad Pythona. O ile jednak PHP ma co nadrabiać, to Python jest już językiem dojrzałym. Python jest w pełni rozwijany jako projekt open source, a zarządzanie kierunkiem rozwoju nie jest uzależnione od żadnego przedsiębiorstwa (rozwój niekomercyjny) - tej siły nie ma PHP.

Po stronie wad Pythona zapisać można niezbyt dobrze rozwinięte środowiska programistyczne do przyjemnego pisania kodu i debuggingu - patrząc na edytory Javy czy .net jest czego zazdrościć. Na szczęście Python posiada serwer aplikacji, zaimplementowany w postaci mod_python, czyli modułu dołączanego do Apache.

Czytaj więcej:

Ruby (On Rails)

http://rubyonrails.org

Ruby to język, który powstał 14 lat temu, jednak przez długie lata cieszył się marginalną popularnością. Zmieniło się to dopiero, gdy w oparciu o ten właśnie język powstał framework Ruby On Rails. Jest to dedykowany system do tworzenia aplikacji internetowych, który szybko zaskarbił sobie sympatię wielu programistów. Nic dziwnego, RoR powstał w 2003 roku, czyli w czasie gdy PHP nie miał jeszcze żadnych sensownych frameworków. Przesiadka z PHP na RoR była więc jak zmiana samochodu, z malucha na coś znacznie większego i szybszego.

Jeśli nie PHP, to co?

Dziś Ruby On Rails to dojrzały projekt, kompletne rozwiązanie do tworzenia serwisów WWW oraz systemów internetowych bazujących na przeglądarce. Wspierany jest przez coraz szerszą społeczność użytkowników. Faktem jest, że nie jest ona tak ogromna jak społeczność programistów PHP, a co za tym idzie - ilość różnorakich poradników dostępnych w internecie jest mniejsza. Z drugiej jednak strony, programowaniem w RubyOnRails zajmują się zwykle już bardziej doświadczeni użytkownicy, a więc jakość porad jest znacznie wyższa.

Ruby On Rails zrewolucjonizował tworzenie serwisów internetowych, dostarczając wygodnego tworzenia projektów w oparciu o frameworki. Przed pojawieniem się RoR, w PHP nie było tak wygodnych systemów Ruby On Rails zrewolucjonizował tworzenie serwisów internetowych, dostarczając wygodnego tworzenia projektów w oparciu o frameworki. Przed pojawieniem się RoR, w PHP nie było tak wygodnych systemów

Zaznajomienie się z samym językiem Ruby nie powinno przysporzyć problemów żadnemu programiście PHP. Nie jest to język bardziej skomplikowany do opanowania, choć z pewnością można powiedzieć, że jest inny. Sposób pisania w Ruby może wydawać się programistom PHP początkowo nie do końca jasny, ale jeden weekend z poradnikami powinien sprawić, że będziesz już w miarę swobodnie posługiwać się tym językiem.

Część funkcjonalności może wydawać się zupełnie nowa - na przykład "lambdy" (stosowane także w Pythonie). Ale nie przejmuj się, nie są one niezbędne do pisania programów w Ruby, a z czasem i te nowe funkcje poznasz.

Ruby jest w pełni obiektowy, co daje programiście większe możliwości działania i skraca czas pisania programów. Obiektowość była w Ruby od początku, nie trzeba więc przechodzić przez trudny okres dojrzewania, co ma miejsce obecnie w PHP.

Zarówno Ruby, jak i Ruby On Rails są rozwijane przez środowiska open source. Podobnie jak przy Pythonie, wadą jest brak wsparcia ze strony dużych korporacji, ale RoR nadrabia to w pełni za sprawą niezależnych programistów zrzeszonych wokół projektu. RoR posiada kilka serwerów aplikacji (np. mongrel oraz od niedawna mod_rails dla Apache), nie zawsze pozbawionych wad, ale stale rozwijanych. Dzięki temu nadaje się do profesjonalnych zastosowań produkcyjnych.

Czytaj więcej:

Java (J2EE)

http://www.java.sun.com

Java nie jest nowym językiem. Jego szczegółowa prezentacja nie wydaje się konieczna, znany jest bowiem od lat. To język w pełni obiektowy, o przemyślanej składni oraz dostępnych już obecnie bibliotekach do obsługi niemal wszystkiego, czego programista może potrzebować. Kod programu w Java przypomina nieco ten pisany w PHP, pod tym względem programista nie będzie mieć wielu problemów z "przestawieniem się".

Jeśli nie PHP, to co?

Ale trzeba też wiedzieć, że Java nie upraszcza tak wielu rzeczy jak PHP. Dla kogoś, kto nigdy wcześniej nie miał styczności z innymi językami programowania, pewne rzeczy będą nowością (nawet tak proste jak typy i struktury danych).

Portal internetowy Gazeta.pl jest tworzony w oparciu o J2EE i frameworki dla tej platformy Portal internetowy Gazeta.pl jest tworzony w oparciu o J2EE i frameworki dla tej platformy

Java początkowo była używana jako język do tworzenia głównie aplikacji okienkowych, jednak od 1999 roku rozwijany jest projekt Java Platform Enterprise Edition (znana również jako J2EE), dedykowany do obsługi architektury klient-serwer. Aplikacja Java jest tutaj uruchamiana po stronie serwera (jako serwlet lub skrypt JSP - ten drugi jest bardziej podobny do PHP, ten pierwszy do aplikacji w Pythonie).

Do swojego uruchomienia Java wymaga serwera aplikacji. Jest ponadto językiem kompilowanym, ściślej kompilowanym do specjalnego bajtkodu, uruchamianego następnie przez maszynę wirtualną Javy. Zarówno konieczność używania maszyny wirtualnej, serwera aplikacji, jak i kompilowania mogą nieco zmniejszyć wygodę tworzenie aplikacji (Java nadrabia to jednak dobrym oprogramowaniem do pisania kodu).

Jednak po uruchomieniu programów napisanych dla J2EE w środowisku produkcyjnym ukazuje się prawdziwa potęga Javy (zwłaszcza przy większych systemach). Użyte technologie będą działać szybko i sprawnie tam, gdzie PHP wykazywałoby już problemy wydajnościowe.

Rozwój Javy (a raczej technologii wokół Javy) wspierają środowiska open source oraz różnego rodzaju firmy i korporacje z Sun i IBM na czele, dla których jest to podstawowa technologia tworzenia oprogramowania. Java posiada również kilka ciekawych frameworków (np. Struts, Spring). W oparciu o J2EE i frameworki webowe z powodzeniem tworzony jest portal Gazeta.pl wraz z kilkudziesięcioma serwisami społecznościowymi skupionymi wokół niego.

Czytaj więcej:

Platforma .net

http://www.microsoft.com/net

Szukając profesjonalnych alternatyw dla PHP można skierować swoją uwagę także na platformę .net, rozwijaną przez Microsoft. To technologia, w obrębie której można tworzyć oprogramowanie w kilku językach, głównie w C/C++, C# oraz ASP.NET.

Platforma .net posiada również wsparcie dla tworzenia aplikacji internetowych, gdzie warstwa logiki biznesowej znajduje się po stronie serwera i współpracuje z serwerem HTTP, przekazując dane do przeglądarki użytkownika. Czyli zastosowanie analogiczne do skryptów PHP.

Jeśli nie PHP, to co?

Zaletą platformy .net jest z pewnością profesjonalizm rozwiązania (nie ustępujący Javie), a także wsparcie Microsoft i rzeszy firm informatycznych skupionych wokół Microsoftu. Jest jednak rozwiązaniem zamkniętym. Ponadto wymaga platformy Windows, co podnosi koszty wdrożenia napisanych w oparciu o .net programów.

Problem z hostingiem

W każdym przypadku przedstawionych tutaj rozwiązań problemem może być zapewnienie hostingu dla tworzonych aplikacji. O ile PHP obecnie jest obsługiwany na serwerach niemal wszystkich dostawców hostingu, o tyle z pozostałymi technologiami bywa różnie.

Dość często na platformach hostingowych można spotkać Pythona uruchamianego jako skrypt CGI (bez FastCGI). Nie sprzyja to wydajności i raczej nie nadaje się do obsługi większych serwisów. Specjalną konfigurację serwerów zoptymalizowaną pod kątem Pythona prezentuje niewielu dostawców usług hostingowych.

Jeszcze gorzej jest w przypadku pozostałych technologii. RubyOnRails oraz Java wymagają uruchamiania specjalnego serwera aplikacji i z punktu widzenia dostawcy hostingu, ich obsługa jest kosztowna. Z kolei platforma .net będzie działać tylko na Windows, a większość usług hostingowych dostępnych w internecie jest oparta o system operacyjny Linux lub Unix.

Nie oznacza to jednak, że hostowanie aplikacji oparte o Pythona, RoR, Javę czy .net jest niemożliwe. W wyszukiwarce łatwo znajdziesz odpowiednie usługi, będą one jednak droższe od hostingu dla PHP. Można również zakupić usługi typu VPS lub serwery dedykowane i skonfigurować środowisko samodzielnie, choć to może stanowić dodatkowe utrudnienie.

Czy warto szukać innych rozwiązań?

Z całą pewnością warto pomyśleć o technologiach alternatywnych do PHP. Zwłaszcza przy większych projektach czynią one programowanie szybszym, wygodniejszym i w części przypadków bardziej wydajnym sprzętowo. Wydaje się, że w najbliższych latach PHP będzie tracić programistów na rzecz innych języków. Ale jest mało prawdopodobne, aby udało się go zdetronizować - wciąż pozostanie najpopularniejszym językiem do tworzenia stron. Szczególnie, że wciąć powstają coraz lepsze frameworki (np. chwalona przez wielu Kohana).

Kolejne wersje PHP powinny go coraz bardziej zbliżać do konkurencyjnych rozwiązań. Ale konkurencja także stale się rozwija. Czy PHP zdoła ją dogonić?

Co ważne, porównując opisane technologie nie należy koncentrować się wyłącznie na językach samych w sobie. Ważne jest to jakie frameworki oferują - jakie mają możliwości oraz jaką prezentują wygodę programowania. Dobrze będzie, jeśli poczytasz szerzej o każdym z nich i wybierzesz ten, w którym pracuje ci się najwygodniej. To, w jakim języku będziesz operować, jest sprawą drugorzędną.

Zachęcamy do wpisywania w komentarzach "za" i "przeciw" PHP oraz innym językom programowania. Z jakich frameworków korzystacie?

18 lutego 2009

Powiązane publikacje

10 zasad webmastera

10 zasad webmastera

Aplikacje internetowe - Stosowane języki

Aplikacje internetowe - Stosowane języki

100 sposobów na PHP

100 sposobów na PHP

 
Skomentuj
ten artykuł

Komentarzy: 16

Kod obrazkowy
(Kliknij, aby zmienić)
 
Przejdż do tego postu na forum Thursday, 7.01.2010 18:44x_t_c

co do php to kwestia chyba wiecej niz przyzwyczajenia:
- chyba na kazdym serwerze hostingowym choc tez sa sytuacje ze za php trzeba jeszcze w dzisiejszych czasach sa firmy swiadczace usluge uruchomienia php za doplata 100 pln do wykupionego juz miejsca
- prosty i wygodny
- setki publikacji (choc jakosc niektorych mozna porownac do papierowej wersji manuala php.net)
- tysiace przykladow i dziesiatki cms'ow kazda firma chce miec strone oparta o baze danych stad tez idzie adaptacja darmowych niekoniecznie dobrych rozwiazan z mizernym wykonaniem i przystosowaniem ograniczonym do zmiany template'a; theme'a z wklepanym pseudomarketingowym tekstem bedacym owocem pracy 2 osobowej agencji reklamowej lub samej "pani krysi z sekretariatu" przez co wymaganiem stawianym informatykom w firmach jest ich rozbudowa bo firma kiedys tam cos tam zakupila i chce to rozbudowac bez ponownego wydawania pieniedzy na nowy oparty raczej na php+mysql system
- swiadomosc absolwentow kierunkow informatycznych jak ktos sam nie wychyli nosa poza wyklady to wyjdzie z wiedza podstawowa o programowaniu dla web w php i/lub javie. poniekad wykladowcy sugeruja ze java jest alfa i omega programowania pod katem www skad to przekonanie? nie mnie pytac ale nie pierwszy raz z tym sie spotkalem
- baza szkoleniowa w polsce wystarczy popatrzec kursy jakich jezykow sa w ofertach. nawet java nie cieszy sie tak duza popularnascia nie mowiac o innych wyzej wymienionych historiach
a teraz przeciw
- w swej prostocie jest ograniczony to nie ulega watpliwosci no ale skoro trzeba juz w tym pisac bo jest parcie klienta lub przelozonego to raczej wyboru nie ma
- popularne cmsy jako strony baza strony firmowej to raczej nie najbezpieczniejsze rozwiazanie
---
male popularnosc wsrod firm hostingowych dla pozostalych platform to chyba glowny motor popularnosci php
---
co do API nie tylko google'a to jest pewien przelom i oby to bylo rozwijane bo kilku rzeczy jak chociazby z obsluga albumow z picasy brakuje albo nie dziala najlepiej

Przejdż do tego postu na forum Tuesday, 11.08.2009 14:42MateuszM

CYTAT(Riklaunim @ 1.08.2009)
CYTAT(Jarosław Zabiełło @ 2.07.2009)


Uwzględnij że "amator-programista" wybierze PHP bo to jest najpopularniejsze, jest pełno darmowych hostingów i koledzy z dzielni to znają smile.gif Nie zależnie jak byśmy się starali "młodzi" powszechnie nie wybiorą jako język do aplikacji webowych (i innych) platformy Rubiego czy Pythona smile.gif Też PHP "jest" zaprojektowany z myślą o prostych skrypcikach i prostych stronkach.


Zgadzam się całkowicie z tym, że PHP jest bardzo popularny i lansowany. Wystarczy zobaczyć ile książek na temat PHP "wytłoczyły" Polskie komputerowe wydawnictwa. Niestety 90% z nich pokrywa się treściowo ze sobą bądź stanowi przedruki z zagranicznych stron internetowych. Martwi mnie tylko to, że część dzieciaków pisze w PHP pseudo aplikacje używając technik przeznaczonych do pisania skrypcików. Na dodatek uważają się za wielkich programistów podczas gdy nie mają podstawowych informacji o programowaniu. Jedni powiedzą, że to zaleta PHP, że jest taki prosty - ja uważam, że jest to też jego wada, ponieważ nie zmusza ludzi do myślenia i wykonywania pewnych zadań świadomie.


Pozdrawiam

Przejdż do tego postu na forum Saturday, 1.08.2009 00:49Riklaunim

CYTAT(Jarosław Zabiełło @ 2.07.2009)


Uwzględnij że "amator-programista" wybierze PHP bo to jest najpopularniejsze, jest pełno darmowych hostingów i koledzy z dzielni to znają smile.gif Nie zależnie jak byśmy się starali "młodzi" powszechnie nie wybiorą jako język do aplikacji webowych (i innych) platformy Rubiego czy Pythona smile.gif Też PHP "jest" zaprojektowany z myślą o prostych skrypcikach i prostych stronkach.

Przejdż do tego postu na forum Thursday, 2.07.2009 14:37Jarosław Zabiełło

CYTAT(Paweł Gruszecki @ 29.06.2009)
fakt zatrudnienia twórcy Pythona w Google nie był mi znany, ale nie wiem czy wynika z tego jakaś większa zależność tego języka od Google

Miałem możliwość rozmawiania bezpośrednio z przedstawicielami Google w europejskiej centrali na Europę w Dublinie. Otóż Google bardzo intensywnie używa Pythona. To ich wiodąca technologia (obok Javy) Z zatrudnieniem Guido van Rossum'a, twórcy Pythona, to było dosyć głośno w branży. Na youtubie są nawet jakieś filmy z jego prezentacjami z googleplexa. Mały dowód na silną pozycję Pythona i Javy w Google: http://code.google.com/status/appengine

CYTAT(Paweł Gruszecki @ 29.06.2009)
Celem artykułu było w kilku słowach prześledzenie mocnych i słabych stron poszczególnych języków i przedstawienie alternatyw wobec PHP.

Prawdę mówiąc nie pokazano mocnych i słabych punktów prawie wcale...

W artykule wspomniano o frameworkach Pythona ale pominięto jego sztandarowy produkt - Plone. Nie jest to co prawda framework, ale doskonały, obiektowy CMS (Plone używa obiektowej bazy ZODB i serwera aplikacyjnego Zope) Też przydałoby się chociaż wspomnieć o Zope 3 (obiektowy framework komponentowy). Zope 3 posiada też swój webowy framework dla tych, co chcieliby łatwiej - Grok.

W artykule trochę niepotrzebnie utożsamiono język Java z platformą Javy. Sam język jest w sumie toporny i prosty. Nie jest oczywoście w pełni obiektowy, o czym już pisałem. Jednakże, język Java jest mało istotny. Nie jest w ogóle potrzebny do tego aby używać platformy Javy, tych wszystkich bibliotek i aplikacji w które zainswestowano grube miliony dolarów. Aby z nich korzystać można wybrać sobie jeden z 240 (sic!) języków. Zarówno statycznie typowanych (Scala) jak i dynamicznie typowanych (Clojure , JRuby , Jython , Groovy ). Jeśli chodzi o aplikacje webowe to dla platforny Javy istnieje mnóstwo frameworków, najciekawszy z nich to Wicket , gdzie aplikację webową (z def. bezsstanowa) pisze się tak jak stanową, desktopową, tak samo wygodnie debuguje się kod, nie trzeba myśleć o żadnych sesjach, asynchronicznych wywołaniach itp.

Analogicznym frameworkiem do Wicketa jest, napisany w Scali , Lift. Scala to w ogóle oddzielna historia. Język jest dużo nowocześniejszy od Javy i może służyć za jej pełny wymiennik (Scala korzysta bezpośrednio z klas Javy a nie przez wrappery, to samo zresztą Clojure, ale już nie Jython i JRuby) Co do PHP to też doczekał się javowej implementacji (Quercus) ale jest jeszcze mało dojrzały.

Jeśli chodzi o .NET, to istnieje IronPython i IronRuby , implementacje Pythona i Ruby dla CLR. Scala też posiada swoją implementację dla .NET .

Po co wspominam o tych javowo-dotnetowych implementacjach? Ano po to aby pokazać, że dyskusja Java vs PHP czy inny język jest bez sensu. Platforma JVM jest b. dobra, język niekoniecznie, ale nie ma potrzeby aby z niego korzystać. Są lepsze alternatywy.

Inna sprawa, że istnieje wręcz przepaść między tym co może PHP, a co mogą te inne języki. Moim zdaniem istnieją co najwyżej 3-4 powody aby wybrać PHP.

  1. konieczność pracy z już istniejącym kodem w PHP. Pracodawca ma dużą bazę w PHP, bo kiedyś dawno temu, tak wybrał, włożył w to kasę, jakoś to działa i zarabia, i teraz ryzykowanie wymiany wszystkiego na coś innego nie wchodzi w grę.
  2. możliwość korzystania z gotowych rozwiązań zamiast przepisywanie wszystkiego na nowo w “lepszej technologii” (np. po co tworzyć na nowo soft do forum jak wiadomo, że napisanie czegoś o funkcjonalności forum Invision PowerBoard to zabawa na co najmniej kilka miesięcy),
  3. jest możliwość wyboru technologii ale tak naprawdę nie znasz niczego na tyle dobrze co PHP i boisz się zainwestować czas w porządne poznanie (J)Ruby on Rails (o Merbie nie wspomnę, bo się połączył z Rails i wyjdą razem jako Rails 3). Z mego doświadczenia wynika, że jeśli chodzi o aplikacje webowe, to w Rails pisze się zdecydowanie łatwiej i prościej niż we frameworkach nie tylko pehapowych, ale też pythonowych. Python jest prostszym językiem od Ruby’ego, ale sytuacja jest odwrotna odnośnie frameworków.
  4. szaleństwo

Przejdż do tego postu na forum Tuesday, 30.06.2009 10:33morwo

CYTAT(lukasz @ 22.02.2009)
PHP. Dla mnie bezkonkurencyjny. Fakt, ze kod php pisany przez poczatkujacego programiste bedzie niechlujny ale za to bardzo przyjemnie uczy sie na nim obiektowosci. Dla mnie rewelacja. Jesli zas chodzi o frameworki to pear i joomla :-)


Tak, jak poprzednik wspomniał na PHP nie nauczysz się obiektowości tongue.gif Pear to biblioteka PHP (zbiór wielu klas), a nie framework (chyba, że o czymś nie wiem), a Joomla to kobyła, którą omijam z daleka. Jeśli na prawdę interesują Cię frameworki PHP, to polecam zainteresowanie się ZendFrameworkiem i/lub Symfony.

CYTAT(Jarosław Zabiełło @ 27.06.2009)
Java jest językiem w pełni obiektowym jest oczywistą bzdurą.


Bzdurą, którą umownie większość akceptuje i mówi: "Tak, Java jest w pełni obiektowa, chociaż ma kilka wyjątków w postaci np. typów prostych." Nawet wykładowcy na uczelniach informatycznych tak mówią ;p Wiesz... to tak samo, jak fakt, że 90% Polaków to chrześcijanie rolleyes.gif Jakby nie było, wszystko zaczęło się od nie w pełni obiektowej Javy -- przynajmniej tak mi się wydaje smile.gif


CYTAT(Jarosław Zabiełło @ 27.06.2009)


PHP, jeszcze na poziomie "strukturalnym" ma mnóstwo błędów. Nie wiem, czy czasem tego już nie usunęli, ale swego czasu trafiłem na idiotyczny błąd, gdzie wszystkie funkcje działające na łańcuchach znaków obcinały te łańcuchy w momencie wystąpienia w nich znaku $ -- bez względu na to, czy łańcuch był zapisany w cudzysłowu (wtedy to, co jest po znaku dolara powinno zostać zamienione wartością zmiennej o tej nazwie), czy w apostrofach. Próbowałem rzutowania typów, funkcji strval() i tak dalej i nic. Po prostu, gdy $ się znajdował w łańcuchu to kicha...

PHP pomimo numerku 5, jest bardzo niedoskonały, ale na początek -- chyba "może być".


CYTAT(Jarosław Zabiełło @ 27.06.2009)
ColdFusion umiera. Szkoda na to czasu.


True, true.

CYTAT(pawel86 @ 29.06.2009)
Bawiłem się dość długo Javą i uważam, że PHP jest dużo bardziej przyjemny smile.gif


Przyjemny, ale dziurawy. Poza tym strasznie w nim prowadzić większe projekty.

Przejdż do tego postu na forum Monday, 29.06.2009 19:12Paweł Gruszecki

Panie Jarosławie, używając określenia "serwer aplikacji" chodziło mi o taką organizację pracy serwera, która sprawia, że raz uruchomiona aplikacja będzie przechowywana w pamięci, a nie każdorazowo ładowana, wykonywana i usuwana z pamięci. To zasadnicza różnica między sposobem działania PHP (w dowolnym trybie) oraz Pythona czy Ruby. I tę zaletę jednego czy drugiego chciałem podkreślić. Pan używa określenia "serwer aplikacji" w kontekście rozwiązań typu JBoss czy Zope, czyli rozwiązań znacznie bogatszych - mowa tu o bogatym środowiskiem wsparcia developera po stronie serwera. Mówimy o dwóch różnych kontekstach. Jeśli uważa Pan użycie przeze mnie określenia "serwer aplikacji" w kontekście o którym mówię za nieuprawnione to przyznaję, że mogłem użyć innego sformułowania.

W pozostałych kwestiach - wsparcie Pythona przez Google czy Ruby przez Sun, a obecnie Oracle jest rzeczywiście cenne, ale używałem porównań do Javy, która posiada wsparcie całej rzeczy koncernów. Niemal każda korporacja IT poza Microsoftem ma coś wspólnego z Javą (w wydaniu sunowskim). Różnicą jest jednak, że Python czy Ruby są rozwijane jako projekty niezależne (fakt zatrudnienia twórcy Pythona w Google nie był mi znany, ale nie wiem czy wynika z tego jakaś większa zależność tego języka od Google), choć posiadającymi wsparcie na poziomie Google czy Sun. Java już tak niezależna nie jest. I tutaj również tę różnicę chciałem uwydatnić.

Fakt możliwości uruchomienia Pythona w środowisku Javy jako Jython to zupełnie odrębny temat i w ogóle nie był on poruszany w artykule. Celem artykułu było w kilku słowach prześledzenie mocnych i słabych stron poszczególnych języków i przedstawienie alternatyw wobec PHP. Sypię głowę popiołem za pewne nieścisłości, jednak mam wrażenie, że pomimo ich obecności artykuł nie odbiega od rzeczywistości. Są pewne zalety i wady każdej z technologii i zostały one jak sądzę uwydatnione.

Na koniec pragnę wyrazić, że cieszę się, że jest Pan ekspertem w zakresie, który obejmuje artykuł. Ja ekspertem w tej dziedzinie się nie czuję, stąd też podjąłem się napisania takiego artykułu jedynie w powierzchownym zakresie. Zachęcam natomiast Pana do kontaktu z redakcją. Być może będzie Pan zainteresowany publikacją artykułów związanych z wspominanymi technologiami, co jak sądzę pozytywnie odbiorą nasi czytelnicy.

Przejdż do tego postu na forum Monday, 29.06.2009 15:36pawel86

Bawiłem się dość długo Javą i uważam, że PHP jest dużo bardziej przyjemny smile.gif

Przejdż do tego postu na forum Saturday, 27.06.2009 01:27Jarosław Zabiełło

CYTAT(elpako @ 18.02.2009)
Za ASP.NET - dobre srodowisko .net to wielkie pudlo z klockami ktore potrafia zlozyc sie na niezly serwis. Czasem tylko te klocki nie zawsze do siebie pasuja. smile.gif

ASP.NET ma zasadniczą wadę - Windows-only (jest Mono, ale jest wolne i niedojrzałe). Windoza do intranetu - OK, ale do internetu - moim zdaniem, pomyłka. Dużo lepsze (stabilniejsze, bezpieczniejsze) jest środowisko uniksowe, Apache też jest solidniejszy od IIS'a. Ten drugi nie dość, że często okazuje się dziurawy to nawet standardowo nie ma odpowiednika mod_rewrite (wiem, wiem, można kupić oddzielny moduł od innej firmy, Apache ma to defaultowo i za darmo). Ogólnie platforma Javy jest dużo dojrzalsza od .NET, no i w pełni multiplatformowa. .NET łaskawie pozwala na pisanie w paru językach, VB.NET, C# i trochę innych. Java pozwala na użycie 240 języków, w tym tak dobre jak statycznie typowana Scala, czy dynamicznie typowane Clojure, Groovy, JRuby czy Jython.

Przejdż do tego postu na forum Saturday, 27.06.2009 01:19Jarosław Zabiełło

CYTAT(Wojtek @ 15.03.2009)
nic tu nie zostało wspomniane o jeszcze jednej technologii firmy Adobe mianowicie ColdFusion co prawda w Polsce nie jest on tak popularny jak PHP czy JAVA. Jestem ciekaw czy ktos z Was slyszal o tym jezyku jesli tak to co o nim myslicie??

ColdFusion umiera. Szkoda na to czasu.

Przejdż do tego postu na forum Saturday, 27.06.2009 01:13Jarosław Zabiełło

CYTAT(lukasz @ 22.02.2009)
PHP. Dla mnie bezkonkurencyjny. Fakt, ze kod php pisany przez poczatkujacego programiste bedzie niechlujny ale za to bardzo przyjemnie uczy sie na nim obiektowosci. Dla mnie rewelacja. Jesli zas chodzi o frameworki to pear i joomla :-)

Chcesz się uczyć obiektowości na PHP? Przecież PHP nie jest nawet w pełni obiektowy. laugh.gif Jeśli chcesz się uczyć obiektowości to sięgnij po Ruby lub Pythona (jeśli chodzi o web to najlepiej Rails lub Django). Obiektowość w PHP to jakiś żart. To zresztą już drugie podejście jego tworców (może doczekamy się trzeciego, bo jak to mówią, do 3 razy sztuka smile.gif.

Otóż, wpierw niedouczeni twórcy języka PHP zaimplementowali "obiektowość" w PHP4, ale zrobili ją tak idiotycznie, że nie dało się tego już nawet naprawiać. Węc w PHP5 musieli napisać wszystko od nowa. Cały model obiektowy. Czy czegoś się nauczyli na swych błędach. Gdzie tam! Zbłaźnili się pod raz drugi. Zamiast czerpać wzorce z języków z podobnej półki, tj. języków wysokopoziomowych, dynamicznie typowanych, wzięli za wzór języki z zupełnie innej bajki, statycznie typowane C++ i Javę. I wyszedł im kolejny koszmarek.

Nie dość że nie umieli od razu zaimplementować przestrzeń nazw, to skopiowali bezmyślnie (naśladując za toporną Javę) różne nieobiektowe konstrukcje takie jak statyczne pola czy metody. W PHP ani funkcje ani klasy nie są obiektami. Liczby, stringi czy null'e też nie są obiektami. A miary goryczy dopełnia idiotyczne Fatal Error'y zamiast wyjątków. W efekcie PHP nie daje absolutnie żadnej możliwości obsługi błędów tego typu. Przykład: http://gist.github.com/127274

Przejdż do tego postu na forum Saturday, 27.06.2009 00:52Jarosław Zabiełło

Słabe IDE do PHP, Ruby czy Pythona? To jakiś żart. PHP: ZendStudio Pro, Netbeans, Aptana/Eclipse; Python: Wing IDE Pro, Eclipse+PyDEV, SPE, Eric4, PythonWin, Netbeans, Komodo IDE; Ruby: IntelliJ IDEA, RubyMine, Netbeans, Aptana, Komodo IDE.
Autor tekstu nie rozumie w ogóle czym jest serwer aplikacji.
Python posiada swój serwer aplikacyjny - Zope. Serwerem aplikacyjnym w żadnym razie nie jest ani mod_python ani mod_wsgi. Oczywiście, w Javie jest pełno serwerów aplikacyjnych, (Tomcat, Glassfish, Jetty, itp)
Ruby nie posiada żadnego serwera aplikacji. Nie jest nim ani Mongrel, ani Thin. To są tylko serwery HTTP. Z kolei Passenger (aka mod_rails) to tylko moduł interpretera Ruby'ego do Apache'a i Nginx'a (mniej więcej analogicznie do mod_php czy mod_python).
PHP zaś nie ma, i nie będzie miał, możliwości posiadania serwera aplikacji, dopóki PHP nie będzie wielowątkowy i będzie posiadał porządnego garbage collectora. Bez tego PHP pracuje w stylu CGI, tj. niszczy i tworzy wszystkie swoje zmienne i obiekty za każdym przeładowaniem strony. Z tego wynika zaś, że im większy kod, tym PHP jest coraz wolniejszy w stos. do frameworków w Pythonie, Ruby, Javie czy Scali, które pracują "serwletowo (tzn, kod ładowany jest raz i kolejne przeładowania strony nie niszczą wszystkich obiektów).
Autor też nie wspomina, że Rails może pracować w javowym konterze serwletów pod JRuby, javowej interpretacji Ruby. To samo Jython i Django. No i nie można mieszać języka Java z platformą Java. Więcej, nie potrzeba w ogóle używać topornej Javy aby korzystać z jej platformy i korzyści szybkiej JVM.
Oczywiście, twierdzenie że Java jest językiem w pełni obiektowym jest oczywistą bzdurą. Ani Java ani PHP 5 takimi językami nie są bo posiadają podział na obiekty i typy prymitywne oraz nieobiektowe konstrukcje typy statyczne pola i metody. Językiem w pełni obiektowym jest natomiast Smalltalk, Python, Ruby czy Scala
Rzekomy brak wsparcia dla Pythona czy Ruby ze strony dużych korporacji to też jakiś żart. Python ma silne wsparcie ze strony Google (która nawet zatrudniła twórcę tego języka). Ruby (właściwie JRuby) ma silne wsparcie ze strony firmy Sun (aktualnie Oracle).

Przejdż do tego postu na forum Tuesday, 17.03.2009 20:36ŁakO

Generalnie uważam ASP.NET za dużo lepsze rozwiązanie niż PHP. Poza wspomnianym brakiem dobrych hostingów dla .NET nie ma on zbyt wielu wad - ot, kwestia przyzwyczajenia smile.gif

Przejdż do tego postu na forum Sunday, 15.03.2009 16:28Wojtek

nic tu nie zostało wspomniane o jeszcze jednej technologii firmy Adobe mianowicie ColdFusion co prawda w Polsce nie jest on tak popularny jak PHP czy JAVA. Jestem ciekaw czy ktos z Was slyszal o tym jezyku jesli tak to co o nim myslicie??

Przejdż do tego postu na forum Sunday, 22.02.2009 21:00lukasz

PHP. Dla mnie bezkonkurencyjny. Fakt, ze kod php pisany przez poczatkujacego programiste bedzie niechlujny ale za to bardzo przyjemnie uczy sie na nim obiektowosci. Dla mnie rewelacja. Jesli zas chodzi o frameworki to pear i joomla :-)

Przejdż do tego postu na forum Thursday, 19.02.2009 12:42Janusz

Ostatnio jest moda na e-commerce, która to dziedzina mocno się rozwija i zapotrzebowanie na tego typu usługi rośnie.
Praktycznie wszystkie znany rozwiązania są zbudowane w oparciu o php, m.in. najnowsze duże odkrycie w postaci Magento, zbudowanym na podwalinach Zend Framework.
Wszystko to sprawia, że obecnie jestem zmuszony koncentrować się jedynie na php smile.gif

Przejdż do tego postu na forum Wednesday, 18.02.2009 16:36elpako

Za ASP.NET - dobre srodowisko .net to wielkie pudlo z klockami ktore potrafia zlozyc sie na niezly serwis. Czasem tylko te klocki nie zawsze do siebie pasuja. smile.gif

Zobacz wszystkie komentarze »

Autor

Paweł Gruszecki

Jest administratorem, programistą systemów operacyjnych i aplikacji internetowych. Internetem zajmuje się od 1998 roku, niemal od początku działając również jako dziennikarz branżowy. W 2001 roku rozpoczął współpracę w charakterze dziennikarza i specjalisty z Magazynem Internet, aby kilka lat później uczestniczyć w postawaniu magazynu Internet Maker.

Ma na koncie kilka biznesów internetowych, obecnie w jednej ze współtworzonych przez siebie spółek zajmuje się koordynacją projektów informatycznych i zarządzaniem marką Vbiz.pl (vbiz.pl ). Posiada wyższe wykształcenie informatyczne ze specjalizacją związaną z prawem komputerowym. Zarówno informatyka, jak i dziennikarstwo są jego pasją. Od 10 lat z przyjemnością obserwuje rozwój internetu w Polsce.

Artykuły tego autora:

Newsletter

Jesli chcesz być na bieżąco z tym co się dzieje na stronie magazynu INTERNET Maker zapisz się do naszego newslettera.