Czy php jest taki zły?

0

Od początku mojej przygody z php słyszę głosy od co poniektórych osób, że be, że python lepiej, że ruby, że js, bo php niedopracowany. Od przeciętnego programisty wspomnianych języków odczuwam przeważnie poczucie wyższości wyrażone erudycyjnym, diabelsko chytrym błyskiem w oku, jak odpowiadam, w czym kodzę. Jako że się zatem jeszcze nie znam, mógłby mnie ktoś oświecić, dlaczego ten php taki zły, i skoro tak, dlaczego jest nadal aż tak popularny na rynku?

3

najważniejsze to nauczyć się wyciągać własne wnioski, a zdanie innych traktować z przymrużeniem oka, czy warto budować poczucie własnej wartości językiem w którym się programuje?
raczej ludzie słabi czerpią siłę z krytykowania, czy wyśmiewania innych, szkoda czasu na frustratów

1

Pamiętaj że to nie język świadczy o programiście, tylko jakość kodu który ów człowiek tworzy. Kiepski kod można pisać w phpie/javie/c#/czymkolwiek. Poza tym, fajnym uczuciem jest jak robisz review kodu dla javowca i wytykasz mu jakieś błędy logiczne lub proponujesz inne/lepsze konstrukcje.

A to że w javie masz jakieś feature'y których nie ma w phpie... no cóż.... pozostaje nam czekać.
Btw na php'a narzekają też często ludzie którzy żyją w przeświadczeniu, że php to tylko i wyłącznie spaghetti code pisany przez janusz-dev'ów.

0

Cóż, nie programowałem w PHP (i nie zamierzam :D ) więc co do tych wszystkich jakości kodu nie będę się wypowiadał. ale dla mnie to jest język słaby na pewno pod 1 względem -> służy tylko do pisania backendu i nie ma za bardzo innych zastosowań.

6

Wpisz sobie PHP sadness i na deser fractal of bad design php.

Oczywiście w PHP można pisać dobry i czytelny kod, ale ponieważ jest bardzo mały próg wejścia to i jest dużo naprawdę słabej jakości kodu.

Osobiście mimo że programuje jeszcze w PHP to odradzam, chyba że chcesz na gwałt znaleźć pracę w programowaniu, a później zmieniać technologie to wtedy jest to uzasadniony wybór.

Gdybym ja zaczynał jeszcze raz to pewnie by padło na pythona albo c#/jave

2
darkrat napisał(a):

mógłby mnie ktoś oświecić, dlaczego ten php taki zły [...]?

Wydaje mi się, że nie ma sensu takie oświecanie - jak sam nie będziesz mieć porównania z innymi językami to argumenty za bardzo do Ciebie nie przemówią. Polecam po prostu popisać trochę w innych technologiach i pewnie sam się dołączysz do "hejterów" pehapa ;)

0

Od początku mojej przygody z php słyszę głosy od co poniektórych osób, że be, że python lepiej, że ruby, że js, bo php niedopracowany.

PHP jest strasznie niespójny. Popisz sobie w Pythonie i popisz sobie w PHP a zobaczysz różnicę między językiem zaprojektowanym wg jakiejś myśli a językiem, którego twórcy dodawali po prostu randomowo rzeczy z różnych innych języków, bez zbędnego pomyślunku.

że js,

JS akurat ma w sobie pewne wady PHPa (np. słabe typowanie z nieintuicyjnym dla nowicjuszy automatycznym konwertowaniem typów), jednak wydaje mi się, że mimo wad JSa, bardziej sobie poradził i w lepszą stronę ogólnie poszedł w swoim rozwoju niż PHP. JS teraz wg mnie jest super językiem (chociaż mam syndrom Sztokholmski - PHPowcy to samo w końcu mówią zawsze o PHP, że też wg nich ich język jest super).

0

PHP ma swoją niszę, jest tani i do pewnego momentu łatwy i nie sprawiający problemu (+FW i CMSy), jest też sporo kodu, tutków w sieci, myślę, że dla małych/średnich firm wystarczy, tylko tyle i aż tyle, tortu starczy dla wszystkich więc w czym problem ;)

0

Podczepie sie do tematu.
Znacie jakies altrenatywy dla php?

0

Ruby on Rails, Django, Node, Elixir.

0

Ja mogę polecić Spring MVC bo w nim pisałem i mi się podoba.

0

Java jest dość trudna i 10 razy więcej nauki w porównaniu do takiego PHP. No chyba że kopiujesz tylko kody.

0

Java jest dość trudna i 10 razy więcej nauki w porównaniu do takiego PHP. No chyba że kopiujesz tylko kody.

Czemu niby? Nauka javy+spring to mniej więcej tyle co PHP+framework.

0

Dzięki za odpowiedzi, nie spodziewałem się aż takiej dyskusji. Co do mnie natomiast, wrażenia są takie: lepiej programuje mi się w php niż w C++ (do tej pory najwięcej czasu), także lepiej niż w Javie. Język wydaje się całkiem łatwy, niedługo przejdę na Laravela i nastawiam się, że będzie to przyjemność. Poziom mojej wiedzy: w sam raz na staż. Co do przesiadki na inne języki: być może za jakiś czas, chcę póki co posiedzieć w tym, zależy mi, żeby ruszyć na sam początek.

0

scibi czyli framework Javy Spring pozwala na tworzenie tego co RoR tak?

1

Nie jest zly.
A biznes czesto lubi taki stack bo im sie oplaca to.

0

Myślę, że ryzyko że utrzymując jakiś projekt trafimy na bardzo zły kod w PHP jest większe jak w Ruby czy Pythonie, kod na ogół jest zły, ale tutaj PHP się wyróżnia. Same narzędzia mi się podobają, wolę NPM od Composera, ale daje rade, spodobał mi się Laravel i Symfony 3.

0

W frmie której pracuje chłopaki pisza zajebisty kod php. Przeróżne wzorce z głową, mocny Core review. PHP 7 + laravel. Mimo ze nie wygląda super odrzucam bycie programista PHP ze względu na horyzonty i gorszy Ekosystem od takiego c#.

Dlatego powoli przebranzawiam się w stronę c# i node.js (bo jestem teraz frontem) mimo to, dzięki firmie w której jestem php dla mnie jest ok.

1

PHP sam w sobie nie jest zły. Krążą o nim złe opinie, ponieważ:

  • ma niski próg wejścia, więc sporo osób się go uczy na początku i potem pisze nienajlepszy kod, ponieważ brakuje im ogólnego gruntu programistycznego i technicznego
  • sporo projektów w tym języku jest źle napisanych i trudnych w utrzymaniu oraz rozwoju
  • ma gorszy tooling i ekosystem, niż inne języki, jak np. Java
  • jest dynamicznie typowany, co często może być przyczyną różnych błędów
  • jest to język interpretowany, a nie kompilowany, co narzuca pewne ograniczenia
  • sporo dobrych programistów, którzy mieli przygodę z PHP przesiada się na inne języki ze względu na powyższe punkty, szersze horyzonty oraz lepsze zarobki

Nie zmienia to jednak faktu, że są aplikacje porządnie napisane w PHP i są też dobrzy programiści, którzy używają tego języka na co dzień.

1

PHP sam w sobie nie jest zły.

Tsa :D

http://phpsadness.com/, już zresztą przywołane w tym wątku.

3
  • Jasne że każdym języku można pisać dobry oraz zły kod.
  • Jasne że dobry programista postara się napisać dobry kod, a slaby programista słabszy, nieważne w jakim języku by nie pisał.
  • Jasne że jedne języki maja takie wady i zalety, a inne języki inne.

Takie argumenty nic nie znaczą.

Dobry drwal potrafi ściąć drzewo i ręczną piłką i piłą maszynową, czy na tej podstawie możemy wnioskować że piłka ręczna jest lepsza/równa od piły maszynowej *bo dobry drwal potrafi ściąć drzewo nimi tak samo? *Oczywiście nie. Potrzebujemy do tego innych argumentów.

Niemniej:

  • Nie widziałem jeszcze języka który miałby taką ogromną masę nieścisłości (ładnie pokazuje to, przytoczony już Fractal of bad design).
  • php to taki trochę frankenstein, i widać w nim dużą inspirację bashem, powershelem, c/c++ oraz javą (każdy kto pisał w którymkolwiek z tych języków, pisząc w php zaraz dostrzeże duże podobieństwo php do nich :D)
  • I to co mnie osobiście najbardziej irytuje: dziwne, rzadkie rzeczy w php da się robić łatwo (np jeden znak), a normalne, zwykłe rzeczy trudno (kilka słów lub cała linijka).
  • Nie wspominając o wszech-panującym proceduralno-obiektowym stylu
  • Oraz o tym że php bardzo stara się machnąć na wszystko czarodziejską różdżką, magicznie sanitazując dla programisty wszystko co się da (niestety ze skutkiem na ogół odwrotnym od zamierzonego).

Jedyne dwa dobre konstrukty z php które jestem w stanie wymyślić:

  • global do definiowania kiedy chcemy użyć zmiennych globalnych (pomijając że zmienne globalne to też słaby pomysł).
  • Rożny operator konkatenacji . i dodawania + (ale to chyba nie przez "good practise", tylko przez to że php miał być automagiczny żeby się dało robić '9' + '1' = 10, mimo że to stringi).
1

Dobry programista potrafi dobrać odpowiednie narzędzia do powierzonego zadania. PHP obecnie coraz rzadziej spełnia te wymagania, gdyż:

  • "dużo taniego hostingu" - obecnie mając rozwiązania w chmurze jak Heroku, AWS, GCE, Azure, a nawet Arubę, to już nie jest poprawny argument.
  • "dużo tanich programistów" - dobrzy programiści PHP nie są tani, a przy dużej popularności RoRa wygenerowała się straszna ilość programistów tegoż, więc ilość "mniej dobrych" też nie jest tutaj argumentem
  • "wujek mi powiedział" - to nigdy nie był dobry argument

Natomiast PHP ma sporo problemów:

  • Ze względu na konstrukcję języka budowanie programów współbieżnych nie należy do najłatwiejszych, oczywiście w Rubym czy w Pythonie nie jest to super łatwe (jakby gdziekolwiek było), ale IMHO zdecydowanie łatwiejsze niż w PHP.
  • Słabe typowanie, które potrafi czasem mocno zaskoczyć. Oczywiście argument często jest "obalany" przez "wszystko jest w dokumentacji", ale czytanie dokumentacji spowalnia. Jeśli programista może "naturalnie wiedzieć" co się dzieje, to lepiej by tak było, w PHP nie zawsze masz ten komfort.
  • "Dziwności" w bibliotece standardowej. W tej sprawie polecam jutro odpalić kod https://3v4l.org/pdGGL
  • Słabo się skaluje, AFAIK wciąż jednym z "najlepszych" rozwiązań by użyć PHP w swoim projekcie jest bodajże FCGI. Odpalenie wielu procesów nie jest trywialne, a jeśli to jest obecny "state of art" przy odpalaniu procesów w PHP, to nie jest najlepiej.

PHP nie był pomyślany jako język do tworzenia aplikacji webowych, a jako język szablonów. Z czasem ludzie chcieli coraz więcej i więcej, i tak powstało to "coś" czym jest teraz.

Oczywiście są momenty, gdzie PHP jest (w miarę) dobrym wyborem:

  • Dziedziczymy kod, którego przepisanie jest nieopłacalne (vide FB), wtedy zostaje nam płacz i rozwijanie tego co mamy, lub płacz i piszemy własną implementację (vide FB)
  • Sami jesteśmy wymiataczami i mamy team wymiataczy za nami, wtedy zapewne strata związana z nauką nowej technologii była by większa niż potencjalne zyski
0
hauleth napisał(a):

a przy dużej popularności RoRa

patrząc na dział praca i wpisując RoR mamy niecałe dwie strony, wpisując PHP jest 25...

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