Jakie są zalety PHP? [Zamknięte]


14

Wszyscy wiedzą, że ludzie, którzy mają uprzedzenia do niektórych języków programowania. Zwłaszcza PHP wydaje się mieć problemy z przeszłością i niektórymi innymi rzeczami (np. Luźne typy) i jest często nazywane niepoważnym językiem programowania, którego nie należy używać w profesjonalnych aplikacjach.

W tym szczególnym przypadku PHP: Jak argumentujesz, używając PHP jako wybranego języka programowania dla aplikacji internetowych? Jakie są korzyści, gdzie PHP jest lepsze niż ColdFusion, Java itp.?


5
PHP to regionalne, minimalnie inwazyjne podejście do leczenia raka, które jest obecnie poddawane testom klinicznym fazy II i fazy III. PHP może również pomóc lepiej zrozumieć kolizje skrótów. Organizatorzy projektu PHP pomagają również różnym organom ścigania w zwalczaniu prywatnych i komercyjnych przestępstw związanych z masową wysyłką i ogólną pracą w celu zmniejszenia ilości spamu wysyłanego i odbieranego w Internecie. PHP oferuje grupy wsparcia w kilkudziesięciu lokalizacjach w Massachusetts. PHP jest rodzajem programu stosowanego w leczeniu chorób psychicznych i uzależnień. PHP znajduje się w warstwie 3 MPLS VPN (RFC2547).
Job

Każdy język ma swoich hejterów / wielbicieli. Nie powiedziałbym, że PHP jest szczególnie znienawidzony w porównaniu do innych języków. Infct Powiedziałbym, że im bardziej podziwia się język, tym więcej ma hejterów. Jestem pewien, że moglibyśmy skodyfikować: (admirers lang X/haters lang X) = AcmeConstant . AgeFactor(Lang X Age). Gdzie AcmeContant pozostaje niezmieniony dla wszystkich języków <(;-)
Martin York,

1
Używam php, aby pokazać ludziom, jak nie projektować języków.
dan_waterworth

Odpowiedzi:


13

Josh K wskazał kilka całkiem dobrych punktów , więc nie powtórzę tego. Zamiast tego dodam trochę więcej.

To jest interpretowane.

Wystarczy FTP / SSH na swoim koncie, zmiana rzeczy musi zostać zmieniona i presto! Nie ma potrzeby kompilowania, wdrażania, restartowania serwera.

Oczywiście jest to coś, co jest atrakcyjne dla osób pracujących w nieformalnym środowisku programistycznym, bez kontroli wersji, automatycznych testów, automatycznych kompilacji itp.

To jest w rzeczywistości łatwe

Poważnie. Przynajmniej dla prawdziwego początkującego jest to naprawdę łatwe. Tak łatwo, że kiedy mój kuzyn wyraził zainteresowanie nauką programowania, kupiłem mu książkę do Pythona. Konwencje PHP mogą nauczyć cię złych nawyków.

Jest w stanie

Mam dożywotnią, wspólną feudę z językami C / C ++. Jakoś się nie lubimy. Będąc na uniwersytecie, kiedy musiałem wykonywać projekty obejmujące obliczenia, wybrałem PHP zamiast C ++ i w każdym przypadku mogłem osiągnąć to, co zamierzałem. Być może wykonanie programu było w rzeczywistości wolniejsze niż w C ++, ale w tym przypadku nie miało to znaczenia.

W każdym razie: sieci neuronowe, algorytmy genetyczne, logika rozmyta ... Zrobiłem to wszystko na PHP. Tak ... ludzie mówili mi, że jestem dziwny.


+1 za interpretację i umiejętność. Jedną z rzeczy, które zawsze przeszkadzały mi w pracy z Javą w sieci, jest ciągła potrzeba ponownej kompilacji i wdrażania. Używanie czegoś takiego jak Grails łagodzi to, ale nie jest tak dobre jak PHP.
Josh K

Zinterpretowany i zdolny to naprawdę dobry argument. +1 Wszystkie odpowiedzi były dobre i zawierały kilka dobrych argumentów, ale twoje podsumowanie całkiem nieźle.
acme

Wystarczy spojrzeć na ten kod dotyczący radzenia sobie z 64- bitowymi liczbami całkowitymi: mysqlperformanceblog.com/2007/03/27/... Naprawdę nazywasz to łatwym?
ThomasX,

Nie ja nie. Pamiętaj, że napisałem: „Przynajmniej dla prawdziwego początkującego jest to naprawdę łatwe”. Prawdziwi początkujący zwykle nie muszą przejmować się przenośnością między platformami (jeśli to dobra rzecz - to całkiem inne pytanie). Porada ogólna: jeśli spodziewasz się, że będziesz mieć do czynienia z dużymi liczbami całkowitymi w PHP, użyj rozszerzenia BCMath (i tak, wiem, że nie jest to najlepsze rozwiązanie, jakie może istnieć ... ale taki jest PHP;))
Mchl

17

Jest to coś, na co nie wszyscy się zgodzą, ale myślę, że kolejnym powodem, dla którego PHP jest tak popularny, jest to, że łatwo jest uzyskać darmowe konto hostingowe.

Wielu młodych studentów, którzy chcą zająć się tworzeniem stron internetowych, wybiera PHP, ponieważ konfiguracja serwera online nic nie kosztuje, więc mogą się nim bawić / uczyć za darmo.

Chociaż istnieją darmowe opcje hostingu dla innych języków (Java, Ruby, .net), są znacznie trudniejsze do zdobycia.


Koszt jest zdecydowanie głównym czynnikiem w powszechnym użyciu.
Orbling

14

Szablony

PHP ma wbudowane szablony, bez żadnych dziwnych tagów, parsowania lub narzutów. Niektóre takie, inne nie.

Przenośny

PHP można uruchomić na prawie każdym serwerze i większości platform. W rzeczywistości jest prowadzony na większości każdym serwerze. Możesz go uruchomić pod IIS, Apache, Nginx itp. Oznacza to, że masz możliwość zapisu raz - możesz go uruchomić w dowolnym miejscu. Ta przenośność ma pewne ograniczenia, w zależności od ustawień środowiska, które musisz obsługiwać. Różni się to między aplikacjami komercyjnymi a aplikacjami typu open source / szeroko rozpowszechnionymi.

Popularny

PHP ma ogromną społeczność i wciąż się rozwija. Ta społeczność jest wynikiem dużej popularności PHP. Masz bardzo aktywne listy mailingowe, fora dyskusyjne i dużą liczbę osób, które mogą odpowiedzieć na pytania podczas opracowywania.

Koszt

Sam PHP jest darmowy, a większość elementów, z którymi współpracuje po wyjęciu z pudełka (Apache, PostgreSQL, MySQL) jest darmowa. Daje to Twojemu projektowi bardzo niski próg kosztów początkowych.


Naprawdę nie powiedziałbym, że przenośność była mocną stroną PHP. Jeśli chcesz pisać przenośne PHP, musisz obejść fakt, że język można skonfigurować na wiele różnych sposobów, np. Musisz sprawdzić opcję konfiguracji dla magicznych cytatów i uruchomić, stripslashes()ponieważ niektóre mają włączoną opcję konfiguracji, a niektóre nie „t.
Jim

2
@ Jim - To jest o wiele bardziej przenośne niż większość rzeczy.
Orbling

@Orbling - Naprawdę? O jakich podobnych cechach innych języków myślisz?
Jim

1
@ Jim: Piszę kod, który oczekuje środowiska „najlepszych praktyk”. Gdybym robił projekt OS bym mandat szereg opcji / ustawień (na przykład magic_quotes_gpcokazało się ). Najlepszym sposobem poradzenia sobie z tym (jeśli trzeba) byłoby zamknięcie tych bloków przetwarzania if / else w funkcje pomocnicze, co wyeliminowałoby potrzebę wstawiania sprawdzania cudzysłowów za pomocą kodu aplikacji.
Josh K

1
@Josh - zrobiłbym to samo co ty, gdybym nadal pisał PHP w dużych ilościach, ale jeśli twój kod zależy od środowiska „najlepszych praktyk”, nie jest przenośny. Konkretnie, będzie zawierał błędy związane z uszkodzeniem danych na wielu kiepskich hostach, ponieważ fałszywe ukośniki odwrotne są dodawane do wszystkich danych dostarczanych przez użytkownika. Biorąc pod uwagę, że wszechobecność hostingu PHP jest uważana za jedną z głównych zalet korzystania z PHP, myślę, że sprawiedliwie jest brać pod uwagę wszystkie te kiepskie hosty. Opisane funkcje pomocnicze są typowym sposobem radzenia sobie z tym problemem, ale jest to obejście problemu związanego z przenośnością.
Jim

5

PHP jest wszędzie. Bez względu na to, jakim szalonym dziwnym webhostem masz, jest bardzo mało prawdopodobne, aby nie był na nim zainstalowany PHP. Oznacza to, że jeśli piszesz aplikację internetową, która musi działać na serwerach innych osób, zawsze możesz polegać na pewnym zestawie funkcji PHP (klasy PHP 4/5 i domyślne rozszerzenia) i zwiększać bazę użytkowników, jednocześnie zmniejszając wsparcie.


5

Dostępność Prawie każdy webhost obsługuje to

Szybkość rozwoju Wszystko czego potrzebujesz to edytor tekstu, nie wymaga kompilacji

Łatwa konfiguracja Nawet jeśli nie jest zainstalowana, jest łatwa w instalacji, nawet jest dostarczana z serwerami LAMP / WAMP

Dokumentacja Istnieje mnóstwo przykładów, grup wsparcia, książek itp.


1

Niektóre zalety PHP:

  • Wbudowana obsługa przesyłania plików
  • Wbudowana obsługa danych z GET, POST i COOKIES
  • Wbudowane zarządzanie sesjami
  • Szybki do napisania
  • Łatwy do mieszania kod i HTML (uwaga: jest to również postrzegane jako wada)

Teraz ma także kilka rażących wad:

  • Brak koncepcji zmiennych lokalnych ... zmienne mają zasięg globalny lub zakres działania. To będzie spalić cię w pewnym momencie, zwłaszcza jeśli używasz pętle.
  • Zmienne globalne nie są dostępne w zakresie funkcji, chyba że poprosisz o nie za pomocą globalsłowa kluczowego.
  • Środowisko programistyczne zmienia się w oparciu o php.ini. Dotyczy to zmian w zachowaniu funkcji specyficznych i wbudowany w tablicach (np $_GETi $_POSTwartości zmienia się w zależności od magic_quotes_gpcustawienia)

1
Nikt przy zdrowych zmysłach nie byłby magic_quotes_gpcwłączony. W pierwszej kolejności kwestionuję zdrowie psychiczne osoby, która dodała ten bezwartościowy wzdęcie do silnika.
Josh K

1
„Zmienne globalne nie są dostępne w zakresie funkcji, chyba że wyraźnie o to poprosisz” - tak naprawdę nie widzę, jak to jest niekorzystne. Są języki, które robią to w ten sposób, są inne, które tego nie robią.
Mchl

1
@Mchl: Większość języków tego nie robi, a jeśli o tym nie wiesz, to zdecydowanie. Z mojej głowy, TCL jest jedynym innym językiem, w którym to robię.
Władca

1
@Josh K: Główny serwer mojej poprzedniej firmy nadal go ma, ponieważ podobał mi się główny programista, a większość z niego, bazująca na starym kodzie PHP, polegała na nim. Nie ma czasu na przekodowanie setek stron internetowych. : - /
Orbling

1
@Mchl: Ada ma tendencję do przyzwyczajania się tam, gdzie niepowodzenia doprowadziłyby do śmierci, wielu śmierci. adaic.org/advantages/projects
Orbling

1

Myślę, że niektórzy ludzie nie lubią PHP, ponieważ możesz go używać tak, jak lubisz. Ponieważ każdy może z niego korzystać bardzo łatwo, na świecie dostaje się dużo gównianego kodu. Niektórzy programiści, którzy nigdy nie zajmowali się prawdziwym PHP, mogą myśleć, że to sposób pracy z PHP. A niektórzy ludzie nie lubią PHP, ponieważ lubią coś innego i boją się nowych rzeczy.

Osobiście lubię PHP, ponieważ mogę go uruchomić niemal wszędzie. Możesz uzyskać dużo pomocy w Internecie i jest to bezpłatne. Istnieje również kilka dobrych ram, takich jak Zend Framework. Ale większość ludzi nie może się do tego zbliżyć.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.