пользователей: 30398
предметов: 12406
вопросов: 234839
Конспект-online
РЕГИСТРАЦИЯ ЭКСКУРСИЯ

I семестр:
» ИС
» ИИС
» РСПСИТ

Сравнительный анализ языков программирования для создания интернет–приложений

 

На данный момент в глобальной сети Интернет стало быстро увеличиваться количество динамических страниц. Разработчики уже не могут обойтись без того или иного интернет-приложения (например: динамическая навигация, счетчик посещений, гостевая книга, голосование и так далее). Если необходимо более сложное приложение (например, интернет-магазин), то возникает необходимость в написании большого объема  программного кода, вследствие чего встанет вопрос о выборе языка программирования, оптимального для создания данного приложения.

Существует большой выбор таких языков, среди которых существуют признанные лидеры в своих областях. К примеру, Web-страницы города Уфы включают интернет-приложения, большинство из которых написано на Perl. Изначально этот язык был создан для решения более широкого круга задач; как следствие сценарии Perl получаются громоздкие и трудночитаемые. Простота языка PHP, платформенная совместимость и открытость его кода сделали его быстро развивающимся языком программирования для создания интернет-приложений. В то же время другой язык программирования – Python, помимо всех достоинств языка PHP, в свою очередь, имеет еще и другие преимущества, в том числе богатый набор стандартных модулей  для работы с протоколами Интернет, языками структурной разметки, поддержки форматов, используемых в Интернет, с различными форматами баз данных и многие другие. Также объектно-ориентированный язык Python позволяет внести в интернет-приложения некоторые элементы искусственного интеллекта  и повысить гибкость Web-дизайна, что в корне отличает его от PHP.

Интернет-приложения  могут выполняться на стороне клиента (клиентский скрипт). В этом случае приложения будут обрабатываться средствами браузера, не обращаясь к серверу. Одним из преимуществ применения клиентских скриптов является то, что они позволяют распознавать события, вызванные действиями пользователя (ввод данных в форме, появление курсора мыши над конкретным графическим объектом и так далее). Затем, получая информацию о действиях пользователя, клиентские сценарии  могут либо вызывать другие части сценария, либо выполнять иную работу, не обращаясь снова к серверу и не требуя дополнительной информации. Это, в свою очередь, уменьшает нагрузку на сервер, экономит время пользователя, который может загрузить один раз клиентское приложение и работать с ним в режиме «off line» сколько угодно. Но это преимущество одновременно является и недостатком, так как невозможно делать запросы к базе данных, читать и записывать файлы, общаться с внешними серверами, также сильно повышается вероятность заражения компьютерными вирусами. Кроме того, применение клиентских скриптов затруднено отсутствием единого стандарта для JavaScript, а другие языки (Perl) поддерживаются браузерами лишь опционально. Также наличие обработки данных с помощью скрипта на стороне клиента не освобождает от необходимости проверок данных на стороне сервера, так как клиентские скрипты могут быть отключены или замещены самим пользователем. Задачи работы с базами данных и многие другие задачи можно реализовать сценариями серверного приложения либо совместным использованием серверных или клиентских скриптов.

Примером таких приложений являются: создание интерактивной конференции, гостевой книги, интернет-магазина, почтовой службы, счетчика посещений или просто динамической страницы. В этих приложениях пользователь посылает определенный запрос на сервер, с которого ему передается ответ. Для написания приложений, выполняемых на стороне сервера, используются либо языки, создающие CGIскрипты (внешние приложения, которые передают браузеру код HTML), либо обработчики гипертекста, конструкции которых встраиваются в HTMLстраницу (интерпретатор на сервере обрабатывает скрипты, а код HTML, находящийся вне скрипта, остается неизменным). Практически любой язык можно применить для написания CGI, тогда как обработчики гипертекста создавались именно для написания интернет-приложений, вследствие чего выявляются сильные различия в этих группах. Реально вместо CGI скриптов обычно используются модули Webсервера Apache, имитирующие функции CGI, но подключаемые к Webсерверу как разделяемые библиотеки, а не как приложения, что существенно сокращает затраты времени на отображение HTMLстраницы за счет исключения операций создания контекста процесса на Webсервере. Язык PHP реализован как модуль Webсервера, а для остальных языков необходимо использование специальных модулей интеграции. Другим способом повышения эффективности работы интерпретатора языка программирования сверхвысокого уровня является использование сервера приложений, при этом исключается необходимость повторного запуска интерпретатора и соответственно связанных с этой операцией накладных расходов при отображении каждой HTML-страницы. Интеграция с Web-сервером в этом случае осуществляется на основе использования обмена данных между Web-сервером и сервером приложений по протоколу Fast CGI (или его разновидности).

Далее будут рассмотрены лишь некоторые из языков для создания интернет-приложениий: Perl, PHP, Python и Java.

Приложения, написанные на Java, значительно больше, чем такие же на других языках. Это связано с недостаточно высоким уровнем объектно-ориентированных конструкций языка Java. Как правило, использование этого языка не оправдывает усилий и времени, затраченных на воплощение приложения, так как на программиста возлагается слишком много функций по реализации механизмов наследования, обработки исключений и т.д. Для большинства интернет-приложений достаточно средств, которые предоставляют языки Perl, PHP (объектно-ориентированные средства в них являются опциональными). Если человек достаточно хорошо знает Perl, то, скорее всего, он будет для него лучшим языком для создания динамических страниц HTML, потому что такой профессионал сможет использовать определенные рычаги и весь свой опыт. Синтаксис языка Perl прост для изучения, но стиль программирования на этом языке уникален (задача по передаче переменных методом post требует от программиста детального знания заголовков HTML, либо определенной библиотеки). Кроме того, особенности синтаксиса Perl и библиотеки языка, содержащие большое количество модулей, приводят к тому, что при использовании этого языка трудно проконтролировать возможные побочные эффекты. Для создания интернет-приложений эффективны также языки Python и PHP. Их программный код хорошо читаемый и не требуются глубокие познания в смежных областях. Perl нацелен на поддержку общих программно-ориентированных задач, например, имеет встроенную обработку регулярных выражений, сканирование файлов и генерирование отчетов. Python концентрируется на общих методологиях программирования, таких как разработка структур данных и объектно-ориентированное программирование, способствует написанию удобочитаемого (а значит легко поддерживаемого) кода, путем предоставления не чрезмерно зашифрованной нотации. Python близко подходит к Perl, но редко побеждает в его оригинальной нише приложений; однако Python имеет хорошую применимость за пределами ниши Perl. Для разработки Web приложений имеется система Python сервлетов – Webware, сервер приложений, которые позволяют соединить достоинства языка Python с возможностью инкапсулировать код скрипта непосредственно в HTMLстраницу (достоинства языка PHP) и, кроме того, повышает производительность приложения в целом. Благодаря простоте и гибкости языка Python, его можно рекомендовать пользователям (математикам, физикам, экономистам и т.д.), не являющимся программистами, но использующими вычислительную технику и программирование в своей работе. Программы на Python разрабатываются в среднем в  два-три раза быстрее, чем на языке Java и, по крайней мере, в десять раз быстрее, чем на компилируемых языках (С, С++, Pascal). Поэтому язык может представляет интерес и для профессиональных программистов, разрабатывающих приложения, не критичные к скорости выполнения. Python хорошо зарекомендовал себя при разработке программ работы с графами, генерации деревьев. Для языка Python (по сравнению с языками Perl, PHP) существенно облегчена интеграция с компилированными программами, написанными на языках C,С++, что позволяет реализовать критическую секцию в компилированном коде. Интерпретатор Python может быть непосредственно подключен к приложению, написанному на языке C,C++ как разделяемая библиотека 

Из рассмотренных языков для создания интернет-приложений наиболее эффективным является PHP, так как он обладает легко доступным синтаксисом и наиболее простым способом интегрируется с Web-сервером. Эффективным по совокупности свойств простоты, наглядности и скорости разработки является также язык Python в сочетании с сервером приложений. 


хиты: 640
рейтинг:+1
Точные науки
информатика
для добавления комментариев необходимо авторизироваться.
  Copyright © 2013-2024. All Rights Reserved. помощь