Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Диплом_Оксана.doc
Скачиваний:
45
Добавлен:
09.02.2016
Размер:
751.62 Кб
Скачать

1.4. Сравнение сред разработки

РНР и Perl.

Язык Perl оказался удобным инструментом для создания динамических web-страниц. Большое распространение Perl получил потому, что был доступен на каждом web-сервере, поскольку практически все они работали под управлением Unix и альтернативой ему являлся лишь более сложный язык Си. Perl проигрывает РНР в изяществе, притом, что РНР предлагает функциональность, аналогичную Perl при значительном меньшей избыточности и сравнительной простоте синтаксиса. Избыточность языка Perlсвязана с тем, что он разрабатывался для самых разнообразных приложений, что не могло не сказаться на его синтаксисе, в то время как РНР изначально разрабатывался для интернета. По мнению очень многих пользователей, не знавших изначально не РНР, ни Perl, выучить РНР намного проще, (см.Таблица 1) [44]

Таблица 1. Таблица сравнений РНР и PERL

PHP

PERL

1) чтение файла /dev/urandom файл открывается один раз, чтение происходит в цикле блоками размером по 1024 байта

0.6 Mb/sec

4 Mb/sec

2) вывод статичного текста вцикле блоками по 1 Kb

9 Mb/sec

9 Mb/sec

3) вывод информации из БД; один запрос, возвращающий большое количество результатов по 200-300 байт каждый; вывод результатов в цикле.

1.5 Mb/sec

0.06 Mb/sec

4) чтение мелких файлов (открытие файла размером примерно в 1 Kb, чтение и вывод его содержимого, закрытие) в цикле

2.5 Mb/sec

2.7 Mb/sec

5) чтение содержимого большого файла. Открытие его один раз, и чтение вывод в цикле.

4 Mb/sec

7 Mb/sec

6) выполнение запросов к БД в цикле, выполняется в цикле запрос к БД, который возвращает 1 результат размером примерно 1 Kb и вывод его.

1.14 Mb/sec

0.7 Mb/sec

PHP и Java.

Различают язык Java и технологию Java. Язык Java представляет собой Си-подобный язык, который разрабатывался как «улучшенный C++». Технология Java включает в себя клиентскую и серверную часть, а также доступ к базам данных, по этому наиболее корректно проводить сравнение технологии Java со связкой Apache - РНР - Mysql. Технология Java Разрабатывалась как меж платформенная технология, позволяющая создавать web-приложения корпоративного масштаба. Основными достоинствами этой технологии являются межплатформенная переносимость и объектно-ориентированный язык, что позволяет создавать сложные и обменные приложения, к числу недостатков можно отнести медленное выполнение, потребление большого количество памяти и сложность разработки web-приложений по сравнению с ЩР. Между тем РНР почти не уступает Java в гибкости и масштабируемости созданных приложений. Кроме того использование Java для разработки достаточно простых приложений вряд ли оправданно, а при работе над серьезными задачами Java обходится дороже.

PНР и ASP.NET. [44]

Основное достоинство ASP.NET заключается в возможности применения всей мощи интерфейса Windows для разработки web-приложения. Это позволяет разрабатывать страницы со сложным интерфейсом, не заботясь о сохранении, шифровании и передачи переменных, используемых на динамических страницах. ASP.NET тесно интегрирован в новую технологию NET компании Microsoft. Главною особенностью разработки web-приложений при помощи ASP.NET является возможность использовать любой язык программирования среды исполнения NET. Это может быть как модифицированный вариант Visual Basic - Visual Basic.NET, так и новый язык С# или клон Java - J#. Более того, в рамках одного web-приложения могут быть реализованы несколько языков программирования. Все это позволяет объединять в рамках, одного проекта программистов, владеющих разными языками программирования. Код web-приложения на ASP.NET компилируется промежуточный язык MSIL (Microsoft Intermediate Language), иногда просто называемый IL. Аппаратно-независимый код на языке IL помещается в кэш web-сервера, для повышения производительности, по аналогии с байт кодом Java. Но в отличии от технологий Java, обеспечивающий платформенную независимость, NET обеспечивает независимость от языка разработки. Выполнение web-приложений ASP.NET на серверах, работающих не под Windows, практически не возможна. Более того, если web-приложение интенсивно использует компоненты NET, просмотр динамической страницы будет возможен только под Windows и только с помощью браузера Internet Explorer. По этому в смысле переносимости РНР, безусловно, отличается от ASP.NET в лучшую сторону. Другой не маловажный довод в пользу РНР заключается в быстром исправлении обнаруженных ошибок. Таким образом при выборе между ASP.NET и РНР следует исходить из стоящей перед Вами задачей если в сети Internet крупной корпораций большинство серверов и клиентских машин работают, под управлением Windows, применение ASP.NET более ем оправданно, в то же время для разработки web-сайта, размещаемого в интернете, целесообразней использовать РНР. (см. Таблица 2)

Таблица 2. Таблица сравнений языков РНР и ASP.NET

РНР 4

РНР 5

ASP.NET

Цена

бесплатно

бесплатно

бесплатно

Цена платформы

бесплатно

бесплатно

$$

Скорость

высокая

высокая

низкая

Эффективность

высокая

высокая

низкая

Безопасность

высокая

высокая

высокая

Платформа (стабильность)

стабильная

стабильная

нестабильная (за счет IIS)

Платформа для работы

любая

любая

Win32 (только на IIS)

Доступность исходников

да

да

нет

Обработка исключений

нет

да

да

Поддержка ООП

слабо

хорошо

хорошо

РНР и ColdFusion[44]

Пакет ColdFusion разработан фирмой Allaire и предназначен для быстрой разработки как интерактивных, так и динамических web-документов путем обработки информации, полученной из базы данных, минусом ColdFusion является достаточно низкая переносимость. РНР работает практически на всех платформах, a ColdFusion - только на четырех: Win32, Solaris, HP/UX и Linux. Кроме того, ColdFusion, также как и ASP, является коммерческой разработкой. ColdFusion достаточно мало распространен. По сравнению с РНР он более требователен к ресурсам. Плюсом ColdFusion является хорошая интегрированная среда разработки и, как следствие, более простые, чал в РНР языковые конструкции и более быстрое написание кода. Правда из-за такой высокоуровневости языка некоторые задачи на нем решаются сложнее. [44]

Таблица 3. Сравнение языков программирования

Возможность

Языки

Java

Perl

PHP

Императивный

+

+

+

Объектно-ориентированный

+

+

+

Функциональный

-

+

+/-

Рефлексивный

-/+

+/-

+

Обобщенное программирование

+

+

+

Логический

-

-

-

Декларативный

-

-/+

+

Распределенный

-

-

-

Таблица 4. Условные обозначения

Условные обозначения

+

Указанная возможность присутствует

-

Указанная возможность отсутствует

+/-

Возможность поддерживается не полностью

-/+

Возможность поддерживается очень ограниченно

?

Нет данных

X

Постановка вопроса не применима к языку