Web developement – alternatywa dla PHP

      4 min read           ·

Jeśli chodzi o programowanie aplikacji internetowych to nie jest tajemnicą, że niepodzielnie żądzi tu nieśmiertelny język PHP obecny aktualnie w wersji 5. Niestety prawdą jest też, że w wielu aspektach jest to język przestarzały i nieprofesjonalny. Taki stan rzeczy zmieniają nieco frameworki takie jak Symfony, CodeIgniter czy wreszcie Zend Framework tworzony przez tą samą firmę która zajmuje sie rozwojem samego PHP. Mimo wszystko, po dłuższym używaniu PHP i spróbowaniu nieco (Symfony, CodeIgniter), lub nieco bardziej (ZF) frameworków do niego oceniam, że jest to język któremu daleko do uporządkowania i profesjonalizmu znanego z języków wysokiego poziomu używanych do pisania aplikacji desktopowych (Java, C++). Dlatego też zdecydowałem się na poszukiwania jakiejś alternatywy dla tego języka, a jest ich kilka i wcale nie łatwo zdecydować, który jest najlepszy.

ASP.NET

W tym języku miałem okazję pisać kilka małych aplikacji przez ostatni semestr na mojej uczelni. Wsparcie tak potężnej korporacji jak Microsoft na pewno jest sporym atutem tego języka. Co więcej, rozglądając się po rynku pracy, można zauważyć, że programiści ASP.NET nie będą mieli problemów ze znalezieniem pracy. I co… i tyle… nic więcej. Serwery pod ASP.NET muszą stać na Microsoft Server 20032008 co wiąże się ze sporymi kosztami. Ponadto używanie MVC w Zend Framework na tyle mi się spodobało, że nie chcę wracać do innego sposobu pisania kodu. Owszem istnieje wtyczka do .NET umożliwiająca tworzenie aplikacji w MVC jednak z moich wiadomości wynika, że póki co jest to proteza, a nie zintegrowane z główną linią narzędzie wspierane przez MS. Do minusów można doliczyć konfigurację serwera (może to tylko na studentlive.pl jest taka tragedia), konieczność używania MS Visual Studio, a także Windowsa (w chwili obecnej pracuje na Ubuntu).

Java (Spring, Hibernate, J2EE)

Java jest językiem szeroko używanym do pisania profesjonalnych serwisów WWW. Poważym atutem jest tutaj ogromne wsparcie zarówno ze strony producenta (SUN Mircosystems) jak i społeczności zgromadzonej wokół poszczególnych projektów.  Ponadto Java jest językiem uniwersalnym, a mnogość bibliotek i frameworków decyduje o łatwości i elastyczności tego języka. Programista Javy potrafiący używać Hibernate, J2EE czy Spring Framework nie będzie miał najmniejszych problemów ze znalezieniem pracy. Minusem używania Javy jest koszt hostingu, który może być nawet 10-krotnie wyższy niż w przypadku PHP. Więcej minusów nie znajduję :).

Ruby – Ruby On Rails

Osobiście nie znam tego języka, a więc opieram się na tym co wyczytałem w internecie podczas poszukiwania informacji.

Jest to framework do szybkiego tworzenia aplikacji oparty na języku Ruby. Oczywiście jest w pełni obiektowy, zoptymalizowany specjalnie pod pisanie aplikacji webowych, bazuje na modelu MVC. Spora społeczność zgromadzona wokół projektu, a także książki wydane na jego temat gwarantują, że znajdziemy rozwiązania problemów jeśli takie wystąpią. Jednym z dużych atutów wymienianych przez twórców jest bardzo prosta praca z technologią AJAX co brzmi bardzo zachęcająco. Jeśli chodzi o serwery dostępne w Polsce dla RoR to nie jest najgorzej hosting tych aplikacji pojawia się coraz częściej i nie jest obarczony dodatkowymi kosztami. Nie można również pominąć plusa jakim jest prostota pisania w języku jakim jest Ruby, w czym dodatkowo pomaga framework RoR oraz znakomicie przygotowane IDE. Minusem jest słabe zainteresowanie ze strony pracodawców osobami z umiejętnością pisania w RoR.

Python – Django Framework

Django to framework do tworzenia aplikacji webowych oparty na języku Python. Również w tym języku nie miałem wcześniej okazji programować.

Szukając informacji o Django natknąłem się na częste porówniania z RoR. Oba jezyki są rozwijane na zasadzie OpenSource, oba bazują na modelu MVC a ich głównym zadaniem jest maksymalne przyspieszenie pisania aplikacji stron internetowych. Django powstało później od RoR dlatego też społeczność tego projektu jest mniejsza, a książek na ten temat praktycznie nie ma. Liczne informacje można jednak znaleźć na stronie projektu łącznie z darmową książką. Co więcej porównując języki bazowe Ruby jest jedynie podstawą dla RoR, a sam jest raczej nie używany, natomiast Python jest językiem o dużej i ciągle rosnącej, w dużym tempie popularności. To samo można powiedzieć o zainteresowaniu pracodawców… jeżeli mówić o samym Django to jest ono znikome (powodem może być świeżość Django), natomiast Python jest uznany w środowisku, a jego programiści poszukiwani na rynku pracy. Porównania szybkości działania RoR oraz Django wypadają zdecydowanie na korzyść tego drugiego, podobnie jak ilość kodu potrzebnego do napisania aplikacji. Jedną z zachwalanych cech Django jest automatyczne tworzenie panelów administracyjnych dla aplikacji, co znacząco przyspiesza tworzenie całej aplikacji. Co więcej tworzenie bazy nie wymaga znajomości języka SQL, a jedynie kodowania w Pythonie. Porównując jednak trudność pisania w Django oraz RoR, ten drugi okazuje się być lepszym wyborem.

Podsumowanie

Zdaje sobie sprawę, że wybrane przeze mnie alternatywy to jedynie część z istniejących rozwiązań, a ich opisy nie są wyczerpujące. Pod uwagę wziąłem tylko kilka aspektów, które interesowały mnie podczas wyboru alternatywy wobec PHP.

Gdyby nie koszta wynajmu serwera pod aplikacje pisane w Javie wybór byłby banalny i w 100% postawiłbym na Javę oraz jej frameworki. Biorąc jednak pod uwagę ten czynnik, pozostaje mi Django oraz Ruby On Rails.

Największe plusy Django to:

Największe plusy RoR to:

comments powered by Disqus