|
- John Lim, перевод: Mike J.K., 10/2001. -
Active Server Pages (ASP) - Технология M$ для отображения динамических WEB-страниц. ASP поддерживает множество языков программирования. Наиболее же часто используется VBScript.
PHP - это альтернатива ASP, разрабатываемая по модели Open Source (с Открытым исходным кодом), которая работает на множестве платформ, включая Linux и Windows.
Я полагаю, что ASP - хорошая и полезная технология, и все же PHP лучше - как технологически, так и по популярности! Ниже приведены 7 причин, почему я думаю так:
1. Скорость , Скорость и Скорость.
Когда я впервые запустил PHP скрипт, я сказал себе: "Он быстрый, как Феррари!!!". Я использовал медленный 166МГц компьютер, но Вы на более скоростной технике можете получить намного лучшие результаты.
ASP никогда не будет таким же быстрым как PHP. ASP основан на компонентной (COM) архитектуре. Когда программист использует VBScript , он запускает COM-объект. Например, для команды вывода строки он делает запрос метода вывода строки COM-объекта. Когда он обращается к базе данных, он так же формирует запрос к другому COM-объекту. Получая доступ к файловой системе, обращается к еще одному объекту. Все эти обращения к различным объектам и их загрузка в память значительно замедляют работу. Все модули PHP работают в едином адресном пространстве памяти. Поэтому PHP работает быстрее, так как нет постоянной перезагрузки объектов в память и обращений к различным процессам. Тест производительности, в ходе которого мы 40 раз выполняем оператор SELECT на MS/SQL-сервере используя MS/SQL-PHP расширение и ODBC-COM компоненту показывает существенное отставание ASP.
PHP запросы к MS/SQL7.
Секунды, чем меньше тем лучше.
Используем MS/SQL расширение - 01.88
Используем ODBC расширение - 09.54
Используем ODBC через COM (ADO) - 17.28
Используем OLEDB через COM - 06.19
Доступ к базе данных через ODBC расширения PHP потребовал 9,54 сек., а использование COM-интерфейса замедлило операцию на 80% (17,28 сек). OLEDB - это высокоскоростная COM-технология M$ доступа к базам данных. Это более быстро, чем ODBC, но по сравнению с MS/SQL расширением PHP работает на 200% медленней! Так что можно посоветовать ASP-программистам не использовать COM для большей скорости.
Конечно, есть риск, что ошибка PHP-модуля может повлиять на множество WEB-страниц. Но запомните, что мы еще только в самом начале скоростей ZEND-интерпретатора. Сегодня мы еще устраняем недостатки движка PHP-модуля. И работа эта идет в модели Открытых исходных текстов. Постоянный контроль и всемирная группа тестеров позволяет группе разработчиков PHP добиваться промышленного качества движка PHP, значительно быстрее чем это может сделать любая другая компания в мире ведущая разработку традиционным образом.
2. Преимущества в распределении памяти.
В ASP-модели (в IIS v4) если файл заголовок header.asp включает в себя 20 других WEB-страниц то 20 копий файла header.asp будут загружены в память. IIS v5 имеет лучшую модель управления памятью, однако только программисты использующие Windows 2000 могут обновить свой WEB-сервер, потому, что у M$ отсутствует обратная совместимость с более ранними системами и IISv5 не может быть установлен на NT v4.0. Это означает, что большинство серверов в интернете на платформе Windows продолжают использовать устаревший механизм распределения памяти. В этом преимущество PHP который загружает только те файлы которые требуются.
3. Нет никаких скрытых затрат связанных с PHP.
Скрытые затраты - это одна из вещей, которые я не люблю больше всего, приобретая что либо. Например, вы покупаете автомобиль, но, чтобы он ездил, должны заменить двигатель. Покупаете дом и вынуждены ремонтировать крышу. Приобретая ASP, Вы сталкиваетесь с чем то подобным. Необходимо шифрование - приобретай ASPEncrypt. Необходимо управление почтовой системой - покупай ServerObject's QMail. Необходимо загружать файлы - покупай Software Artisans SA-FileUp.
4. MySQL - лучшее решение для WEB.
Интеграция PHP с MySQL - просто фантастика ! PHP имеет массу инструментальных средств , чтобы управлять и поддерживать MySQL базы данных. Средства работы с MySQL из PHP реализованы самым полным образом по сравнению с другими базами. Мы имеем такие превосходные функции как mysql_insert_id или mysql_affected_rows - которых нет для других продуктов.
И ASP и PHP - хорошие решения для WEB-сайтов среднего уровня. PHP выделяет отличная интеграция с MySQL. MySQL так же разработан для баз данных среднего класса, где скорость выборок более важна, чем обеспечение работы транзакций. Поддержка работы с транзакциями позволяет синхронизировать обновления большого количества связанных между собой таблиц, что не так уж важно для работы большинства сайтов.
Когда мы сравниваем базы данных, то MS Access значительно медленнее MS/SQL сервера 7. MS/SQL Server 7 и Oracle почти одинаково быстрые, но и более дорогие решения, особенно если нет необходимости использования механизма транзакций.
Дополнение от 19 апреля 2001: Многие эксперты по базам данных сообщили мне как глупо я сравнивал MySql с Oracle и другими базами данных высшего (High End) класса! Это исходит из непонимания функционирования принципов работы большинства WEB-сайтов. Большинство WEB-сайтов обслуживают десятки тысяч посетителей в день, но выполняют очень мало операций корректировки данных. Наиболее типичная WEB-транзакция это простейшее чтение информации из одиночной таблицы. Например, проверка имени и пароля пользователя выполняется чаще чем запись сообщения в форум. Поэтому база данных с быстрым SELECT и более медленным INSERT и UPDATE - хороший выбор для этой среды.
5. Преимущество Java/C++ подобного стиля программирования.
Данное преимущество является моим личным мнением. Вы не убедите крутого программиста на Vbasic преимуществу C-подобных циклов и указателей типа ->. Но тем, кому близок C++ или Java, PHP определенно понравится больше, чем VBScript. PHP так же имеет хорошую поддержку модульности в классах. Использование своих классов в VBScript очень редко из за огромного механизма наследования. Механизм наследования, аналогичный C++ и Java, делает использование классов в PHP значительно более простым и значительно чаще используется программистами.
6. Ошибки, останавливающие работу.
Вы когда либо просили M$ зафиксировать и исправить ошибку в ASP? Если вы не огромная корпорация типа Боинг, то ваши шансы на быстрое получение обновлений с исправлением этой ошибки нулевые. А если эта ошибка заблокировала дальнейшую работу над проектом, что вы будете делать ?
В PHP, даже если вы не можете сами исправить данную ошибку, вы несомненно можете нанять эксперта который быстро и недорого выполнит эту работу. Ваши инвестиции защищены моделью разработки с Открытым исходным кодом.
7. Кроссплатформенная стратегия.
M$ постоянно совершенствуют ASP. Я не сомневаюсь, что через некоторое время большинство названных мною недостатков будет устранено. Но также я не сомневаюсь, что M$ заблокирует Вам возможность использования ваших разработок не в своих продуктах. Раньше я был Macintosh-программист. После появления Windows 95 был вынужден перейти на нее. Все мои старые разработки хранятся у меня в архивах, но, к сожалению, не могут быть использованы... Я не хочу, чтобы то же самое случилось с моим Windows - кодом!
Есть ли у вас стратегия на случай падения M$? Было время, когда Novell была таким же монополистом, как сейчас M$. Однако где теперь Novell? Не забывайте - то же может случиться и с M$. Я нашел свою резервную стратегию. Она называется PHP. Даже если сейчас я программирую на Windows , я знаю, что мои программы будут работать на Solaris, Linux и многих других операционных системах. Я душевно спокоен.
Cсылки:
Сравнение PHP с Java и Microsoft .NET.
Сравнение PHP с VB.
Сравнение PHP с Cold Fusion.
Сравнение PHP с Perl.
Оригинальная статья: http://php.weblogs.com/php_asp_7_reasons.
|