PHP nie jest złym językiem (a przynajmniej nie tak złym, jak niektórzy mogą sugerować). Miałem nauczycieli, którzy nie wiedzieli nawet, że PHP jest zorientowany obiektowo, dopóki im nie powiedziałem. Miałem klientów, którzy natychmiast nam nie ufają, gdy mówimy, że jesteśmy programistami PHP i pytają nas, czy nie używamy eleganckich języków i frameworków, takich jak Django lub RoR, czy też języków „korporacyjnych i solidnych”, takich jak Java i ASP.NET.
Facebook jest zbudowany na PHP. Istnieje wiele solidnych projektów zasilających sieć, takich jak Joomla i Drupal, które są wykorzystywane w przedsiębiorstwie i rządach. Istnieją frameworki i biblioteki, które mają jedne z najlepszych architektur, jakie widziałem we wszystkich językach (Symfony 2, Doctrine). PHP ma najlepszą dokumentację, jaką widziałem i dużą społeczność profesjonalistów.
PHP ma zaawansowane funkcje OO, takie jak odbicie, interfejsy, nie mówiąc już o tym, że PHP obsługuje teraz horyzontalne ponowne użycie natywnie i czysto poprzez cechy .
Są źli programiści i dzieciaki skryptów, które nadają PHP złą reputację, ale jednocześnie zasilają społeczność PHP, a ponieważ PHP jest tak łatwe do zrobienia, możesz często robić rzeczy w niewłaściwy sposób, oczywiście, ale po co winić język?.
A teraz sprowadzając się do rzeczywistego pytania, na które można odpowiedzieć: co byłoby dobrym, solidnym, krótkim i słodkim argumentem, aby uniknąć marszczenia się i powstrzymać uprzedzenia za jednym zamachem i bronić swojego honoru, gdy mówisz, że jesteś programistą PHP? .
(bezpłatne ciasteczko z bitą śmietaną dla osób z empirycznymi dowodami przekonania kogoś - klienta lub innego - na miejscu)
PS: Używamy Symfony , a kod kończy się piękny i łatwy w utrzymaniu
PPS: Facebook jest napisany w PHP, skompilowany do C ++ przez HipHop i wdrożony na Hadoop. Tutaj: http://arstechnica.com/business/2012/04/exclusive-a-behind-the-scenes-look-at-facebook-release-engineering/1/
źródło
Odpowiedzi:
Mam jedyną odpowiedź: wszystko jest do bani.
Możesz znaleźć mnóstwo argumentów przeciwko OOP, które są dobre (szybkie wyszukiwanie je ujawni) w porównaniu z programowaniem funkcjonalnym lub proceduralnym. Wygląda na to, że wskazuje na to, że wsparcie OO PHP go broni.
Google blank jest do bani, a znajdziesz wyniki dla czegokolwiek. Python jest do bani . Ruby jest do bani . Szyny są do bani . PHP jest do bani . Java jest do bani .
Chcesz wiedzieć, co naprawdę jest do bani? Programiści. Programiści są do dupy. Każdy dobry programista powinien być w stanie stworzyć niesamowitą aplikację, frontend i back-end, niezależnie od języka - nawet jeśli nie zna języka! (To znaczy, dobry programista powinien być w stanie skutecznie uczyć się i pracować z dowolnym językiem).
Zauważ też, że sukces aplikacji nie ma nic wspólnego z jej kodem. Słyszałem, że kod na Facebooku jest okropny, ale na Boga jest skuteczny. To samo prawdopodobnie dotyczy Wikimedia (Wikipedia jest zbudowana na PHP i jest także niezwykle popularną stroną internetową). Najważniejsze są wyniki!
PHP jest językiem, który znam osobiście najbardziej. Będę go bronił na śmierć. Pracowałem z frameworkami PHP, prostym kodem PHP, PHP, Pythonem i Ruby (a nawet Javą) do programowania. Nie mogę powiedzieć, że jedno jest szczególnie lepsze od drugiego. Najważniejsze są programiści i algorytmy. Widziałem niesamowicie dobry i całkowicie okropny kod w wielu językach (zwłaszcza PHP, ponieważ mam tak dużą ekspozycję).
Teraz twoje pytanie: zależy od tego, z kim masz do czynienia
Biznesmenów
Dbają przede wszystkim o wyniki i opłacalność. Fakt, że odnoszący sukcesy Facebook, Wikipedia i Wordpress używają PHP powinien być więcej niż wystarczający, aby przekonać ich, że jest to skuteczny język do tworzenia udanych aplikacji.
Programiści
Niech Twój kod mówi sam za siebie. Jeśli programista twierdzi, że PHP jest w jakiś sposób gorszy, pokaż mu kod PHP, który Twoim zdaniem jest skuteczny. Dowodem na budyń jest jedzenie.
źródło
success of an application has nothing to do with its code
<- Prawda. Ale kiedy ludzie mówią, że „PHP to zły język”, nie mają na myśli „aplikacji napisanych w PHP są złe”, a raczej „aplikacje napisane w PHP często nie są fajne z powodu spaghetti z kodem”. Oczywiście są świetne aplikacje napisane w PHP. Ale nie sądzę, że ta odpowiedź dotyczy znaczenia programistów, gdy nazywają PHP „złym”.PHP ma obrzydliwą historię. Teraz jest o wiele lepiej, że było to jeszcze chwilę temu, ale był czas, bardzo długi czas, w którym zachęcano do wielu złych praktyk i wzorców, których trudno było uniknąć. Istnieje cała generacja okropnego kodu PHP, który wciąż się rozwija, a do tego stopnia, że nowi programiści uczą się czytając stary kod, uczą się złych zachowań. PHP może teraz nie zasługuje na swoją reputację blackend, ale na pewno zasłużył sobie na to.
Najlepszym sposobem na obronę PHP jest staranne zdystansowanie i odróżnienie obecnego stanu wiedzy od historii, którą wszyscy znają. Można powiedzieć, że PHP nie jest okropnym językiem, ale jeśli rozmawiasz z kimś, kto jest w branży od wielu lat, jego pamięć mówi im inaczej.
Pokaż im, jak zespół PHP nauczył się na swoich błędach i zmienił język na lepszy. Dawno minęły czasy magicznych cytatów i rejestracji globali. Nie ma już globalnego paradygmatu i trybu awaryjnego oraz mysql_escape_string. Wyjaśnij im, że prawdziwi programiści PHP zawsze używają przestrzeni nazw i sparametryzowanych zapytań, unikają przestarzałych funkcji i zawsze umieszczają kod biblioteki poza katalogiem głównym dokumentu.
PHP się zmieniło, a programiści PHP się zmienili. Właśnie dlatego PHP jest dzisiaj wspaniałą platformą. Jest to również jedyna platforma, o której wiesz, że klienci będą ją wstępnie instalować. To jest ogromne.
Na marginesie odradzam cytowanie istniejących silników i struktur CMS jako dużej wygranej dla PHP. Ryzykujesz, że zwrócą uwagę na badania bezpieczeństwa Websense sprzed 4 dni, pokazujące, że 94% niedawnych infekcji stron internetowych dotyczyło witryn PHP z oprogramowaniem takim jak Joomla i Wordpress. To nie jest firma, z którą chcesz się spotkać. Zamiast podkreślić, że kod będzie sposób bardziej bezpieczny niż wszystko inne rzeczy.
źródło
PHP jest COBOL w sieci. Oba języki nie cieszą się szacunkiem, ale wiele osób zarabia na życie budując i utrzymując w nich zapisane systemy, i są one obecne w prawie każdym większym systemie komputerowym dla ich rodzimego świata ( tj. Odpowiednio w Internecie i biznesie). Oba języki są lekceważone przez praktyków innych, bardziej popularnych języków, opartych w dużej mierze na starych i przestarzałych nawykach praktykowanych przez programistów, którzy od tego czasu nauczyli się lepiej i ulepszyli swoje narzędzia.
PHP powinien mieć tyle szczęścia, że żyje życiem COBOL. COBOL istnieje dłużej niż cokolwiek innego niż FORTRAN i wkrótce nie zniknie. W codziennym użyciu jest wiele programów COBOL, które są starsze niż osoby je obsługujące. To może nie być „nowy upał”, ale zawsze będzie można zarobić pieniądze, pracując razem z nim.
źródło
Myślę, że przydatne może być zrozumienie drugiej strony medalu i rozpoznanie braków PHP. Chociaż PHP znacznie się rozwinęło, będąc językiem szablonów, wciąż istnieje wiele rzeczy, które można poprawić. W niektórych kwestiach wciąż brakuje PHP: Unicode, funkcje funkcjonalne, organizacja biblioteki standardowej
array
i tak dalej.Sugeruję, aby - w celu konstruktywnej dyskusji na temat mocnych i słabych stron PHP - dobrze byłoby uznać to wszystko. „Tak, wiem, że standardowa biblioteka PHP nie jest zbyt dobrze zorganizowana. Ale gdyby została napisana dzisiaj, mogłaby skorzystać z przestrzeni nazw i obiektowych interfejsów API”. „Tak, wiem, że domyślna tablica trochę psuje mieszając słownik i struktury tablic. Ale jeśli ktoś chce lepszych kolekcji, może skorzystać z SPL”.
Twój punkt widzenia będzie silniejszy, jeśli pokażesz, że wiesz, że argumenty innych ludzi mają jakiś powód.
źródło
Dlaczego?
Każdy, kto sprawia, że czujesz, że musisz się bronić (niezależnie od tego, czy chodzi o karierę, małżonka, nawyki związane z wydawaniem pieniędzy itp.) Marnuje swój czas. Poświęcając czas na obronę, po prostu poniżasz ludzi niewłaściwych - teraz marnujesz swój czas, jak i ich.
Odetnij tych ludzi od swojego życia - lepiej bez nich.
źródło
Nie ma krótkiej i słodkiej linijki, którą można by wypróbować, aby przekonać ludzi o wartości PHP i jej twórców, ale napisałeś bardzo przekonujący argument tuż przed tym, jak zadałeś pytanie.
źródło
Aby rozwiązać problem „PHP to zły język”, musisz dowiedzieć się, dlaczego dana osoba uważa, że jest to zły język. Może pracował nad złym projektem napisanym w PHP. Może po prostu nie lubi prefiksu ich zmiennych
$
. Może sami próbowali użyć języka i napisali niemożliwy do utrzymania bałagan. Wielu programistów pochodzących z innych języków programowania widzi PHP i widzi bałagan, ponieważ to, co ma sens w PHP, tak naprawdę nie ma sensu w innym języku lub na innych platformach. Na przykład w PHP tablice są „taśmą klejącą wszechświata” i służą do osiągnięcia niemal wszystkiego, podczas gdy w innych językach programowania takie rzeczy byłyby absurdalne.Proponuję tutaj kombinację odpowiedzi.
create_function
. Zniknęła dżunglainclude
ręcznego dzwonienia wszędzie.free
, a wszystko to „OO-ish”, ale środowisko wykonawcze jest duże, a OO może ograniczać. C ++? Pozwala tworzyć typy, które zachowują się dokładnie tak samo, jak typy pierwotne (np. Int) w języku, ale mają dużą złożoność. PHP? Sprawia, że bardzo łatwo jest zacząć bez dużej wiedzy programistycznej, ale w rezultacie w Internecie pojawiło się mnóstwo śmieci.Jest miejsce na każdy język. Wybierz język odpowiadający danemu problemowi, nie próbuj podbijać preferowanego języka w miejscach, w których nie należy.
źródło