PHP czy Java - jak dobrze wybrać technologie do projektu IT?

Wybór technologii do realizacji projektu IT np. systemu CRM to najważniejszy etap w całym projekcie. Dlaczego? Powód jest prosty. Najmniejszy błąd tutaj będzie prześladował zarówno zespół realizujący, jak i zlecającego przez cały cykl życia projektu. Może nawet dojść do sytuacji, gdy cały projekt trzeba będzie usunąć i napisać od nowa. Myślę, że nikt nie może sobie pozwolić na takie ryzyko dlatego, w poniższym artykule napiszę jak podjąć dobrą decyzję w temacie technologicznym.


Technologie zaproponować powinien zespół developerski. W jego skład wchodzą ludzie, którzy są na bieżąco (a przynajmniej powinni być) z aktualnymi technologiami i znają ich plusy i minusy. Ktoś może powiedzieć: „No tak Paweł, ale ja mam dział IT, któremu ufam, a nie znam ludzi, którym zlecam napisanie mojego projektu. Dlaczego więc to mój zespół nie może zaproponować technologii?”. Firmowy dział IT oczywiście może zaproponować technologię, ale pamiętajmy, że skoro zlecamy realizację innej firmie, to znaczy, że nie mamy u siebie zasobów, które udźwigną taki projekt i dlatego musimy zaufać ludziom, którzy się na tym znają. Firmowy dział IT bardzo przydaje się podczas analizy oferty wykonawcy oraz podczas ustalania założeń projektu i wdrożenia. Z doświadczenia wiem, że czasami pracownik działu IT chce na siłę udowodnić swoją wartość i neguje pomysły wykonawcy, mimo tego, że często nie ma racji. W takich przypadkach, gdy mamy 2 zupełnie sprzeczne zdania, warto zasięgnąć porady zewnętrznego specjalisty.


Tyle wstępu, przejdźmy do rzeczy. Zajmiemy się językami programowania z tytułu. Opiszę, kiedy lepiej wybrać jeden z nich, a kiedy drugi. Bystre oko zauważy, że w temacie mamy mowę o technologiach, a tu piszę o językach. Powód jest taki, że technologie w dużej mierze łączą się z językami i poruszę oba tematy.

Ważna uwaga: w tym artykule skupiamy się tylko na technologiach backendowych. Nie wiesz czym jest backend? Zapraszam do naszego artykułu – słownika informatycznego.


PHP to język przeznaczony do realizacji małych i średnich, ale prostych aplikacji webowych. Technologiami, które go wspierają są np. najpopularniejsze aktualnie: Symfony i Doctrine. Tutaj trzeba być ostrożnym. PHP jest jednym z najprostszych języków programowania i w związku z tym jest bardzo dużo programistów mogących w nim pracować. To plus, gdy szukamy osoby do rozwoju aplikacji napisanej w tym języku. Minusem jest cała masa samobójców na rynku, którzy chcą napisać absolutnie wszystko w tym języku. Przez takie osoby powstają w PHP rozbudowane systemy, które są potem awaryjne i nie ma możliwości ich sensownego rozwoju oraz utrzymania. Jeżeli więc zlecasz firmie napisanie systemu ERP i otrzymujesz ofertę zrobienia tego w PHP… to jak najszybciej poproś Pana Zdzisia z ochrony o wyprowadzenie tych ludzi z Twojej firmy :)

Zaletą tego języka jest to, że stawki godzinowe dla niego są całkiem rozsądne cenowo. Praca w nim jest szybka, więc dla prostych aplikacji jest idealny.


Główne zalety języka:

- niski koszt realizacji projektu

- projekt powstaje szybko

- duża liczba programistów znających język

- stosunkowo dobra wydajność


Java to język programowania, w którym możemy napisać dosłownie wszystko. Mogą to być aplikacje webowe, mobilne czy programy instalowane na komputerze. Możemy w nim pisać małe i proste aplikacje, ale to bez sensu, ponieważ służy do realizacji dużych i rozbudowanych rozwiązań klasy enterprise np. systemów ERP. Java jest językiem ,w którym realizacja zajmuje nieco więcej czasu, a co za tym idzie, koszty są większe. Zalety tego języka w pełni rekompensują poniesione koszty. Najpopularniejszymi aktualnie technologiami dla tego języka są: Spring i Hibernate.

Projekty zrealizowane w Javie są wydajne i skalowalne. Dzięki temu bez ograniczeń możemy rozbudowywać system. Oczywiście dużo zależy od zespołu developerskiego, ale Java jest językiem trudnym i łatwo eliminuje pseudo programistów. Inna ważna zaleta to bezpieczeństwo. Pod tym względem Java zdecydowanie zwycięża z PHP. Ogólnie to ciężko znaleźć porównanie, w którym to PHP wypada lepiej. No, może czas odinstalowywania :D


Główne zalety języka:

- bardzo duża wydajność

- skalowalność wykonanych rozwiązań

- wysoki poziom bezpieczeństwa

- nieograniczone możliwości rozwoju projektu

- mniejsze ryzyko trafienia na niekompetentnych wykonawców


„Hmm.. wszystko rozumiem, ale słyszałem jeszcze o językach takich jak C++, C# czy Python, co z nimi?”. Języków programowania jest wiele. Każdy z nich ma swoje wady, jak i zalety. Np. w C++ wykonuje się skomplikowane programy wymagające bardzo dużej wydajności min. gry. C# można porównać do Javy, jeżeli chodzi o zakres możliwości, ale w bezpośrednim porównaniu przegrywa. Python to język przeznaczony do raczej prostszych rozwiązań jak PHP. Ma jednak duży udział w sztucznej inteligencji i tam sprawdza się bardzo dobrze.


Przytoczę teraz przykład, jakimi konsekwencjami może zakończyć się błędny wybór technologii. Polski gigant handlu internetowego wymyślił sobie mechanizm śledzenia, co użytkownik przeglądał i na tej podstawie proponowanie innych rzeczy, które mogą go zainteresować. Programiści w euforii wybrali technologie i przystąpili do kilku miesięcznej pracy. Po wewnętrznych testach uruchomili produkcyjnie ten mechanizm i poszli świętować swój sukces.

Chłopaki zdążyli tylko wstać od biurek i skierować się w kierunku wyjścia. Po przejściu kilku metrów otrzymali tel. z działu technicznego, że cała platforma padła. Doszło do tego, ponieważ wybrane przez nich technologie nie utrzymały produkcyjnego ruchu. Całość trzeba było napisać od nowa.


Podsumowując: Nad wyborem technologii warto się dokładnie zastanowić i nie ma tu miejsca na pośpiech, a w jego wyniku błąd. Temat trzeba dobrze przemyśleć i skonsultować z zespołem developerskim. Żeby decyzja była dobra, klient musi przekazać wszystkie swoje oczekiwania do systemu i również opisać funkcje, które chce wprowadzić w przyszłości. Tutaj absolutnie każda informacja może być na wagę złota, a pozornie mało znacząca funkcja może wymagać wyboru innej technologii.


Z mojej strony w przypadku prostych aplikacji polecam PHP, realizacja będzie szybsza i tańsza. W przypadku rozbudowanej aplikacji, do której mamy duże plany rozwojowe, zdecydowanie zalecam Jave. Oczywiście wymaga większych nakładów finansowych i czasowych, ale wartość wynikająca z możliwości tego języka i towarzyszących technologii wszystko nam zrekompensuje.


W Ultimate Systems zawsze wyjaśniamy klientowi dlaczego wybraliśmy takie technologie. Przedstawiamy, jakie mamy dzięki temu plusy oraz informujemy dlaczego inna technologia nie będzie tu dobrym pomysłem. Jeżeli ma to sens, to proponujemy 2 wersje technologiczne do wyboru. Zawsze jednak pomagamy podjąć najlepszą decyzję.


Coding OR App Design Software Platforms OR Native Apps OR Web Apps OR Hybrid apps OR App Builders