Я всегда слышал, что PHP предназначен для средних и малых веб-сайтов, тогда как .NET и Java для корпоративных приложений. Мой вопрос о PHP. Почему PHP не является хорошим вариантом для корпоративных веб-приложений? Это потому, что если веб-приложение станет больше, то PHP будет медленнее, поскольку это интерпретируемый язык?
Я знаю, что корпоративный мир выберет .NET или J2EE из-за интеграции с их продуктами, а также из-за серверных сервисов и т. Д. Однако, если у нас есть только PHP для создания сайтов и веб-приложений, то как мы можем использовать его, чтобы хорошо работать с большие сайты?
Короче говоря, есть ли связь между производительностью PHP и размером сайта? Какие факторы делают PHP неподходящим вариантом для больших сайтов?
Ответы:
Производительность, вероятно, не является одним из факторов. Для динамического языка PHP на самом деле работает довольно хорошо; в зависимости от задачи, он может или не может побить другие технологии. Модель приложения просто слишком отличается, чтобы сравнивать ее напрямую с Java или ASP.NET. Даже если есть ощутимая разница в скорости, она невелика и, вероятно, линейна, что означает, что ее можно решить, добавив больше оборудования. Кроме того, сам язык программирования редко является узким местом - алгоритмы, доступ к базе данных, пропускная способность сети и операции ввода-вывода в целом являются обычными виновниками, если вы не пишете что-то действительно интенсивное использование процессора.
Причины использования ASP.NET или Java поверх PHP, которые более вероятны, включают:
Еще одна причина ощущаемого эффекта заключается в том, что PHP является бесплатным (как в пиве) и вездесущим - каждая дешевая компания с общим веб-хостингом имеет PHP в своем стандартном пакете, но сервер .NET или Java обойдется вам значительно дороже. Следовательно, огромная масса небольших сайтов использует PHP не потому, что это лучший инструмент для работы, а единственный под рукой.
Это не значит, что PHP не подходит для больших проектов - он просто не подходит для «корпоративного» программирования. Его сильные стороны кроются в другом месте, и если вы можете использовать их, вы можете с такой же легкостью создавать крупномасштабные приложения, как и с любой другой веб-технологией.
источник
Вы путаете трафик («малый и средний веб-сайт» обычно означает веб-сайт с небольшим или средним трафиком) со степенью сложности бизнес-логики (простой веб-сайт или корпоративное решение). Во втором случае производительность не является ключевым фактором.
Например, Facebook - это сайт с высоким трафиком, но это не корпоративное приложение. С другой стороны, существует множество интрасетей, основанных на серверах приложений Java, которые не смогут обрабатывать трафик даже веб-сайтов среднего размера.
PHP с точки зрения производительности - не лучший вариант, но и не так уж и плох. Особенно по сравнению с другими динамическими языками. Однако, опять же, сырая производительность - не самый важный фактор. Создание веб-сайтов с большим трафиком - это больше для оптимизации масштабируемости на архитектурном уровне.
Почему PHP так презирается предприятием? Есть несколько причин, во-первых, это ужасная репутация безопасности . Во-вторых, он воспринимается как язык для любителей создавать некрасивый, неуправляемый код спагетти HTML-PHP. Такое восприятие сохраняется, хотя существуют зрелые платформы MVC. Я предполагаю, что оригинальный автор PHP утверждает, что вам не нужна инфраструктура , не помогает. Тот факт, что эти невежественные любители, практически не имеющие навыков программирования, называют себя «программистами PHP», тоже не помогает. Третья причина в том, что любой опытный программист согласится, что PHP просто плохо спроектирован как язык. Вы можете ясно видеть, что это было разработано веб-мастером,
И да, на предприятии это все о системной интеграции, где PHP тоже не блестит. С достаточным усилием вы можете создавать C-модули. Существует мост PHP-Java, который довольно утомителен в использовании. Помимо этого у вас не так много. Попытки создать Boost :: PHP (интеграция с C ++) не увенчались успехом. Клоны PHP, работающие на JVM, далеки от 100% -ной совместимости с PHP (примечание: формального определения языка PHP нет, единственная ссылка - реализация по умолчанию).
источник
Не знаю, почему люди утверждают, что PHP предназначен для небольших и средних сайтов. Насколько мне известно, это не так. Я знаю несколько сайтов с поддержкой PHP, которые начинали с малого, а затем стали топ-100 сайтами в моей стране. Они по-прежнему используют PHP и не планируют ничего менять.
То, что может привести людей к такому выводу, заключается в том, что в случае Java (и, я полагаю, также и с .NET) откат приложений - это термин, часто упоминаемый в документации и литературе. Большинство серверов приложений там поддерживают некоторую форму кластеризации, которая позволяет быстро добавлять «мощность» вместе с ростом популярности. В случае PHP вы должны создать кластер самостоятельно. Вы можете сделать это разными способами, используя различные компоненты, и вам нужно немного узнать о внутренней работе PHP. Это, вероятно, заставляет людей думать, что с одним сервером PHP (и тем самым небольшим или средним веб-сайтом) тупик для PHP.
источник
Нет такого понятия, как только корпоративное веб-приложение. В корпоративном мире у вас обычно есть полная корпоративная система, где веб-часть довольно мала по сравнению со всей системой. В Интернете существует множество систем, которые выполняют пакетную обработку, обмен сообщениями в очереди, интеграцию предприятия, шлюзы и многое другое. Событие наверху может быть не только
Хотя PHP хорош для веба, он не так хорош для других типов распределенных систем. А поскольку вы делаете все эти системы на Java или .NET, вы также можете легко создавать веб-стек на той же платформе, а не на PHP.
источник
Я бы сказал, что проблемы с PHP связаны не столько с производительностью, сколько с историей уязвимостей в безопасности. Хотя это несомненно возможно написать веб-сайт любого определенного размера или сложности на PHP и при этом поддерживать безопасность, но по мере увеличения сложности поддерживать безопасность становится все труднее.
Java, с другой стороны, была разработана, по крайней мере, с некоторыми идеями о безопасности с первого дня. Хотя они не полностью соответствуют большинству текущих развертываний (изначально предполагалось, что они основаны на апплетах, а не на сервлетах), этот акцент означает, что его функции лучше подходят для создания безопасного кода. И, конечно же, он не стоит на месте - поскольку апплеты в настоящее время в основном являются мертвой проблемой, Java была переопределена, чтобы подчеркнуть роль на стороне сервера, которую она сейчас (в основном) занимает.
Так как .NET, по крайней мере, пытается конкурировать почти напрямую с Java, он предоставляет почти такие же функции и возможности в этом отношении. Вы можете поспорить (и сторонники обоих лагерей) о том, лучше ли Sun или Microsoft справляются с этой задачей лучше, но тот простой факт, что обе группы людей действительно пытаются работать над этим, дает им довольно серьезное преимущество перед PHP в этом. уважать.
источник
1) Производительность: несколько ответов здесь вводят в заблуждение по этому вопросу.
Проект Phalanger (который я успешно использовал в прошлом) позволяет вам использовать код C # в PHP и наоборот или полностью переключаться с одного на другой язык. Вам, вероятно, придется внести некоторые изменения, но, поскольку они продолжают работать над этим, оно становится все лучше и лучше.
Моя точка зрения заключается в том, что они выяснили, что средний коэффициент скорости в пользу C # составляет 2,5 (или .NET в целом, VB сделал бы то же самое, в конце концов, это MSIL).
Проверьте свои тесты с Wordpress, он привлек много разработчиков.
Сейчас мы его еще не видели, но всегда есть чувак, который скажет вам, что FaceBook написан на PHP. Неправильно. Первоначально, пока они не осознали свою ошибку и не написали HipHop, чтобы преобразовать ее в C ++.
РЕДАКТИРОВАТЬ: Очевидно, что последний блок неясен, так что я имел в виду, что FaceBook IS написан на PHP, но HipHop делает его RUN как C ++, чтобы улучшить общую скорость, ПОТОМУ ЧТО PHP медленный.
2) Безопасность: как уже было сказано, PHP имеет долгую историю проблем безопасности.
3) Время разработки: создание веб-сайта на PHP имеет тенденцию быть проще, особенно при наличии фреймворков и всех «создателей сайтов». Создание хорошего, надежного и безопасного сайта на PHP - другая история.
источник