Zawsze słyszę, że PHP jest dla średnich i małych stron internetowych, podczas gdy .NET i Java dla aplikacji korporacyjnych. Moje pytanie dotyczy PHP. Dlaczego PHP nie jest dobrą opcją dla aplikacji internetowych dla przedsiębiorstw? Czy dlatego, że jeśli aplikacja internetowa stanie się większa, to PHP będzie wolniejsze, ponieważ jest językiem interpretowanym?
Wiem, że świat korporacyjny wybierze platformę .NET lub J2EE ze względu na integrację ze swoimi produktami oraz usługi back-end itp. Jeśli jednak mamy PHP do budowania witryn i aplikacji internetowych, to w jaki sposób możemy go wykorzystać, aby dobrze działać z duże witryny?
Krótko mówiąc, czy istnieje związek między wydajnością PHP a rozmiarem strony internetowej? Jakie czynniki sprawiają, że PHP nie jest odpowiednią opcją dla dużych witryn?
Odpowiedzi:
Wydajność prawdopodobnie nie jest jednym z czynników. W przypadku języka dynamicznego PHP faktycznie działa całkiem dobrze; w zależności od zadania może, ale nie musi, pokonać innych technologii. Model aplikacji jest po prostu zbyt inny, aby porównać go bezpośrednio z Javą lub ASP.NET. Nawet jeśli istnieje mierzalna różnica prędkości, nie jest duża i prawdopodobnie jest liniowa, co oznacza, że można ją rozwiązać, rzucając w nią większą ilością sprzętu. Ponadto sam język programowania rzadko stanowi wąskie gardło - algorytmy, dostęp do bazy danych, przepustowość sieci i ogólnie we / wy są zwykle sprawcami, chyba że piszesz coś naprawdę wymagającego procesora.
Powody używania ASP.NET lub Java nad PHP, które są bardziej prawdopodobne, obejmują:
Innym powodem postrzeganego efektu jest to, że PHP jest darmowe (jak w piwie) i wszechobecne - każda tania współdzielona firma hostingowa ma PHP w swoim standardowym pakiecie, ale serwer .NET lub Java będzie cię znacznie kosztował. W związku z tym ogromna liczba małych witryn korzysta z PHP, nie dlatego, że jest to najlepsze narzędzie do pracy, ale jedyne pod ręką.
Nie oznacza to, że PHP nie nadaje się do dużych projektów - po prostu nie idzie dobrze z programowaniem „przedsiębiorczym”. Jego mocne strony leżą gdzie indziej, a jeśli możesz je wykorzystać, możesz równie łatwo budować aplikacje na dużą skalę, jak możesz przy użyciu dowolnej innej technologii internetowej.
źródło
Mylisz ruch („mała i średnia strona internetowa” zwykle oznacza stronę internetową o małym lub średnim ruchu), ze stopniem komplikacji logiki biznesowej (prosta strona internetowa a rozwiązanie dla przedsiębiorstw). W drugim przypadku wydajność nie jest kluczowym czynnikiem.
Na przykład Facebook to witryna o dużym ruchu, ale nie jest to aplikacja dla przedsiębiorstw. Z drugiej strony istnieje mnóstwo intranetów opartych na serwerach aplikacji Java, które nie byłyby w stanie obsłużyć ruchu nawet średniej wielkości witryny.
PHP pod względem wydajności nie jest najlepszą opcją, ale też nie jest tak źle. Szczególnie w porównaniu z innymi dynamicznymi językami. Jednak znowu surowa wydajność nie jest najważniejszym czynnikiem. Tworzenie witryn o dużym ruchu polega bardziej na optymalizacji pod kątem skalowalności na poziomie architektonicznym.
Dlaczego PHP jest tak znienawidzone przez przedsiębiorstwa? Jest kilka przyczyn, po pierwsze byłaby to okropna reputacja bezpieczeństwa . Po drugie, jest postrzegany jako język dla amatorów tworzących brzydki, niemożliwy do zarządzania kod spaghetti HTML-PHP. Ta percepcja utrzymuje się, mimo że istnieją dojrzałe frameworki MVC. Wydaje mi się, że oryginalny autor PHP twierdzi, że nie potrzebujesz frameworku , nie pomaga. Fakt, że ci nieświadomi amatorzy z niewielkimi umiejętnościami programistycznymi nazywają siebie „programistami PHP”, również nie pomagają. Po trzecie, każdy doświadczony programista zgodzi się, że PHP jest źle zaprojektowane jako język. Widać wyraźnie, że został zaprojektowany przez webmastera,
I tak, w przedsiębiorstwie chodzi o integrację systemu, w której PHP też nie świeci. Przy wystarczającym wysiłku możesz stworzyć moduły C. Istnieje most PHP-Java, który jest dość żmudny w użyciu. Poza tym nie masz wiele. Próby stworzenia Boost :: PHP (integracja z C ++) zakończyły się niepowodzeniem. Klony PHP działające na JVM są dalekie od 100% kompatybilności z PHP (na marginesie, nie ma formalnej definicji języka PHP, jedynym odniesieniem jest domyślna implementacja).
źródło
Nie mam pojęcia, dlaczego ludzie twierdzą, że PHP jest przeznaczony dla małych i średnich stron internetowych. Według mojej najlepszej wiedzy nie jest to prawdą. Wiem, że niektóre witryny wspierane przez PHP zaczęły od małych, a następnie stały się 100 najlepszymi witrynami w moim kraju. Nadal używają PHP i nie planują nic na ten temat zmieniać.
Rzeczą, która może doprowadzić ludzi do takiego wniosku, jest to, że w przypadku Javy (i chyba również w .NET) scalling aplikacji jest terminem często poruszanym w dokumentacji i literaturze. Większość serwerów aplikacji obsługuje pewne formy klastrowania, które umożliwiają szybkie dodanie „mocy” wraz ze wzrostem popularności. W przypadku PHP musisz sam zbudować klaster. Możesz to zrobić na wiele sposobów, używając różnych komponentów i musisz dowiedzieć się nieco więcej o wewnętrznych działaniach PHP. To prawdopodobnie sprawia, że ludzie myślą, że z jednym serwerem PHP (a tym samym małą lub średnią stroną internetową) jest ślepy zaułek dla PHP.
źródło
Nie ma czegoś takiego jak tylko korporacyjna aplikacja internetowa. W świecie korporacyjnym zazwyczaj masz pełny system korporacyjny, w którym część internetowa jest dość mała w porównaniu do całego systemu. W sieci znajduje się wiele systemów, które wykonują przetwarzanie wsadowe, wysyłanie wiadomości do kolejki, integrację z przedsiębiorstwem, bramy i wiele innych. Wydarzenie na górze może być nie tylko
Podczas gdy PHP jest dobre dla sieci, nie jest tak dobre dla innych typów systemów rozproszonych. A ponieważ wszystkie te systemy pracujesz w Javie lub .NET, łatwo jest również zbudować stos sieciowy na tej samej platformie, a nie w PHP.
źródło
Powiedziałbym, że problemy z PHP wynikają mniej z wydajności niż z historii luk bezpieczeństwa. Chociaż niewątpliwie możliwe jest napisanie strony internetowej o dowolnym rozmiarze lub złożoności w PHP i nadal utrzymywanie bezpieczeństwa, ponieważ złożoność wzrasta, utrzymanie bezpieczeństwa staje się coraz trudniejsze.
Z drugiej strony Java została zaprojektowana z przynajmniej kilkoma pomysłami na temat bezpieczeństwa od samego początku. Chociaż nie pasują one w pełni do większości obecnych wdrożeń (pierwotne myślenie dotyczyło przede wszystkim apletów, a nie serwletów), nacisk kładziony jest na to, że jego funkcje lepiej pasują do tworzenia bezpiecznego kodu. I oczywiście również nie stał w miejscu - ponieważ aplety są teraz w większości martwym problemem, Java została ponownie zdefiniowana w celu podkreślenia roli serwera (obecnie).
Ponieważ .NET przynajmniej próbuje konkurować prawie bezpośrednio z Javą, zapewnia w tym względzie podobne funkcje i możliwości. Możesz spierać się (i zwolennicy obu obozów) o to, czy Sun lub Microsoft wykonują lepszą pracę w tym zakresie, ale prosty fakt, że obaj mają zespoły ludzi, którzy naprawdę starają się nad tym pracować, daje im dość poważną przewagę nad PHP w tym szacunek.
źródło
1) Wydajność: w tym miejscu wprowadzono w błąd kilka odpowiedzi.
Projekt Phalanger (którego z powodzeniem używałem w przeszłości) pozwala na używanie kodu C # w PHP i odwrotnie lub całkowite przełączanie z jednego języka na inny. Prawdopodobnie będziesz musiał wprowadzić pewne zmiany, ale gdy będą nad tym pracować, będzie coraz lepiej.
Chodzi mi o to, że odkryli, że istnieje średni współczynnik prędkości 2,5 na korzyść C # (lub .NET w ogóle, VB zrobiłby to samo, na końcu jest MSIL).
Sprawdź ich testy w Wordpress, przyciągnęło to wielu programistów.
Teraz go jeszcze nie widzieliśmy, ale zawsze jest koleś, który powie ci, że FaceBook jest napisany w PHP. Źle. Tak było, dopóki nie zrozumieli swojego błędu i napisali HipHop, aby przekształcić go w C ++.
EDIT: Najwyraźniej, że ostatni blok jest jasne, więc co miałem na myśli to FaceBook JEST napisany w PHP, ale sprawia, że HipHop RUN jak C ++, aby poprawić ogólną szybkość, PONIEWAŻ PHP jest powolny.
2) Bezpieczeństwo: jak już wspomniano, PHP ma długą historię problemów bezpieczeństwa.
3) Czas programisty: Tworzenie strony internetowej w języku PHP jest zwykle łatwiejsze, szczególnie przy użyciu dostępnych frameworków i wszystkich „kreatorów stron”. Tworzenie dobrej, niezawodnej i bezpiecznej strony PHP to inna historia.
źródło