Czy warto uczyć się PHP?

Web Design Blog

Kategoria:
Programowanie

Data publikacji:
23 stycznia 2019

Autor:
Paweł Mansfeld

Czy warto uczyć się PHP?

Zamiast podawać gotową odpowiedź na temat tego czy warto się uczyć PHP w 2019 i 2020 roku, przedstawię wam kilka faktów o samym PHP, technologiach webowych i realiach rynku. Dzięki temu każdy sam sobie odpowie na to pytanie bo jak zwykle… to zależy…

Skąd pomysł na taki wpis? Często można usłyszeć lub przeczytać, że ta technologia jest przestarzała lub że wręcz wymiera (na rzecz bardziej modnego node.js, .NET, Python) a kiedy szukamy rankingów najczęściej stosowanych języków w technologiach webowych to jest to PHP. To samo jest z CMSami – najpopularniejszym systemem zarządzania treścią w internecie jest WordPress, który jest napisany w PHP 🙂

To jak to w końcu jest z tym PHP? Czy istnieją dobre powody do nauki i stawania się ekspertem w PHP wykraczające poza osobiste preferencje?

Co to jest PHP?

PHP (akronim rekurencyjny: PHP Hypertex Preprocessor) to imperatywny, obiektowy, funkcyjny, proceduralny, refleksyjny, interpretowany i skryptowy język programowania, którego naturalnym i oryginalnym przeznaczeniem są serwery WWW, aplikacje webowe i strony internetowe.

Język PHP wykorzystuje się najczęściej do generowania kodu stron internetowych w czasie rzeczywistym i jej integracji z bazą danych. W przeciwieństwie do poleceń napisanych w JavaScript, skrypty PHP nie działają w przeglądarce, są natomiast wykonywane po stronie serwera WWW. Dzięki PHP można pobierać informacje od klientów serwera WWW a także manipulować nimi.

W ramach ciekawostki warto wspomnieć, że język PHP został stworzony przez Rasmusa Lerdorfa i początkowo służył jedynie… do zliczania odwiedzin Internautów na pojedynczych stronach internetowych. Z czasem był wykorzystywany do tworzenia prywatnych stron internetowych wśród społeczności programistów, którym nie wystarczały standardowe narzędzia takie jak: HTML, CSS i JavaScript. Ten stopniowo rozszerzany wynalazek szybko zyskał popularność, głównie ze względu na większe możliwości jakie oferował w zakresie generowania stron, w stosunku do szeroko wówczas używanego języka C.

OK, na pierwszy ogień, weźmy popularne strony i aplikacje napisane w całości lub korzystające z PHP

Do czego można dziś wykorzystywać PHP?

Praktycznie wszystko co jest związane z serwerem sieciowym. Możesz zrobić bloga, oprogramowanie typu Software as a Service, skrypty przetwarzające dane i co tylko przyjdzie ci do głowy. Z ciekawszych projektów jakie wykonałem osobiście w PHP to między innymi:

  • serwis społecznościowy dla modelek i fotografów: QQMODELS.PL
  • aplikację do streamingu muzyki: MSC
  • skrypt uczenia maszynowego do generowania drzew decyzyjnych na podstawie algorytmu ID3
  • wszelkie strony internetowe i aplikacje, które możecie znaleźć w moim portfolio

PHP to nie tylko skrypty po stronie serwera. Można wykonywać w nim aplikacje konsolowe a nawet desktopowe! Ale to już dla prawdziwych „wyjadaczy”.

Czytaj więcej: http://php.net/manual/en/intro-whatcando.php

Znane strony internetowe, portale i aplikacje napisane w PHP

  • Facebook
  • Wikipedia
  • Flickr
  • Yahoo!
  • iStockPhoto
  • Tumblr
  • WordPress.com
  • Mailchimp
  • P…hub 😉

Czy trzeba wymieniać więcej? Nie ma to za bardzo sensu. Jak widać ogromne portale które stanowią rdzeń internetu są napisane w języku PHP. Czy ta technologia przyczyniła się do ich sukcesu? Nie mam pojęcia, ale gdyby PHP był tak zły jak można często przeczytać na śmiesznych blogach (autorstwa świeżo upieczonych Junior Deweloperów lub hobbystów) to dawno przepisali by je na inne „lepsze” technologie.

Kiedy koledzy z klasy Marka Zuckerberga po raz pierwszy zalogowali się na Facebooku w lutym 2004 roku, serwery witryny działały w stu procentach na PHP. Facebook opracował z czasem własny język na bazie PHP o nazwie Hack, który jest w dużej mierze zgodny z istniejącym kodem PHP. Wzbogacono go o kilka przydatnych funkcji pochodzących z funkcjonalnych języków programowania i badań Facebooka.

Popularność języka PHP w technologiach internetowych

PHP cały czas „rządzi” w Internecie, co więcej nieustannie przechodzi na wyższe poziomy, a jego wydajność naprawdę rośnie wykorzystując nowoczesne standardy i technologie. Część programistów zwykła nazywać PHP „najgorszym językiem”, z powodu jego rzekomo małej wydajności brak różnego rodzaju API i możliwości. Problem w tym że te osoby porównują PHP z przed lat do nowoczesnych technologii. Dziś mamy PHP w wersji 7.3.0 wydany niedawno bo 6 grudnia 2018. Ma dobrą wydajność i stale poszerzający się katalog nowych bibliotek.

Zgodnie z wieloma ankietami dotyczącymi technologii internetowej udział PHP jako języka po stronie serwera (back-end) wynosi ponad 80%:

Skoro WordPress z dumą chwali się, że obsługuje ponad 30% Internetu a jego najwięksi konkurenci: Joomla, Drupal, Magento, PrestaShop, MediaWiki to też CMSy napisane w PHP – nie ma praktycznie o czym gadać.

Wniosek jest prosty: miażdżąca większość aplikacji internetowych używa PHP po stronie back-endu. To kolejny argument przemawiający zatem, że tak – warto uczyć się PHP o ile naszym celem jest programowanie dla potrzeb Internetu.

Cechy szczególne języka PHP

Web development – język ten szczególnie nadaje się do programowania aplikacji webowych. Jest zoptymalizowany pod przypadki użycia Internetu i cały czas rozwijany w tym kierunku. Takie funkcjonalności jak wysyłanie pliku na serwer lub wysyłanie wiadomości e-mail w PHP to zaledwie jedna linijka kodu.

Wysokopoziomowy, luźno i dynamicznie typowany – oznacza to, że zmienna może zmieniać typy i nie trzeba sztywno ich określać, kiedy definiujesz zmienną, (np. czy jest to liczba, ciąg, tablica itp.). Jest to ogólnie preferowane do programowania w aplikacjach internetowych ale nie jest to powszechne.

Spora społeczność – nie można nie znaleźć w Internecie gotowej odpowiedzi na temat konkretnego problemu z jakim przyjdzie się nam zmierzyć pisząc programy w PHP.

Zalety PHP pod kątem nauki

  • łatwa składnia
  • wielka popularność umożliwia znaleźć rozwiązanie problemu w Internecie i w wielu portalach zrzeszających programistów
  • możliwość wykorzystywania wielu frameworków
  • PHP to projekt open-source’owy,
  • możesz łatwo i tanio opublikować swoje oprogramowanie
  • pełne wsparcie obiektowości (Object Oriented Programming) i nowoczesnych technik programowania,
  • popularność na rynku da ci swobodny wybór ścieżki kariery i przewagę na rynku zarówno jako programista etatowy w korporacjach a także jako Freelancer.

Zalety PHP pod kątem wykorzystywania w start-upie.

  • skrypty PHP obsługują najtańsze serwery nawet te oferowane za parę złotych czy za free,
  • wiele firm tworzy aplikacje wykorzystując PHP dlatego tworząc aplikację biznesową zawsze znajdziesz wsparcie i usługi w konkurencyjnych cenach,
  • przyjazne pakiety LAMP, WAMP do instalacji serwera WWW,
  • ciągły rozwój projektu.

Najczęściej wykorzystywane frameworki PHP

Dla PHP napisano wiele Frameworków, czyli gotowych szkieletów służących do budowania dużych aplikacji i rozwijania projektów w zespołach programistycznych. Frameworki mają upraszczać proces tworzenia. Każdy z nich ma swoje słabe i mocne strony, ponieważ (jak każdy Framework) mają one strukturę zamkniętą i narzucają przepływ sterowania.

Przed nauką konkretnego Frameworka dowiedz się jakie będą najodpowiedniejsze do twoich przypadków użycia.

Najpopularniejsze z nich to:

  • Laravel
  • CodeIgniter
  • Symfony
  • CakePHP
  • Yii
  • Zend Framework
  • Phalcon

Rozwój PHP

PHP rozwija się w interesujący sposób. Rośnie w kierunku bycia w pełni funkcjonalnym językiem podobnym do języka Java. W dalszym ciągu rozwijają się coraz to nowe narzędzia wspierające PHP.

Duże firmy takie jak Amazon, Google, Facebook, udostępniają dla swoich usług API i SDK przeznaczone do wykorzystywania w aplikacjach PHP.

Wydajność nowej wersji PHP 7

Dlaczego warto uczyć się PHP w wersji 7 i wykorzystywać tę wersję na produkcji?

Po ponad dekadzie bez większych ulepszeń języka, PHP 7 zadebiutował w grudniu 2015 roku. Aktualizacja ta przynosi wiele znaczących zmian. Warto wykorzystywać nową wersję PHP nawet wtedy kiedy używasz WordPressa. PHP 7 deprecjonuje wiele przestarzałych funkcji na rzecz nowych i zmodernizowanych. Te dodatkowe funkcje obejmują między innymi: anonimowe klasy, błędy generowane i deklaracje typów.

Ogólnie rzecz biorąc, PHP 7 jest szybsze, bezpieczniejsze i znacznie bardziej wydajne niż starsze wersje. Aby dać przykład, strona z PHP 7 może obsłużyć dwa razy więcej odwiedzających niż PHP 5, używając tej samej ilości pamięci i identycznej konfiguracji serwera. Nowa wersja PHP 7 jest około kilkakrotnie szybsza od PHP 5 (HHVM to wcześniej wspomniana platforma rozwijana w Facebooku):

źródło: https://wpengine.com/resources/upgrading-to-php-7/

O tym skąd się bierze ta wydajność i co oznacza Dead Code Elimination można się dowiedzieć od samego twórcy języka PHP Rasmusa Lerdorfa:

Czytaj więcej o zaletach wykorzystywania PHP i zaletach aktualizacji wersji PHP na produkcji.

PHP kontra reszta świata

Jak to zwykle bywa przy takich tematach, nie da się uniknąć porównywania.

PHP czy Java

PHP jest dużo łatwiejszym językiem do nauki (stwierdzam to jedynie jako programista PHP, mający epizodyczne doświadczenia z Android Studio i nagle zmuszony na studiach magisterskich do posługiwania się Javą aby napisać prostą aplikację zgodną z podejściem Agent Oriented Programming).

Porównując ceny u dostawców hostingu można dojść do wniosku, że uruchomienie aplikacji webowej napisanej w Javie wiąże się z większymi kosztami.

PHP czy JavaScript (node.js)

Jest to chyba najczęściej porównywany język do PHP. Dzięki Node stało się stosunkowo łatwe korzystanie z JS również na serwerze.

Prawda jest jednak taka, że języki takie jak PHP czy Java są o wiele bardziej rozwinięte pod wieloma względami. Istnieje więcej publikacji i choćby wątków na StackOverflow dotyczących przypadków użycia w PHP a nie w node.js. Node.js ma tylko rozwijającą (ale nie rozwiniętą) społeczność.

Node.js jest zaprojektowane z myślą o zdarzeniach czyli asynchroniczoności – nie jest to natywna i naturalna cecha typowych serwerów back-endowych.

Wiele osób podbija fakt, ze node.js to teraz modna technologia i że jest na fali. Ruby też był na fali i co? I już nie jest 😉 Dodatkowo, oprócz podstawowej składni, pisanie front-endu i back-endu w JS nie wiele ma ze sobą wspólnego.

PHP czy C# .NET

Nigdy nie pisałem aplikacji webowej w ASP. Być może preferowałbym ASP, gdybym korzystał i znał serwery Microsoftu.

C# jest o wiele trudniejszym językiem od PHP (ale stwierdzam to jedynie jako praktyk PHP nagle zmuszony na studiach magisterskich do posługiwania się C# i programowania np. programów współbieżnych i wykorzystujących asynchroniczność).

W każdym razie różnica skali społeczności jest nie do porównania. Porównując ceny u dostawców hostingu stwierdzam, że uruchomienie strony czy aplikacji napisanej w ASP wiąże się z większymi kosztami.

PHP czy Python

Python to język, którego porównanie z PHP ma największy sens. Python jest używany w wielu innych kontekstach niż tworzenie stron internetowych – jest również bardzo popularny w statystyce, analizie danych i uczeniu maszynowym.

Jest to również jeden z bardziej stabilnych i dobrze zaprojektowanych języków w powszechnym rozumieniu. Python (podobnie jak Ruby i JavaScript) jest nieco trudniejszy do uruchomienia na serwerze sieciowym niż PHP. Ma sporą społeczność, wsparcie dużych firm i mnóstwo gotowych bibliotek (podobnie jak PHP) ale jest mniej popularny przy wykorzystaniu typowo sieciowym niż PHP.

Podsumowanie

Na sam koniec muszę nadmienić istotną rzecz. W nauce programowania konkretny język nie odgrywa aż tak szczególnej roli jak może się wydawać. Najważniejsza jest sama umiejętność programowania. Przesiadka na inny język programowania nie jest czymś szczególnie trudnym.

Zamiast ślęczeć na forach i zastanawiać się czy konkretna technologia da ci pracę i czy będzie przyszłościowa, wybierz technologię tak aby nauka programowania przynosiła ci dużo radości i satysfakcji.

Jeżeli jednak:

  • chcesz programować aplikacje dla potrzeb internetu,
  • chcesz używać tego samego języka, przy pomocy którego Zuckerberg napisał facebooka 😉 i jakiego użyto do napisania Wikipedii, Yahoo i Flickr’a,
  • chcesz niskim kosztem tworzyć lekkie projekty, które będą utrzymywane i dostępne w Internecie,
  • chcesz mieć możliwość napisania czegoś bardzo szybko niemal w natchnieniu chwili,
  • chcesz tworzyć aplikacje i strony zgodne z popularnymi systemami zarządzania treścią, który zna prawie każdy właściciel strony internetowej,

…to PHP jest dla ciebie.

Źródła:

https://en.wikipedia.org/wiki/Programming_languages_used_in_most_popular_websites

https://www.zdnet.com/article/why-facebook-hasnt-ditched-php/

Zobacz też:

Oceń artykuł na temat: Czy warto uczyć się PHP?
Średnia : 4.6 , Maksymalnie : 5 , Głosów : 17


 

Dodaj swój komentarz




Komentarze

mikel

18 czerwca 2019

Wychodzą jakieś nowe książki do PHP 7.3? Mam książkę do PHP 5, czy powinienem zainstalować LAMP pod PHP 7 i przykłady powinny działać?

Paweł Mansfeld

18 czerwca 2019

Są i chyba sam się będę zaopatrywał na jesień by lepiej poznać nowości w PHP7. Najnowsze jest chyba PHP & MySQL - Server-side Web Development, druga Practical PHP 7, MySQL 8, and MariaDB Website Databases A Simplified Approach to Developing Database-Driven Websites obie wydane w styczniu 2019. Nie mogę ich polecić bo ich nie znam - jedyne co można znaleźć to dość dobre oceny na Amazonie. Przykłady z książek dotyczące PHP5 na 99,0% powinny działać w PHP7 a w przypadku problemów z deprecjonowanymi instrukcjami zawsze można sprawdzić tego typu zestawienia (jakie instrukcje zostały wyparte i zastosować nowy zalecany styl): https://www.php.net/manual/en/migration70.deprecated.php

Tomek Grab

12 września 2019

Node.js na fali? To już prędzej mogłeś napisać Go. Polecam do poczytania: https://medium.com/javascript-non-grata/the-fall-of-the-house-of-node-43697fd56a6 Jeżeli coś jest tworzone tylko po to abyś mógł używać JavaScript także na serwerze, to raczej nie warto poświęcać temu uwagi. Popularność noda bazuje na lenistwie do nauki nowych języków - ot, cała jego filozofia.

Sky

28 listopada 2019

czuje się jakbym czytał wypowiedzi fana PHP , znam php znam ruby (i ruby on rails) znam javascript (w tym nodejs jquery vuejs ) i osobiście wolę tworzyć w RoR z wykorzystaniem nowych frameworków niż na php. Mimo tego że to na php + js się uczyłem tworzyć, moje strony były bardzo niewydajne przy 100 osobach online jednocześnie i musiałem przepisać większość na node.js. Który na tym samym serwerze utrzymałby 500 a nawet 1000 osób bez problemu. Problemem tu nie był język a to jak moja strona miała w zamiarze działać. Wszystko działo się live a PHP nie mógł działać ja nodejs na serwerze i wysyłać tylko dane socketem. Więc koniec końców czy php uważam za zły? Nie, po prostu każdy ten język i framework ma swoją zasadę działania i nie nadaje się do wszystkiego . PHP będzie i zostanie jako język do mniejszych serwisów a co większe nawet jak działały na PHP koniec końców zostały przepisane na systemy bardziej wydajniejsze.

Paweł Mansfeld

29 listopada 2019

Dziękuję za komentarz. Jeżeli "wszystko działo się live" to faktycznie mamy do czynienia z nietypowym dla PHP przypadkiem użycia. PHP jest do typowych/klasycznych back-endów WWW czyli synchroniczne zapytanie - generowanie szablonu - odpowiedź. Pisanie o "mniejszych aplikacjach" jest trochę stronnicze bo Wikipedię, Flickra i Tumblr nie zaliczałbym do mniejszych projektów. Dziękuję za uwagę, bo faktycznie warto napisać nieco więcej wadach PHP i poruszyć obszary gdzie przewagę mają inne technologie.