Wątek przeniesiony 2022-02-06 18:24 z JavaScript przez Riddle.

Frontend i nauka PHP

0

Siemka, ucze sie juz pare miesiecy frontendu, lece teraz z Javascriptem docelowo chcę uczyc się Reacta lub Vue. Jednak patrzac na ogloszenia w moim miescie widze czesto, ze w ofertach na FE deva jest wymagana znajomosc PHP, ale slyszalem tez, ze nie warto uczyc się tego jezyka i wgl..

Jakie jest wasze zdanie na ten temat? Lepiej rozwijc sie w Vue lub React, czy dodstkowo jeszcze PHP?

0

W ofertach często pojawiają sie oferty na fullstacków (js+php, js+java, js+c# itd) ale ofert na samych frontenfowców też jest dużo.

Podstawowe pytanie którego języka chcesz się uczyć i czy chcesz być specjalistą od jednego języka czy każdego znać po trochu

2

Nie ucz się PHP, oszczęść sobie nieszczęścia. Jeśli już koniecznie chcesz się nauczyć backendu to wybierz raczej Jave, c#, Python albo coś innego, byle nie PHP.

Jakie jest wasze zdanie na ten temat? Lepiej rozwijc sie w Vue lub React, czy dodstkowo jeszcze PHP?

Zawsze każda dodatkowa kwalifikacja jest dobra, nie ważne czy to nowy język, nowa biblioteka, nowe środowisko czy ekosystem. Także naucz się w wielu dziedzinach, front i back, jaknajbardziej.

2
theStudent napisał(a):

Siemka, ucze sie juz pare miesiecy frontendu, lece teraz z Javascriptem docelowo chcę uczyc się Reacta lub Vue. Jednak patrzac na ogloszenia w moim miescie widze czesto, ze w ofertach na FE deva jest wymagana znajomosc PHP, ale slyszalem tez, ze nie warto uczyc się tego jezyka i wgl..

Jakie jest wasze zdanie na ten temat? Lepiej rozwijc sie w Vue lub React, czy dodstkowo jeszcze PHP?

Znajomośc dodatkowego języka to zaleta (jeśli znajdziesz firmę, która potrzebuje obu).

Jednak pytanie, czy warto ponosic koszt alternatywny - jeśli będziesz wchodzic dodatkowo w PHP, to będziesz miec mniej czasu na naukę JavaScriptu i bibliotek javascriptowych. Jeżeli dopiero zaczynasz swoją przygodę z programowaniem (jeśli dobrze rozumiem), to moim zdaniem nie warto, bo powiedzmy sobie szczerze, że jeśli się uczysz frontendu przez kilka miesięcy od zera, to pewnie twoje umiejętności są dopiero raczkujące się. I na tym etapie wydaje mi się, że nie ma sensu się rozdrabniac jeszcze mocniej (bo sam frontend to już jest ileś rzeczy).

Jednak patrzac na ogloszenia w moim miescie

Po co? Praca zdalna i się nie musisz przejmowac. A znalezc oferty na sam frontend w Polsce jest łatwo. Albo na frontend + bardziej cywilizowany język na backendzie niż PHP.

Lepiej rozwijc sie w Vue lub React, czy dodstkowo jeszcze PHP?

Tutaj pytanie, co ty chcesz. Czy PHP cię jara. Czy jara cię typ projektów, które się robi w PHP itp.
Trzeba myślec przyszłościowo, czyli pod kątem "czy chcę to robic w przyszłości", a nie tylko pod kątem znalezienia pierwszej pracy.

1

Nie ucz się PHP. Strata czasu, życia i nerwów ;) nie widzisz ile memów jest na temat PHP? serio, daruj sobie.
A tak poważnie... Frontend + PHP = WordPress. Jako "jakiś" wstęp do pracy w IT może i to jest, ale tylko jak masz nerwy ze stali i tytanową wytrwałość w nauce po godzinach to działaj, zawsze lepsze jakiekolwiek doświadczenie (wordpress) niż biedronka.

0
musrus napisał(a):

Frontend + PHP = WordPress.

Bzdury gadasz.

1

99% osób hejtujacych php nigdy linijki w tym języku nie napisali, ewentualnie pamiętają go jeszcze z wersji 5.

1

To nie kwestia hejtowania php. Są po prostu bardziej opłacalne/przyszłościowe języki do nauki niż PHP.

0

Jakbym dzisiaj wybierał język to pewnie na php bym nie postawił, ale też z tym hejtem bym nie przesadzał. PHP 8 to całkiem ok język skryptowy i jest sporo stanowisk z widelkami 20k+, a programistów mało. Jest też sporo pracy zdalnej nie tylko w pandemii. Jedyny minus to, że latwo wdepnąć w nierozwojowy stack typu Wordpress czy proste crudy w Laravelu i potem trudno z tego wyjść. Unikał bym też ofert js+php bo to zazwyczaj pułapka.

0
hadwao napisał(a):

Jakbym dzisiaj wybierał język to pewnie na php bym nie postawił, ale też z tym hejtem bym nie przesadzał. PHP 8 to całkiem ok język skryptowy

Nie, nie jest. Nad PHP5 weszło tylko kilka poprawek składni i funkcji, język jest tak samo zwalony jak był.

0
TomRiddle napisał(a):

Nie, nie jest. Nad PHP5 weszło tylko kilka poprawek składni i funkcji, język jest tak samo zwalony jak był.

Zwalony bo?

3
Mjuzik napisał(a):
TomRiddle napisał(a):

Nie, nie jest. Nad PHP5 weszło tylko kilka poprawek składni i funkcji, język jest tak samo zwalony jak był.

Zwalony bo?

Pisałem o tym już wielokrotnie na forum:

  • == jest nadal bezwartościowe (ponieważ żonglowanie typów przez PHP powoduje nic tylko bugi), tylko === można sensownie używać. < oraz > nie mają type-safe odpowiednika, przez co są prawie tak samo bezwartościowe jak ==.
  • Funkcje w PHP nadal mają zwalone nazwy, tzn połowa funkcji jest snake_case a połowa niesnakecase, np str_to_lower(),array_search() vs strpos()/htmlentities(). Nie wiem kto to nazewnictwo wymyślał
  • Nadal nie ma covariant typów (czyli nie można sobie w dziecku zwrócić innej implementacji, ponieważ interpreter tego nie dopuszcza; tak jak dosłownie w każdym innym języku to działa, tak w PHP nie działa)
  • W 7.1 weszła możliwośc nazywania metod i zmiennych słowami kluczowymi, ale nadal nie działa to dla funkcji oraz Klas ;| Kolejna niekonswkwencja.
  • Nadal nie ma sensownych kolekcji w całym języku, jest tylko array, dla których część funkcji traktuje go jak liste, część jak mapę a część jak zbiór.
  • Nadal ma bardzo silne przywiązanie do servera Apache i integracja z innymi serwerami jest trudna
  • Castowanie wartości nadal jest zwalone, np false na "".
  • Nadal cała biblioteka standardowa nie ma przestrzeni nazw, wszystko siedzi w globalnym namespace'ie
  • Nadal string lub array uważany jest za poprawną funkcję (callable).
  • Nadal połowa funkcji operująca na tablicach ma przedrostek array_ a połowa nie.
  • Nadal są funkcje w języków które nie wiadomo do czego są, np stripslashes() które nie należy do żadnej domeny (ani SQL, ani HTML, ani ścieżki, ani nic innego). "Po prostu jest".
  • Nadal ponad 80% funkcji nie rzuca wyjątków jak są błędy, tylko zamiast tego albo daje notice/warning/error, albo rzuca fatal error (który wyłacza aplikacje i nie da się go niczym złapać), albo ustawia kod błędu (json_last_error(), preg_last_error(), mysql_last_error()), albo zwraca null/false, albo robi coś jeszcze głupszego.
  • Nawet jeśli ktoś nie lubi wyjątków, i lubi posługiwać się "kodami błędów", to to nadal jest niekonsystencje bo niektóre funkcje zwracają null, niektóre false, niektóre 0 albo -1 lub inne bezsensowne wartości, albo w ogóle nic nie zwracają i trzeba zawołać inną funkcję żeby to sprawdzić.
  • Nadal cała dystrybucja PHP jest kontrolowana przez php.ini, nie ma żadnego systemu modułów, są jedynie extensiony, ale żeby je dodać trzeba je skompilować z C
  • Nawet pomijając extensiony, to PHP sam w sobie nie ma żadnego sensownego systemu modółów (jak np node lub python), wszystkie projekty muszą polegać na zewnętrznych rozwiązaniach, np autoload z composera.
  • Nadal w PHP8 nie da się zrobić new A()->method(). Trzeba robić (new A())->method().

I masa, masa, masa innych. Tak na prawde jedyne poprawki od PHP5 jakie weszły to type hinty w funkcjach, typach, property, lambdy i atrybuty, czyli dodatkowa składnia do języka, oferująca kilka dobrych dodatkowych feature'ów, ale to nie zmienia tego że sam język od początku jest nieporawnie zaprojektowany, i nie da się teraz już go poprawic bez wprowadzania okropnych breaking change.

Tutaj jest post "Fractal of bad design", napisany w 2012 roku kiedy wychodziło dopiero PHP 5.6: https://eev.ee/blog/2012/04/09/php-a-fractal-of-bad-design/ Od tamtego czasu może 5-10% rzeczy zostało poprawione, pozostałe 90% nadal pozostaje w języku, i podejrzewam żę zostanie już na zawsze.

3

@TomRiddle: mówimy o języku skryptowym, który ma prawie 30 lat :-) Praktycznie każdy język, który odniósł duży sukces rynkowy niesie ze sobą jakiś bagaż dziwactw i trudno go porównywać z nowymi, hipsterskmi językami, które zresztą w większość nigdy nie wyjdą ze swojej niszy. Już kiedyś opisywałem to zjawisko i też nie chce mi się do tego wracać. Tak jak pisałem dzisiaj bym pewnie PHP nie wybrał, na pewno nie wybrałbym bo jako pierwszy język, ale też nie ma co demonizować PHP.

To jest język, w którym pewnie jeszcze z kolejne 20-30 lat będzie praca, ciągle powstają w nim duże i ciekawe projekty, język ciągle się poprawia i do swoich zastosowań dobrze się nadaje. Główne zagrożenie jak dla mnie to brak dobrych developerów i myślę, że to będzie w końcu przyczyną śmierci PHP. Z 3 strony to pewnie będzie oznaczało dostatnią emeryturę dla osób, które w tym języku siedzą bo jak popularna technologia umiera, to developerzy dostają rynkową premię za utrzymywanie i rozwój istniejących systemów ;-)

0
TomRiddle napisał(a):
  • Nadal nie ma sensownych kolekcji w całym języku, jest tylko array, dla których część funkcji traktuje go jak liste, część jak mapę a część jak zbiór.

akurat to jest super typ którego bardzo mi brakuje w innych językach
mam wrażenie że niektórzy chcieliby żeby każdy język był taki sam,, tylko po co wtedy różne języki?

1
hadwao napisał(a):

@TomRiddle: mówimy o języku skryptowym, który ma prawie 30 lat :-) Praktycznie każdy język, który odniósł duży sukces rynkowy niesie ze sobą jakiś bagaż dziwactw i trudno go porównywać z nowymi, hipsterskmi językami, które zresztą w większość nigdy nie wyjdą ze swojej niszy. Już kiedyś opisywałem to zjawisko i też nie chce mi się do tego wracać. Tak jak pisałem dzisiaj bym pewnie PHP nie wybrał, na pewno nie wybrałbym bo jako pierwszy język, ale też nie ma co demonizować PHP.

To jest język, w którym pewnie jeszcze z kolejne 20-30 lat będzie praca, ciągle powstają w nim duże i ciekawe projekty, język ciągle się poprawia i do swoich zastosowań dobrze się nadaje. Główne zagrożenie jak dla mnie to brak dobrych developerów i myślę, że to będzie w końcu przyczyną śmierci PHP. Z 3 strony to pewnie będzie oznaczało dostatnią emeryturę dla osób, które w tym języku siedzą bo jak popularna technologia umiera, to developerzy dostają rynkową premię za utrzymywanie i rozwój istniejących systemów ;-)

To byłaby prawda, gdyby język po prostu był stary i nie był przewidziany dla nowoczesnych rozwiązań.

Ale w PHP do tego dochodzi kompletny brak designu języka, kompletny brak konsystencji we wszystkich jego elementach, cały rozwój jest "ślepy" bez jakiegokolwiek kierunku, praktyczne każdy element języka zastawia na programistę pułapki (jak ten ==), i całość jest zrobiona z myślą o "budowaniu html" niż o jakimś języku programowania.

Także jak zgadzam się z Twoją opinią nt starych języków, tak nie uważam że to jest pełny obraz jeśli chodzi o PHP.

0

Mówienie że php jest takie złe i czepianie się nazewnictwa w języku, który ma ponad kilkanaście lat jest trochę śmieszne. Mi nazewnictwo w PHP w ogóle nie przeszkadza, coś potrzebuje, sprawdzam w dokumentacji i tyle. W pozostałych językach też pewnie znaleźlibyśmy przykłady błędnego czy bezsensownego nazewnictwa.

Krytykowanie operatorów w PHP w porównaniu do JS'a również brzmi trochę śmiesznie. Tylko nikt w tym wątku nie hejtuje jawascriptu.

W PHP jest napisane pół internetu, ciekawe dlaczego skoro to taki tragiczny język programowania :P. Oczywiście jest sporo lepszych języków, ale mam wrażenie że osoby hejtujace php hejtują go bo taki jest trend (99%), a pozostała część osób ma jakieś paranoje i nie widzi wad innych języków.

0
Mjuzik napisał(a):

Mówienie że php jest takie złe i czepianie się nazewnictwa w języku, który ma ponad kilkanaście lat jest trochę śmieszne. Mi nazewnictwo w PHP w ogóle nie przeszkadza, coś potrzebuje, sprawdzam w dokumentacji i tyle. W pozostałych językach też pewnie znaleźlibyśmy przykłady błędnego czy bezsensownego nazewnictwa.

Nie aż tak jak w PHP.

Pozwolę sobie zacytować z "Fractal of bad design"

Chunks of the library are wildly inconsistent from one another.
Underscore versus not: strpos/str_rot13, php_uname/phpversion, base64_encode/urlencode, gettype/get_class
“to” versus 2: ascii2ebcdic, bin2hex, deg2rad, strtolower, strtotime
Object+verb versus verb+object: base64_decode, str_shuffle, var_dump versus create_function, recode_string
Argument order: array_filter($input, $callback) versus array_map($callback, $input), strpos($haystack, $needle) versus array_search($needle, $haystack)
Prefix confusion: usleep versus microtime
Case insensitive functions vary on where the i goes in the name.
About half the array functions actually start with array_. The others do not.
htmlentities and html_entity_decode are inverses of each other, with completely different naming conventions.

Krytykowanie operatorów w PHP w porównaniu do JS'a również brzmi trochę śmiesznie. Tylko nikt w tym wątku nie hejtuje jawascriptu.

Tylko że w JS operatory nie są aż tak zwalone jak w PHP, np w JavaScript wszystkie operatory są transytywne, w PHP nie. Tzn w JavaScript jeśli a==b oraz b==c to a==c, zawsze!

W PHP niekoniecznie, np "foo" == true oraz "foo" == 0, ale true != 0. To znaczy że wszelkie operacje które polegają na transytywnych operacjach, np sortowanie lub hashowanie jest niedeterministyczne.

W PHP jest napisane pół internetu, ciekawe dlaczego skoro to taki tragiczny język programowania :P.

No pewnie dlatego że jest i był w miare łatwy do nauki, każdy server (apache, nginx, inne) oraz hosting go wspiera, są giganty jak Wordpress i Laravel, jest powszechnie znany, jest dużo książek i artykułów na jego temat. Środowisko PHP stało się rozpowszchenione.

No po prostu jest popularny, co nie znaczy że dobry.

Oczywiście jest sporo lepszych języków, ale mam wrażenie że osoby hejtujace php hejtują go bo taki jest trend (99%), a pozostała część osób ma jakieś paranoje i nie widzi wad innych języków.

No na pewno jest taki trend, i oczywiście jest 99% ludzi którzy go hejtują mimo że nie rozumieją czemu, pełna zgoda. Ale to nadal nie oznacza że język jest dobry, albo nawet "ok". Bo język sam w sobie jest tragiczny.

Więc, podsumowując. Tak są inne języki, ktore mają niektóre nieprzemyślane elementy, w każdym języku tak jest, masz rację. Tylko że we wszystkich językach te niekonsekwencje, nieprzemyślenia i błędy są trzymany w rozsnądnym minimum. W PHP praktycznie wszystko jest nieprzemyślane i niekonsystentne. W innych językach istnieją narzędzia i pomoce żeby ochronić Cię przed błędami; w PHP język sam zastawia na Ciebie pułapki.

0

Tylko że w JS operatory nie są aż tak zwalone jak w PHP
Taa, nie są... 5pFXFbR.jpg

Popularność ma swoje przyczyny, to nie jest jak z popularnością na YouTube, że głupota dobrze się sprzedaje. Nikt nie inwestuje setek tysięcy zł w systemy, w których język programowania byłby tak tragiczny. I żadna firma nie chciałaby tego wdrażać.
Inny przykład, kiedyś i obecnie większość sklepów internetowych pisze się właśnie w PHP. Nie ma obecnie sensownych alternatyw np. dla magento czy syliusa. Kiedyś był jeszcze Hybris napisany w Javie, ale nie słyszałem by obecnie ktoś tego używał.

PHP to tragiczny język, w którym widełki płacowe są najniższe. Więc skąd tyle systemów napisanych w php, skąd tyłu programistów, skąd taka społeczność? Tylko z popularności?

2
Mjuzik napisał(a):

Tylko że w JS operatory nie są aż tak zwalone jak w PHP
Taa, nie są... 5pFXFbR.jpg

O, masz rację. No to pod względem operatora == JavaScript jest tak samo zjebany jak PHP. Punkt.

Ale nadal pozostałe niekonsekwencje języka w PHP przewyższają te z JS na głowę.

Popularność ma swoje przyczyny, to nie jest jak z popularnością na YouTube, że głupota dobrze się sprzedaje. Nikt nie inwestuje setek tysięcy zł w systemy, w których język programowania byłby tak tragiczny. I żadna firma nie chciałaby tego wdrażać.
Inny przykład, kiedyś i obecnie większość sklepów internetowych pisze się właśnie w PHP. Nie ma obecnie sensownych alternatyw np. dla magento czy syliusa. Kiedyś był jeszcze Hybris napisany w Javie, ale nie słyszałem by obecnie ktoś tego używał.

PHP to tragiczny język, w którym widełki płacowe są najniższe. Więc skąd tyle systemów napisanych w php, skąd tyłu programistów, skąd taka społeczność? Tylko z popularności?

Pośrednio, i bezpośrednio tak.

Z dostępności środowisk, z dostępności bibliotek, z dostępności frameworków i oprogramowania open source, z wpływu WordPress'a, z dostępności też infrastruktury, każdy server hostingowy teraz wspiera PHP. A one z kolei są wspierane nadal głównie przez popularność. PHP był początkowo stworzony z myślą o amatorskich stronach, (czyt. "nie dla programistów'), i potem ewoluował. Tylko ewoluował dosyć chaotycznie, i kolejne funkcje i elementy języka były wprowadzane bez większego ogarnięcia; przez co teraz jest takim kuchennym zlewem do którego się wrzuca rzeczy na górę; i tylko raz na jakiś czas ktoś dokona jakiejś korekty (jak np ze zmianą prioritetu operatora ?:, co było dobre), ale to i tak jest dużo za mało żeby poprawić język.

Coś może stać się bardzo popularne, powszechnie używane i rozwijane, nawet jeśli jest bardzo złe. Co w tym dziwnego? Jeśli jesteś "programistą" który zna tylko jeden język (np tylko PHP), albo nawet dwa podobne języki do siebie; to może Ci być bardzo ciężko rozróżnić co jest jego dobrym elementem a co złym.

Polecam przeczytać: https://eev.ee/blog/2012/04/09/php-a-fractal-of-bad-design/ o którym już mówiłem (95% rzeczy wymienionych tam nadal istnieje w PHP8).

Tym miłym akcentem kończę rozmowę. Możesz nadal utrzymywać opinię, że PHP jest tak samo dobro-zły jak JavaScript; albo możesz zmienić zdanie i jednak zrozumieć że, tak jak każdy język ma wady, tak PHP wyskoczył poza skalę o całe rzędy wielkości. Choice is yours i miłego dnia.

0

@TomRiddle: Wszystkie przyczyny popularności, które wypisałeś są zaletami języka. Skupiłeś się tylko na wadach nie biorąc pod uwagę zalet i dlatego uważasz ten jezyk za tragiczny.
Gdybyśmy spisali wady i zalety pozostałych języków to obstawiam że php mógłby być gdzieś w połowie. Natomiast z tego zestawienia na pewno nie wyszłoby że jest tragiczny
I
Cieszę się z jednego, jesteś jedną z niewielu osób, która w PHP pisała i potrafi uzasadnić swoją nienawiść do tego języka. Coś też z tej rozmowy wyniosłem, pomimo kodowania kilka lat w PHP nie znałem wcześniej 'foo' == 0. Fakt, to idiotyzm.

2
Mjuzik napisał(a):

@TomRiddle: Wszystkie przyczyny popularności, które wypisałeś są zaletami języka.

Nie, to są zalety środowiska i ekosystemu które się wytworzyły wokół języka. Takie rzeczy jak biblioteki, frameworki, narzędzia i hostingi nie są częścią języka w żaden sposób.

Być może Tobie w całej rozmowie chodziło o to że ekosystem PHP (frameworki, biblioteki, narzędzia, toole, IDE, popularność programistów, etc.) jest w miare spoko? Noo, to się nawet mogę zgodzić. Laravel jest bardzo dobrym narzędziem, podobnie PhpUnit, composer, Carbon i inne sprawdzone w boju narzędzia. Ale to jest ekosystem/środowisko.

Ja mówię tylko o języku, tylko i wyłącznie, czyli tym co jest dostępne jak odpalisz php.exe index.php. I ta część jest zwalona na maxa.

Skupiłeś się tylko na wadach nie biorąc pod uwagę zalet i dlatego uważasz ten jezyk za tragiczny.

No zalety jedyne jakie znam w PHP to to że rozróżnia operator + od . (czyli że + traktuje parametry jak liczby, ('1' + '2' == 3, a 1 . 3 == '13). To jest spoko, bo w innych językach + zarówno robi konkatenację jak i dodawanie, co czasem może wprowadzić w błąd.

Prawie dobre byłoby to, że ||/&& operuje na wartościach wszystkich a and/or zawsze na boolean, prawie! Bo oczywiście musieli to zjebać i oprócz tego że or/and działa jak boolean, to jeszcze zmiania priorytet operatorów, więć nie można sobie tak po prostu zrefaktorować tych dwóch elementów ze sobą, bo jest spora szansa że coś zepsujesz.

I jeszcze jest spoko to że nie możesz sobie użyć zmiennej globalnej "tak o" w funkcji, tylko trzeba ją poprzedzić global, tak jak w Pythonie. To też jest spoko element, bo nie użyjesz zmiennej globalnej przypadkiem.

I co do samego języka to jest chyba tyle zalet. Reszta to są same wady.

To co mnie osobiście najbardziej wkurza w języku, to jest to że nigdy nie wiem czy jakaś funkcja nie kopie podemną dołków. Jak piszę w innych językach, i używam sobie jakiejś funkcji, to mogę być w miare pewien jej wyniku. W PHP natomiast prawie każda funkcja zależy od pierdyliona rzecz, od ustawień w php.ini, od locale'a, od systemu na którym działa, od ustawień wewnętrznych PHP, od zmiennych środowiskowych czasem, od wszelakich stanów jak mb_internal_encoding(), od masy rzeczy. Jak odpalisz w PHP funkcje z takimi samymi argumentami w dwóch programach, to nigdy nie możesz być pewien czy zadziała tak samo.

Gdybyśmy spisali wady i zalety pozostałych języków to obstawiam że php mógłby być gdzieś w połowie. Natomiast z tego zestawienia na pewno nie wyszłoby że jest tragiczny

No zależy czy mówisz o językach czy o środowiskach. Jeśli o środowiskach, to tak, mógłby gdzieś być w połowie. Jeśli o językach, to moim zdaniem byłby na szarym końcu.

Cieszę się z jednego, jesteś jedną z niewielu osób, która w PHP pisała i potrafi uzasadnić swoją nienawiść do tego języka. Coś też z tej rozmowy wyniosłem, pomimo kodowania kilka lat w PHP nie znałem wcześniej 'foo' == 0. Fakt, to idiotyzm.

No ja w PHP piszę jakieś 10 lat, i jestem od 5 lat autorem tej biblioteki: https://t-regx.com/ także na PHP zjadłem zęby.

2

Czy w PHP jest pisanych dużo greenfieldów, czy tylko legacy i strony na Wordpressie czy innych gotowych CMSach?

Co może sprawiac, że ludzie sami z własnej woli zaczynając nowiutki projekt w 2022, stawiają go w PHP?

Czy im się podoba ten język? (trochę szokujące, ale np. mnie się podoba JS, mimo, że też widzę jego wady i mnie wkurza często. Może tak jest z PHP?)

Czy chodzi o frameworki? (BTW jest taka dyskusja teraz na HN o tym: https://news.ycombinator.com/item?id=30219984 gdzie podobne tematy poruszają jak my tutaj). No ale przecież w innych językach też są frameworki.

3
LukeJL napisał(a):

Czy w PHP jest pisanych dużo greenfieldów, czy tylko legacy i strony na Wordpressie czy innych gotowych CMSach?

Moim zdaniem to drugie przewyższa, ale to tylko moja opinia. Ja raczej nie zacząłbym projektu w PHP.

Co może sprawiac, że ludzie sami z własnej woli zaczynając nowiutki projekt w 2022, stawiają go w PHP?

Moim zdaniem, w 99% przypadków to że znają tylko ten język.

Wielokrotnie rozmawiałem z "obrońcami języków". Jeśli znajdziesz kogoś kto pisze tylko w dajmy JS albo PHP, i wskażesz wady języka, to wielu ludzi bierze to personalnie do siebie: "co? przecież to jest mój język, nie możesz go krytykować". Ale opinie słałby wrazem z nauką innych języków.

Czy im się podoba ten język? (trochę szokujące, ale np. mnie się podoba JS, mimo, że też widzę jego wady i mnie wkurza często. Może tak jest z PHP?)

Jeśli znasz tylko jeden język, to ciężko sobie wyrobić zdanie na jego temat. Dla takich ludzi po prostu "jest jak jest". Jak zaczynasz pierwszy język, to nie wiesz czy coś z czego korzytasz jest cechą programowania w ogóle (jak np sortowanie, hashowanie, bezpieczeństwo, testowanie, solid, modularyzacja), czy jest tylko wymyśłem języka.

Noi też PHP ma to do siebie że bardzo łatwo jest postawić coś początkowego w nim. Jak masz statyczną stronę na Apache'u, to nie musisz robić totalnie nic. Po prostu zmień rozszerzenie z index.html na index.php i już możesz pisać. Co prawda łamie to wszelkie dobre zasady jakie istnieją (dependency inversion, MVC, separation of conerns, co sprawia że na dluższą metę taki projekt jest nierozwijalny), ale tak czy tak to jest kwestia sekund żeby to postawić; co może być wygodne dla nowicjuszy którzy nie znają alternatyw. Najczęstszym przykłądem tego jest jeden plik PHP, w którym jest osadzony zarówno PHP, HTML, JS czasem z jQuery, SQL i CSS wymieszane jak w szatkownicy, razem z sesją i ciastkami, bez żadnych testów ale za to z podatnością na SQL injection i XSS.

W większości języków zrobienie czegoś dobrego jest proste; i musisz się znać żeby zrobić coś głupiego. W PHP zrobienie czegoś głupiego jest proste, i musisz się bardzo znać, żeby to zrobić dobrze.

PHP ma jakby "wbudowaną integrację z HTTP". Żeby w Javie albo Pythonie wytawić API po HTTP musisz użyć Springa albo Django, czyli poniekąd musisz wiedzieć co robisz. W PHP dostajesz z automatu $_POST, $_GET, $_HEADERS oraz $_SESSION, mimo że nowicjusz nie ma pojęcia czym one są, ani w ogóle czym HTTP jest. Pomijając fakt że wtedy aplikacja automatyczine dostaje dodatkową zależność od integracji z interfejsem webowym, to to jest wrzucanie amatora na tak głęboką wodę jak tylko się da; ale Ci amatorzy są szczęśliwi bo jak przekazują parametr to muszą wpisać "tylko" $_GET['id'] i "działa". Ale to że takie zwalone rozwiązanie za tydzień dwa stanie się spaghetti, to już nie ich problem ;)

Dodatkowo, mogą też bezproblemowo pomieszać języki na dziesiątą stronę. PHP jest tutaj wyjątkiem, bo tylko tutaj da się w tak prosty sposób strzelić sobie w stopę i pół głowy, po prostu pisząc <script> albo SELECT * FROM, albo <style> zaraz w środku index.php i to "działa", dla amatora przynajmniej. Nawet jak jakiś co mądrzejszy amator spróbuje to podzielić na pliki script.js, style.css, file.sql to dostaje szmatą w twarz, bo PHP w 99.999% przypadków stoi na apache'u, i modularyzacja plików nie jest ogarnięta od razu, więc jak amator spróbuje tak zrobić, to na 99% mu się to nie uda tak prosto; bo to wymaga wiedzy tego co się robi, np znajomości .htacess albo tego jak działa ruch w sieci. I taki amator, nie zdając sobie sprawy z tego że złamał tysiąc antypatternów i dobrych praktyk, ma plik na 100 linijek, który postawił mu całą aplikacje. Noi też popularnym trickiem staje się taka konfiguracja Apache, która woła różne pliki zależnie od podstrony, np page.com/file.php lub page.com/user.php. Czyli zamiast mieć jeden entry-point, który obsługuje API, ta integracja jest porozsiewana po różnych plikach, ale PHP nie dostarcza żadnego sensownego systemu modularyzacji, więc to się kończy albo copy-pastem, albo require() z jednego pliku do drugiego, ale też ponieważ mamy zwalone MVC w PHP, to część kodu dostarcza nowe funkcje, a część renderuje widok (bo są index.html zamienionymi na index.php), przez co potem powstają takie błędy jak np cannot modify header information, headers already sent.

Noi jest też trzeci element, funkcje w PHP robią często "więcej niż jedną rzecz". Więc jak nowicujesz chce zrobić coś popularnego (np dodać email na stronę, albo osadzić HTML), to musi się stosunkowo mało napisać, bo funkcje w PHP robią więcej rzeczy za niego. Problem pojawia się kiedy chcesz zrobić coś "Swojego", kapkę bardziej customowego. Wtedy fakt że funkcje w PHP nie spełniają SRP, to zaczynają Ci bardziej przeszkadzać niż pomagać. Na profesjonalnym poziomie, takie przeszkadzanie przewyższa 1000x bardziej koszt utrzymania. Dla amatora, ktory musi użyć jednej funkcji zamiast trzech i "jakoś działa" to jest spoko.

To co PHP robi tak na prawdę, to daje Ci zatrudne jabłko i czeka aż je zjesz.

2
TomRiddle napisał(a):

PHP ma jakby "wbudowaną integrację z HTTP". Żeby w Javie albo Pythonie wytawić API po HTTP musisz użyć Springa albo Django, czyli poniekąd musisz wiedzieć co robisz. W PHP dostajesz z automatu $_POST, $_GET, $_HEADERS oraz $_SESSION, mimo że nowicjusz nie ma pojęcia czym one są, ani w ogóle czym HTTP jest. Pomijając fakt że wtedy aplikacja automatyczine dostaje dodatkową zależność od integracji z interfejsem webowym, to to jest wrzucanie amatora na tak głęboką wodę jak tylko się da; ale Ci amatorzy są szczęśliwi bo jak przekazują parametr to muszą wpisać "tylko" $_GET['id'] i "działa". Ale to że takie zwalone rozwiązanie za tydzień dwa stanie się spaghetti, to już nie ich problem ;)

Myślę, że ta cecha (nie musisz się martwic, magicznie się rzeczy robią) przeważyła zarówno na tym, że PHP stał się popularny jak i pomogła internetowi się rozwijac, bo próg wejścia w pisanie stronek był niższy. Przecież kiedyś było pełno stronek w PHP robionych na partyzanta. Stronki, których już często nie ma, ale które prezentowały jakaś treśc, zbierały jakieś społeczności, ogólnie więc pomagały budowac społeczenstwo informacyjne (pamiętam, że funkcjonowało nawet słowo "internauta", które w 2022 wydaje się już archaizmem, bo chyba każdy Polak jest internautą).

Więc ogólnie powstanie PHP jest na plus. Spełnił swoją rolę w historii internetu.

Więc jak spełnił, to może czas już wysłac PHP na emeryturę i utrzymywac to, co jest do utrzymywania, ale nowe projekty robic w jakichś bardziej sensownych językach? Już nawet amatorzy dzisiaj piszą raczej w JS czy Pythonie niż w PHP.

1

Nie, to są zalety środowiska i ekosystemu które się wytworzyły wokół języka. Takie rzeczy jak biblioteki, frameworki, narzędzia i hostingi nie są częścią języka w żaden sposób.
@TomRiddle: jeśli mam komuś doradzać wybór języka to ekosystem jak najbardziej trzeba brać pod uwagę do ogólnej oceny. Korzystanie z frameworków, bibliotek czy narzędzi są codziennością pracy php developera.

2
Mjuzik napisał(a):

Nie, to są zalety środowiska i ekosystemu które się wytworzyły wokół języka. Takie rzeczy jak biblioteki, frameworki, narzędzia i hostingi nie są częścią języka w żaden sposób.
@TomRiddle: jeśli mam komuś doradzać wybór języka to ekosystem jak najbardziej trzeba brać pod uwagę do ogólnej oceny. Korzystanie z frameworków, bibliotek czy narzędzi są codziennością pracy php developera.

No to polecaj, ja nie mówię że nie.

Ale to nie zmienia faktu że język sam w sobie jest zjebany. Jest masa dobrych projektów i rozwiązań w PHP; ale to nie znaczy że PHP jako język programowania jest dobry.

2
LukeJL napisał(a):

Czy w PHP jest pisanych dużo greenfieldów, czy tylko legacy i strony na Wordpressie czy innych gotowych CMSach?

Co może sprawiac, że ludzie sami z własnej woli zaczynając nowiutki projekt w 2022, stawiają go w PHP?

Wbrew pozorom pisze się bardzo dużo green fieldów w PHP, stosuje się relatywnie nowe podejścia typu EventSourcing, DDD, Mikroserwis itp. Są fajne narzędzia/frameworki. Piszę się też duże rzeczy typu duże systemy ecommerce, PIM, WMS, CRM - ogólnie ecommerce PHP'em stoi i nie mówię tu o przerabianiu wordpressa na sklep tylko poważne platformy dedykowane czy oparte na Magento/Spryker (w Polsce to odpowiednio np. eObuwie (Magento) i apteka Gemini (Spryker)) i podobne. Dodatkowo wspomniane wcześniej wszystkie systemy wokół sklepu (np PimCore, Akeneo) - ogólnie wiele osób sobie z tego nie zdaje sprawy, ale taki poważny ecommerce to dość skomplikowany twór łączący wiele aplikacji, często z szyną danych etc.

Oczywiście wiem, że są większe systemy pisane w Javei/C#, ale w wyobrażeniu wielu osób PHP = Wordpress, a tak na prawdę w PHP również uprawia się programowanie. Inna sprawa, że ogromna część rynku to właśnie to grzebanie w WP i podobnych systemach, ale w PHP można też się pobawić w poważne programowanie (przynajmniej jeśli ktoś uważa większe aplikacje biznesowe za poważne programowanie).

Dlaczego firmy wybierają PHP? Wydaje mi się, że dlatego, że są dziedziny, gdzie cały stack jest oparty o PHP (wspomniane eCommerce) lub firma ma inne systemy w PHP. Takiej Javy też ludzie nie wybierają z sympatii tylko z powodu dużego i sprawdzonego ecosystemu.

0
ledi12 napisał(a):

To nie kwestia hejtowania php. Są po prostu bardziej opłacalne/przyszłościowe języki do nauki niż PHP.

no i co z tego? wciąż jest rynek i zapotrzebowanie na phpowców więc jesli chce to niech wskakuje do tego pociągu

1 użytkowników online, w tym zalogowanych: 0, gości: 1