Active Server Pages (ASP) - технология Microsoft для отображения динамических веб страниц. ASP поддерживают многие языки; наиболее распространенный - VBScript. PHP является альтернативой с открытой архитектурой для многих операционных систем, включая Linux и Windows. Я думаю, что ASP - хорошая и полезная технология,но в конечном счете я верю, что PHP докажет свое превосходство -- как технически,так и по популярности. Вот семь причин, почему я так считаю:
1. Скорость Скорость Скорость.
После первого запуска РНР скрипта, я сказал себе "это просто Феррари, настолько быстрый." Я использовал медленный компьютер с процессором 166 Mhz , поэтому у вас будет возможность работать и на самых древних машинах.
ASP возможно никогда не будет так же быстр, как PHP. ASP построен на базе COM архитектуры. Когда программист на ASP использует VBScript, он запускает COM объект. Когда он пишет приложению-клиенту, он вызывает метод Write COM-объекта Response. При доступе в базу данных, он использует другой COM-объект. Для доступа в файловую систему, вызыватся другой COM-объект. Вся эта COM-нагрузка добавляется и замедляет работу.
В модулях PHP, все запускается в области памяти PHP. Это означает, что код PHP будет исполняться быстрее, так как нет издержек на связь с различными COM-объектами в различных процессах.
Следующий тест производительности, где 40 раз исполняется оператор Select на Microsoft SQL Server 7 , с использованием расширения MSSQL7, ODBC-расширения дя РНР и COM, покажет то, что я имею ввиду:
PHP обращается к MSSQL7 (чем меньше значение, тем лучше)
MSSQL - расширение РНР 01.88 сек.
ODBC - расширение РНР 09.54 сек.
ODBC через COM (ADO) 17.28 сек.
OLEDB через COM 06.19 сек.
При обращении к базе ODBC-расширения РНР, время запроса составило 9.54 секунд. Используя COM интерфейс для соединения с ODBC появляются издержки в 80% (17.28 сек).
OLEDB - самая высокоскоростная СОМ-технология Microsoft для доступа в базы данных. Она быстрее ODBC, однако при использовании расширения PHP для MSSQL мы имеем 200% прирост производительности. Поэтому просто скажите программисту на ASP: Никаких COM, даешь скорость.
Конечно есть некий риск того, что крушение модуля PHP может подействовать на многие страницы вебсайта. Однако надо помнить, что высокоскоростной движок Zend только начал развиваться.
И вот здесь то проявляются преимущества модели открытой архитектуры(Прим.переводчика - доступность исходного кода программ ). Постоянная экспертная оценка программы и всемирная аудитория тестеров позволяет команде разработчиков PHP создать движок PHP промышленного стандарта , намного быстрее, чем любая компания с закрытым исходным кодом.
2. Превосходная работа с памятью.
В модели ASP(в IIS 4), если ASP-файл header.asp включен в 20 страниц, тогда в памяти содержатся 20 скомпилированных копий header.asp . IIS 5 применяет улучшенную модель для работы с памятью, но только пользователи Windows 2000 перейти на эту версию из-за несовместимости с IIS 4, и Windows NT 4.0 не может работать с IIS 5.Это означает, что многие веб сервера по-прежнему будут использовать худшую модель для работы с памятью.
PHP загружает только необходимые include файлы.
3. Отсутствие скрытых издержек.
Одна из вещей, которые я ненавижу при покупке чего-либо - скрытые издержки. Вы покупаете машину и вам должны заменить двигатель. вы покупаете дом и вы должны перекрывать текущую крышу.
Так вот, покупка ASP нечто подобное. Нужно шифрование - покупайте ASPEncrypt. Нужна работа с почтой - покупайте ServerObject QMail. Нужна закачка файлов на сервер - покупайте Software Artisans SA-FileUp.
В PHP все это встроено и к тому же бесплатно.
4. Интеграция с MySQL .
Интеграция PHP с MySQL просто восхитительна. Существует множество утилит на PHP для работы с базами данных MySQL. Набор свойств наиболее полный в сравнении с другими базами данных. У нас есть очень полезные функции как например mysql_insert_id и mysql_affected_rows, недоступные для других баз данных.
ASP и PHP являются очень хорошими решениями для вебсайтов среднего уровня. Что выделяет PHP так это тесная интеграция с MySQL, которая также настроена для вебсайтов подобного уровня, где нагрузка при выборке и закачке данных важнее поддержки транзакций. Поддержка транзакций позволяет программисту синхронизировать изменение нескольких таблиц, то что совершенно не требуется для большинства вебсайтов.
Для сравнения Microsoft Access намного медленнее чем MySQL. SQL Server 7 и Oracle также быстры , но стоят намного дороже.
Добавление от 19 апреля 2001: Многие эксперты по базам данных говорят мне насколько глупо сравнивать MySQL с Oracle и другими высокопроизводительными базами. Это идет от базового непонимания принципов функционирования большинства вебсайтов. Много вебсайтов обслуживают тысячи страниц в день, но осуществляют мало изменений данных. И типичной транзакцией является разовое изменение таблицы пользователей или сообщений форума. Таким образом база данных с быстрыми SELECT и хорошими INSERT и UPDATE как в MySQL, является оптимальным решением для это среды.
5. Близость к Java/C++ стилю программирования.
Преимущества данного утверждения являются всего лишь моим мнением.
Я согласен, что вы не убедите программиста Visual Basic перейти на PHP только из-за сходства со стилем языков C или Java.
Но можно убедить любителя C++ или Java, что PHP лучше и легче для изучения, чем VBScript.
PHP также имеет неплохую поддержку для модульного программирования в классах. Использование классов по-прежнему редко в VBScript вследствие его тяжелого наследия. Родство PHP с Java и C++ обеспечивает большее количество прораммистов, постояноо использующих классы.
6. Отсутствие проблем с исправлением багов.
Вы когда-нибудь пытались попросить Microsoft исправить ошибку в ASP? Если вы не большая корпорация вроде Boeing, шансы на успех довольно малы. И если это серьезный баг, когда ничего не работает, что вы будете делать ?
В PHP, даже если у вас нет уровня знаний для исправления бага, то определенно можно найти экспертов. Серьезных ошибок PHP нет. Ваши инвестиции защищены открытой архитектурой PHP.
7. Стратегия межплатформенной миграции.
Microsoft постоянно улучшает ASP. Следующее поколение, называемое ASP+ находится сейчас в стадии предпросмотра. Вне сомнения они исправят некоторые из приведенных здесь ошибок.
Однако наверняка Microsoft постарается привязать вас к своим продуктам.
Я был программистом для Macintosh. Когда пришла Windows 95,я переключился на нее, но большнство моего кода никогда не было переведено для испльзования в Windows. Он по-прежнему лежит где-то мертвым грузом,к моему сожалению. Я бы не хотел повторения этой ситуации с моим кодом для Windows.
Есть ли у вас запасная стратегия на случай падения Microsoft? Не забывайте, что одно время Novell доминировал наравне с Microsoft в области сетевых решений. Сегодня все избавляются от Novell. То же самое может произойти с Microsoft.
Я нашел свою запасную стратегию. Это - PHP. Я по-прежнему программирую в Windows,но знаю, что моя программа на PHP будет работать на Solaris, Linux и многих других операционных системах. Моя душа спокойна.