Языки программирования

Применение языков программирования в web-разработках. Создание документа с поддержкой гипертекста с помощью HTML. Использование JavaScript для программного доступа к объектам приложений. Perl - процедурный язык программирования; псевдообъектный язык PHP.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 07.07.2013
Размер файла 260,9 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

ОГЛАВЛЕНИЕ

  • ВВЕДЕНИЕ
    • 1. HTML
    • 1.1 Структура HTML-документа
    • 1.2 Варианты DOCTYPE для HTML 4.01
    • 1.3 Варианты DOCTYPE для HTML 5
    • 2. JavaScript
    • 2.1 Предпосылки
    • 2.2 Возможности языка
    • 2.2.1 Структура языка. Ядро ECMAScript
    • 2.2 Встраивание в веб-страницы. Расположение внутри страницы
    • 2.3 Область применения Веб-приложения
    • 2.4 Браузерные операционные системы WebOS
    • 2.5 Виджеты. Элемент интерфейса
    • 2.6 Офисные приложения
    • 2.7 Библиотеки JavaScript
    • 2.8 Связь с другими языками. Взаимное влияние
    • 2.9 Безопасность
    • 3. Perl
    • 4. PHP
    • ЗАКЛЮЧЕНИЕ
      • Список литературы

ВВЕДЕНИЕ

Сайт (от англ. website: web - паутина, сеть и site - место, буквально «место, сегмент, часть в сети») - совокупность электронных документов (файлов) частного лица или организации в компьютерной сети, объединённых под одним адресом (доменным именем или IP-адресом). Все сайты в совокупности составляют Всемирную паутину, где коммуникация (паутина) объединяет сегменты информации мирового сообщества в единое целое - базу данных и коммуникации планетарного масштаба.

Для прямого доступа клиентов к сайтам на серверах был специально разработан протокол HTTP. Первый в мире сайт info.cern.ch появился в 1990 году. Его создатель, Тим Бернерс-Ли, опубликовал на нём описание новой технологии World Wide Web, основанной на протоколе передачи данных HTTP, системе адресации URI и языке гипертекстовой разметки HTML. Сайт стал и первым в мире интернет-каталогом, так как позже Тим Бернерс-Ли разместил на нём список ссылок на другие сайты.

Все инструменты, необходимые для работы первого сайта, Бернерс-Ли подготовил ещё раньше -- в конце 1990 года появились первый гипертекстовый браузер WorldWideWeb с функционалом веб-редактора, первый сервер на базе NeXTcube и первые веб-страницы.

«Отец» веба считал, что гипертекст может служить основой для сетей обмена данными, и ему удалось претворить свою идею в жизнь. Ещё в 1980 году Тим Бернер-Ли создал гипертекстовое программное обеспечение Enquire, использующее для хранения данных случайные ассоциации.

Затем, работая в Европейском центре ядерных исследований в Женеве (CERN), он предложил коллегам публиковать гипертекстовые документы, связанные между собой гиперссылками. Бернерс-Ли продемонстрировал возможность гипертекстового доступа к внутренним поисковику и документам, а также новостным ресурсам Интернета. В результате, в мае 1991 года в CERN был утверждён стандарт WWW. Тим Бернерс-Ли является «отцом» основополагающих технологий веба -- HTTP, URI/URL и HTML, хотя их теоретические основы были заложены ещё раньше. В 1940-х годах Ванневар Буш выдвинул идеи расширения памяти человека с помощью технических устройств, а также индексации накопленной человечеством информации для её быстрого поиска. Теодор Нельсон и Даг Энгельбарт предложили технологию гипертекста -- «ветвящегося» текста, предоставляющего читателю разные варианты чтения. Xanadu, так и не законченная гипертекстовая система Нельсона, была предназначена для хранения и поиска текста, в который введены взаимосвязи и «окна». Нельсон мечтал связать перекрёстными ссылками все тексты, созданные человечеством. В настоящее время Тим Бернерс-Ли возглавляет основанный им Консорциум Всемирной паутины (World Wide Web Consortium), который занимается разработкой и внедрением стандартов Интернета. Страницы сайтов -- это набор текстовых файлов, размеченных на языке HTML. Эти файлы, будучи загруженными посетителем на его компьютер, понимаются и обрабатываются браузером и выводятся на средство отображения пользователя (монитор, экран КПК, принтер или синтезатор речи).

Создание сайтов Изготовление сайтов как работающих целостных информационных ресурсов и систем -- составной процесс, вовлекающий труд различных специалистов. Этот вид деятельности называется веб-разработка. Заказанная работа может представлять собой как полный комплекс создания сайта, вплоть до придумывания названия и регистрации домена, так и расширение сайта, техническую оптимизацию и редизайн. Всё больше разработка и сопровождение сайта (портала) становится мощным сегментом активов предприятий (организаций). Особую роль выполняют «тестеры» конечного продукта. Это ответственная роль в продвижении и оценке проекта, так как стадия разработки для динамического большого проекта никогда не прекращается. Если вы видите сайт невредимым 2-3 года без изменений, то он, возможно, никому не нужен, то ли пользуется спросом на базисную информацию. Но сопровождение проекта становится не менее ответственным делом.

Веб-дизайн. Веб-дизайнеры разрабатывают макеты шаблонов страниц. Дизайнер определяет, каким образом конечный потребитель будет получать доступ к информации и услугам сайта -- то есть, занимается непосредственно разработкой пользовательского интерфейса. В большинстве случаев страницы включают в себя графические элементы. В этот момент страницы ещё не могут содержать конечного наполнения (это в обязанности дизайнера не входит). Чтобы макеты выглядели более наглядно, в них помещается произвольное содержимое. Если заказчик удовлетворён внешним видом шаблонов, то наступает следующая фаза разработки -- вёрстка страниц сайта.

Вёрстка веб-страниц Верстальщик получает макеты шаблонов в виде простых изображений (например, в формате JPEG или PNG), либо разбитых по слоям (например, в PSD или AI). Его задача -- получить из этих графических макетов гипертекстовые веб-страницы с подготовленными для интернета изображениями. Одним из сложных моментов в работе верстальщика является обеспечение совместимости со множеством браузеров -- программами для просмотра веб-страниц (так называемая кроссбраузерность). Браузеры могут одни и те же элементы разметки или правила CSS интерпретировать по-своему, в результате чего некоторые пользователи могут увидеть содержимое не так, как задумывал дизайнер и ожидает увидеть заказчик. Когда верстальщик убедится, что большинство браузеров одинаково отображают готовые шаблоны, наступает следующая фаза разработки -- веб-программирование.

Веб-программирование. К программистам поступают готовые шаблоны страниц и указания дизайнеров по работе и организации элементов сайта. Программист создаёт программную основу сайта, делая её с нуля, используя фреймворк или CMS. Выбор языка программирования в данном случае -- вопрос непринципиальный. Итак, мы рассмотрим несколько языков программирования, такие как HTML, JavaScript, Python, PHP, Perl

1. HTML

HTML (от англ. HyperText Markup Language -- «язык разметки гипертекста») -- стандартный язык разметки документов во Всемирной паутине. Большинство веб-страниц создаются при помощи языка HTML (или XHTML). Язык HTML интерпретируется браузерами и отображается в виде документа в удобной для человека форме. HTML является приложением («частным случаем») SGML (стандартного обобщённого языка разметки) и соответствует международному стандарту ISO 8879. XHTML же является приложением XML

Язык HTML был разработан британским учёным Тимом Бернерсом-Ли приблизительно в 1986--1991 годах в стенах Европейского Центра ядерных исследований в Женеве (Швейцария). HTML создавался как язык для обмена научной и технической документацией, пригодный для использования людьми, не являющимися специалистами в области вёрстки. HTML успешно справлялся с проблемой сложности SGML путём определения небольшого набора структурных и семантических элементов -- дескрипторов. Дескрипторы также часто называют «тегами». С помощью HTML можно легко создать относительно простой, но красиво оформленный документ. Помимо упрощения структуры документа, в HTML внесена поддержка гипертекста. Мультимедийные возможности были добавлены позже.

Изначально язык HTML был задуман и создан как средство структурирования и форматирования документов без их привязки к средствам воспроизведения (отображения). В идеале, текст с разметкой HTML должен был без стилистических и структурных искажений воспроизводиться на оборудовании с различной технической оснащённостью (цветной экран современного компьютера, монохромный экран органайзера, ограниченный по размерам экран мобильного телефона или устройства и программы голосового воспроизведения текстов). Однако современное применение HTML очень далеко от его изначальной задачи. Например, тег <TABLE>, несколько раз использованный для форматирования страницы, которую вы на данный момент читаете, предназначен для создания в документах самых обычных таблиц, но, как можно убедиться, здесь нет ни одной таблицы. С течением времени основная идея платформонезависимости языка HTML была принесена в жертву современным потребностям в мультимедийном и графическом оформлении. Текстовые документы, содержащие разметку на языке HTML (такие документы традиционно имеют расширение .html или .htm), обрабатываются специальными приложениями, которые отображают документ в его форматированном виде. Такие приложения, называемые «браузерами» или «интернет-обозревателями», обычно предоставляют пользователю удобный интерфейс для запроса веб-страниц, их просмотра (и вывода на иные внешние устройства) и, при необходимости, отправки введённых пользователем данных на сервер. Наиболее популярными на сегодняшний день браузерами являются Google Chrome, Mozilla Firefox, Opera, Internet Explorer и Safari .

Версии:

RFC 1866 -- HTML 2.0, одобренный как стандарт 22 сентября 1995 года;

HTML 3.2 -- 14 января 1997 года;

HTML 4.0 -- 18 декабря 1997 года;

HTML 4.01 (изменения, причём более значительные, чем кажется на первый взгляд) -- 24 декабря 1999 года;

ISO/IEC 15445:2000 (так называемый ISO HTML, основан на HTML 4.01 Strict) -- 15 мая 2000 года.

HTML 5 -- в разработке. Конец разработки запланирован на 2014 год.

Официальной спецификации HTML 1.0 не существует. До 1995 года существовало множество неофициальных стандартов HTML. Чтобы стандартная версия отличалась от них, ей сразу присвоили второй номер.

Версия 3 была предложена Консорциумом всемирной паутины (W3C) в марте 1995 года и обеспечивала много новых возможностей, таких как создание таблиц, «обтекание» изображений текстом и отображение сложных математических формул. Даже при том, что этот стандарт был совместим со второй версией, реализация его была сложна для браузеров того времени. Версия 3.1 официально никогда не предлагалась, и следующей версией стандарта HTML стала 3.2, в которой были опущены многие нововведения версии 3.0, но добавлены нестандартные элементы, поддерживаемые браузерами Netscape Navigator и Mosaic.

В версии HTML 4.0 произошла некоторая «очистка» стандарта. Многие элементы были отмечены как устаревшие и нерекомендованные (англ. deprecated). В частности, элемент font, используемый для изменения свойств шрифта, был помечен как устаревший (вместо него рекомендуется использовать таблицы стилей CSS).

В 1998 году консорциум Всемирной паутины начал работу над новым языком разметки, основанном на HTML 4, но соответствующим синтаксису XML. Впоследствии новый язык получил название XHTML. Первая версия XHTML 1.0 одобрена в качестве Рекомендации консорциума Всемирной паутины 26 января 2000 года.

Планируемая версия XHTML 2.0 должна была разорвать совместимость со старыми версиями HTML и XHTML, но 2 июля 2009 года консорциум Всемирной паутины объявил, что полномочия рабочей группы XHTML2 истекают в конце 2009 года. Таким образом, была приостановлена вся дальнейшая разработка стандарта XHTML 2.0. В настоящее время Консорциум всемирной паутины разрабатан HTML версии 5. Черновой вариант спецификации языка появился в Интернете 20 ноября 2007 года.

Сообществом WHATWG (англ. Web Hypertext Application Technology Working Group), начиная с 2004 года, разрабатывается спецификация Web Applications 1.0, часто неофициально называемая «HTML 5», которая расширяет HTML (впрочем, имея и совместимый с XHTML 1.0 XML-синтаксис) для лучшего представления семантики различных типичных страниц, например форумов, сайтов аукционов, поисковых систем, онлайн-магазинов и т. д., которые не очень удачно вписываются в модель XHTML 2.

1.1 Структура HTML-документа

HTML -- теговый язык разметки документов. Любой документ на языке HTML представляет собой набор элементов, причём начало и конец каждого элемента обозначается специальными пометками -- тегами. Элементы могут быть пустыми, то есть не содержащими никакого текста и других данных (например, тег перевода строки <br>). В этом случае обычно не указывается закрывающий тег. Кроме того, элементы могут иметь атрибуты, определяющие какие-либо их свойства (например, размер шрифта для элемента font). Атрибуты указываются в открывающем теге. Вот примеры фрагментов HTML-документа:

<strong> - Текст между двумя тегами -- открывающим и закрывающим.</strong>

<a href="http://www.example.com"> - Здесь элемент содержит атрибут href.</a>

А вот пример пустого элемента: <br>

Регистр, в котором набрано имя элемента и имена атрибутов, в HTML значения не имеет (в отличие от XHTML). Элементы могут быть вложенными. Например, следующий код:

<b>

Этот текст будет полужирным,

<i>а этот - ещё и курсивным</i>

</b>

даст такой результат:

Этот текст будет полужирным, а этот -- ещё и курсивным

Кроме элементов, в HTML-документах есть и сущности (англ. entities) -- «специальные символы». Сущности начинаются с символа амперсанда и имеют вид &имя; или &#NNNN;, где NNNN -- код символа в Юникоде в десятичной системе счисления.

Например, &copy; -- знак авторского права (©). Как правило, сущности используются для представления символов, отсутствующих в кодировке документа, или же для представления «специальных» символов: &amp; -- амперсанда (&), &lt; -- символа «меньше» (<) и &gt; -- символа «больше» (>), которые некорректно записывать «обычным» образом, из-за их особого значения в HTML.

Каждый HTML-документ, отвечающий спецификации HTML какой-либо версии, должен начинаться со строки объявления версии HTML <!DOCTYPE…>, которая обычно выглядит примерно так:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"

"http://www.w3.org/TR/html4/strict.dtd">

Если эта строка не указана, то добиться корректного отображения документа в браузере становится труднее.

Далее обозначается начало и конец документа тегами <html> и </html> соответственно. Внутри этих тегов должны находиться теги заголовка (<head></head>) и тела (<body></body>) документа.

1.2 Варианты DOCTYPE для HTML 4.01

Строгий (Strict): не содержит элементов, помеченных как «устаревшие» или «не одобряемые» (deprecated).

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"

"http://www.w3.org/TR/html4/strict.dtd">

Переходный (Transitional): содержит устаревшие теги в целях совместимости и упрощения перехода со старых версий HTML.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01

Transitional//EN"

"http://www.w3.org/TR/html4/loose.dtd">

С фреймами (Frameset): аналогичен переходному, но содержит также теги для создания наборов фреймов.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN"

"http://www.w3.org/TR/html4/frameset.dtd">

1.3 Варианты DOCTYPE для HTML 5

В HTML 5 используется только один вариант DOCTYPE:

<!DOCTYPE HTML>

Язык HTML позволяет форматировать текст, различать в нём функциональные элементы, создавать гипертекстовые ссылки (гиперссылки) и вставлять в отображаемую страницу изображения, звукозаписи и другие мультимедийные элементы. Отображение страницы можно изменить добавлением в неё таблицы стилей на языке CSS, что позволяет централизовать в определенном файле все элементы форматирования (размер и цвет заглавных букв 2-го уровня, размер и вид блока вставки и другое) или сценариев на языке JavaScript, с помощью которого имеется возможность просматривать страницы с событиями или действиями.

Страницы сайтов могут быть простым статичным набором файлов или создаваться специальной компьютерной программой на сервере. Она может быть либо сделана на заказ для отдельного сайта, либо быть готовым продуктом, рассчитанным на некоторый класс сайтов. Некоторые из них могут обеспечить владельцу сайта возможность гибкой настройки структурирования и вывода информации на веб-сайте. Такие управляющие программы называются системами управления содержимым (CMS).

2. JavaScript

JavaScript -- прототипно-ориентированный скриптовый язык программирования. Является диалектом языка ECMAScript.

JavaScript обычно используется как встраиваемый язык для программного доступа к объектам приложений. Наиболее широкое применение находит в браузерах как язык сценариев для придания интерактивности веб-страницам. Основные архитектурные черты: динамическая типизация, слабая типизация, автоматическое управление памятью, прототипное программирование, функции как объекты первого класса. На JavaScript оказали влияние многие языки, при разработке была цель сделать язык похожим на Java, но при этом лёгким для использования непрограммистами.

Языком JavaScript не владеет какая-либо компания или организация, что отличает его от ряда языков программирования, используемых в веб-разработке.

Название «JavaScript» является зарегистрированным товарным знаком компании Oracle Corporation.

2.1 Предпосылки

В 1992 году компания Nombas (впоследствии приобретённая Openwave (англ.)) начала разработку встраиваемого скриптового языка Cmm (Си-минус-минус), который, по замыслу разработчиков, должен был стать достаточно мощным, чтобы заменить макросы, сохраняя при этом схожесть с Си, чтобы разработчикам не составляло труда изучить его. Главным отличием от Си была работа с памятью. В новом языке всё управление памятью осуществлялось автоматически: не было необходимости создавать буферы, объявлять переменные, осуществлять преобразование типов. В остальном языки сильно походили друг на друга: в частности, Cmm поддерживал стандартные функции и операторы Си. Cmm был переименован в ScriptEase, поскольку исходное название звучало слишком негативно, а упоминание в нём Си «отпугивало» людей.

На основе этого языка был создан проприетарный продукт CEnvi. В конце ноября 1995 года Nombas разработала версию CEnvi, внедряемую в веб-страницы. Страницы, которые можно было изменять с помощью скриптового языка, получили название Espresso Pages -- они демонстрировали использование скриптового языка для создания игры, проверки пользовательского ввода в формы и создания анимации. Espresso Pages позиционировались как демоверсия, призванная помочь представить, что случится, если в браузер будет внедрён язык Cmm. Работали они только в 16-битовом Netscape Navigator под управлением Windows.

Брендан Айк

Перед Бренданом Айком, нанятым в компанию Netscape 4 апреля 1995 года, была поставлена задача внедрить язык программирования Scheme или что-то похожее в браузер Netscape. Поскольку требования были размыты, Айка перевели в группу, ответственную за серверные продукты, где он проработал месяц, занимаясь улучшением протокола HTTP. В мае разработчик был переброшен обратно, в команду, занимающуюся клиентской частью (браузером), где он немедленно начал разрабатывать концепцию нового языка программирования. Менеджмент разработки браузера, включая Тома Пакина (Tom Paquin), Михаэля Тоя (англ.), Рика Шелла (Rick Schell), был убеждён, что Netscape должен поддерживать язык программирования, встраиваемый в HTML-код страницы.

Марк Андрисин, Билл Джой

Помимо Брендона Айка в разработке участвовали сооснователь Netscape Communications Марк Андрисин (англ.) и со-основатель Sun Microsystems Билл Джой: чтобы успеть закончить работы над языком к релизу браузера, компании заключили соглашение о сотрудничестве в разработке. Они ставили перед собой цель обеспечить «язык для склеивания» составляющих частей веб-ресурса: изображений, плагинов, Java-апплетов, который был бы удобен для веб-дизайнеров и программистов, не обладающих высокой квалификацией.

Первоначально язык назывался LiveScript и предназначался как для программирования на стороне клиента, так и для программирования на стороне сервера (там он должен был называться LiveWire). На синтаксис оказали влияние языки Си и Java, и, поскольку Java в то время было модным словом, 4 декабря 1995 года LiveScript переименовали в JavaScript, получив соответствующую лицензию у Sun. Анонс JavaScript со стороны представителей Netscape и Sun состоялся накануне выпуска второй бета-версии Netscape Navigator. В нём декларируется, что 28 лидирующих ИТ-компаний выразили намерение использовать в своих будущих продуктах JavaScript как объектный скриптовый язык с открытым стандартом.

В 1996 году компания Microsoft выпустила аналог языка JavaScript, названный JScript. Анонсирован этот язык был 18 июля 1996 года. Первым браузером, поддерживающим эту реализацию, был Internet Explorer 3.0.

По инициативе компании Netscape была проведена стандартизация языка ассоциацией ECMA. Стандартизированная версия имеет название ECMAScript, описывается стандартом ECMA-262. Первой версии спецификации соответствовал JavaScript версии 1.1, а также языки JScript и ScriptEasy.

Популярность

В статье «The World's Most Misunderstood Programming Language Has Become the World's Most Popular Programming Language» ( (рус.) «Самый неправильно понятый язык программирования в мире стал самым популярным в мире языком программирования») Дуглас Крокфорд (англ.) утверждает, что лидирующую позицию JavaScript занял в связи с развитием AJAX, поскольку браузер стал превалирующей системой доставки приложений. Он также констатирует растущую популярность JavaScript, то, что этот язык встраивается в приложения, отмечает значимость языка.

Согласно TIOBE Index, базирующемуся на данных поисковых систем Google, MSN, Yahoo!, Википедия и YouTube, в июне 2011 года JavaScript находился на 11 месте (год назад на 12).

Позиция в различных рейтингах популярности JavaScript

Позиция

Критерий ранжирования

Краткое описание

11

Yahoo

По количеству результатов запроса с упоминанием названия языка и слова «programming»

5

Крейгслист

По количеству результатов запроса с упоминанием названия языка и «programmer -„job wanted“»

7

Powell's Books (англ.)

По количеству книг с названием языка в названии или заголовках релевантных разделов

7

Freshmeat

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

8

Google Code

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

1

Delicious

По количеству результатов поиска с упоминанием названия языка и слова «programming»

4

Ohloh

По числу участников, вносящих правки в код, написанный на данном языке программирования

5

Суммарная оценка

По данным Black Duck Software (англ.) в разработке открытого программного обеспечения доля использования JavaScript выросла. 36% проектов, релизы которых состоялись с августа 2008 по август 2009 гг., включают JavaScript, наиболее часто используемый язык программирования с быстрорастущей популярностью. 80% открытого программного обеспечения использует Си, C++, Java, Shell и JavaScript. При этом JavaScript -- единственный из этих языков, чья доля использования увеличилась (более чем на 2 процента, если считать в строках кода).

JavaScript является самым популярным языком программирования, используемым для разработки веб-приложений на стороне клиента (англ.).

2.2 Возможности языка

JavaScript обладает рядом свойств объектно-ориентированного языка, но реализованное в языке прототипирование обуславливает отличия в работе с объектами по сравнению с традиционными объектно-ориентированными языками. Кроме того, JavaScript имеет ряд свойств, присущих функциональным языкам -- функции как объекты первого класса, объекты как списки, карринг, анонимные функции, замыкания -- что придаёт языку дополнительную гибкость.

Несмотря на схожий с Си синтаксис, JavaScript по сравнению с языком Си имеет коренные отличия:

объекты, с возможностью интроспекции;

функции как объекты первого класса;

автоматическое приведение типов;

автоматическая сборка мусора;

анонимные функции.

В языке отсутствуют такие полезные вещи, как:

модульная система: JavaScript не предоставляет возможности управлять зависимостями и изоляцией областей видимости;

стандартная библиотека: в частности, отсутствует интерфейс программирования приложений по работе с файловой системой, управлению потоками ввода/вывода, базовых типов для бинарных данных;

стандартные интерфейсы к веб-серверам и базам данных;

система управления пакетами, которая бы отслеживала зависимости и автоматически устанавливала их.

Семантика и синтаксис

Синтаксис языка JavaScript во многом напоминает синтаксис Си и Java, семантически же язык гораздо ближе к Self, Smalltalk или даже Лиспу.

В JavaScript:

все идентификаторы регистрозависимы, в названиях переменных можно использовать буквы, подчёркивание, символ доллара, арабские цифры, названия переменных не могут начинаться с цифры, для оформления однострочных комментариев используются //, многострочные и внутристрочные комментарии начинаются с /* и заканчиваются */.

2.2.1 Структура языка

Структурно JavaScript можно представить в виде объединения трёх чётко различимых друг от друга частей:

ядро (ECMAScript),

объектная модель браузера (Browser Object Model или BOM (de)),

объектная модель документа (Document Object Model или DOM).

Если рассматривать JavaScript в отличных от браузера окружениях, то объектная модель браузера и объектная модель документа могут не поддерживаться.

Объектную модель документа иногда рассматривают как отдельную от JavaScript сущность, что согласуется с определением DOM как независимого от языка интерфейса документа. В противоположность этому ряд авторов находят BOM и DOM тесно взаимосвязанными.

Ядро ECMA Script

ECMAScript не является браузерным языком и в нём не определяются методы ввода и вывода информации. Это скорее основа для построения скриптовых языков. Спецификация ECMAScript описывает типы данных, инструкции, ключевые и зарезервированные слова, операторы, объекты, регулярные выражения, не ограничивая авторов производных языков в расширении их новыми составляющими.

Объектная модель браузера

Объектная модель браузера -- браузероспецифичная часть языка, являющаяся прослойкой между ядром и объектной моделью документа. Основное предназначение объектной модели браузера -- управление окнами браузера и обеспечение их взаимодействия. Каждое из окон браузера представляется объектом window, центральным объектом DOM. Объектная модель браузера на данный момент не стандартизирована, однако спецификация находится в разработке WHATWG и W3C.

Помимо управления окнами, в рамках объектной модели браузера, браузерами обычно обеспечивается поддержка следующих сущностей:

управление фреймами,

поддержка задержки в исполнении кода и зацикливания с задержкой,

системные диалоги,

управление адресом открытой страницы,

управление информацией о браузере,

управление информацией о параметрах монитора,

ограниченное управление историей просмотра страниц,

поддержка работы с HTTP cookie.

Объектная модель документа

Объектная модель документа -- интерфейс программирования приложений для HTML и XML-документов. Согласно DOM, документу можно поставить в соответствие дерево объектов, обладающих рядом свойств, которые позволяют производить с ним различные манипуляции:

получение узлов,

изменение узлов,

изменение связей между узлами,

удаление узлов.

документ гипертекст процедурный псевдообъектный

2.2.2 Встраивание в веб-страницы

Расположение внутри страницы

Для добавления JavaScript-кода на страницу, можно использовать теги <script></script>, которые рекомендуется, но не обязательно, помещать внутри контейнера <head>. Контейнеров <script> в одном документе может быть сколько угодно. Скрипт, выводящий модальное окно с классической надписью «Hello, World!» внутри браузера:

<script type="text/javascript">

alert('Hello, World!');

</script>

Расположение внутри тега

Спецификация HTML описывает набор атрибутов, используемых для задания обработчиков событий. Пример использования:

<a href="delete.php" onclick="return confirm ('Вы

уверены?');">Удалить</a>

В приведённом примере при нажатии на ссылку функция confirm('Вы уверены?'); вызывает модальное окно с надписью «Вы уверены?», а return false; блокирует переход по ссылке. Разумеется, этот код будет работать только если в браузере есть и включена поддержка JavaScript, иначе переход по ссылке произойдёт без предупреждения.

Использование кода JavaScript в контексте разметки страницы в рамках ненавязчивого JavaScript расценивается как плохая практика. Аналогом (при условии снабжения ссылки идентификатором alertLink)

<a href="delete.php" id="alertLink">Удалить</a>

приведённого примера может выступать, например, следующий фрагмент JavaScript:

window.onload = function() {

var linkWithAlert = document.getElementById("alertLink");

linkWithAlert.onclick = function() {

return confirm('Вы уверены?');

};

};

Вынесение в отдельный файл

Есть и третья возможность подключения JavaScript -- написать скрипт в отдельном файле, а потом подключить его с помощью конструкции

<script type="text/javascript"

src="http://Путь_к_файлу_со_скриптом"></script>

Атрибуты элемента script

Элемент script, широко используемый для подключения к странице JavaScript, имеет несколько атрибутов.

обязательный атрибут type для указания MIME-типа содержимого.

В запросе комментариев RFC-4329, определяющем MIME-тип, соответствующий JavaScript, указано:

Известно, что использование «text» в качестве типа верхнего уровня данного типа содержимого проблематично. Поэтому данный документ определяет text/javascript и text/ecmascript, отмечая их «устаревшими». Использование экспериментальных и незарегистрированных медиатипов, таких как перечисленные в части выше, не приветствуется.

Медиатипы

application/javascript,

application/ecmascript,

которые также определяются в этом документе, предназначены для практического использования, им следует отдавать предпочтение.

Оригинальный текст (англ.) [показать]

Однако, согласно спецификации HTML 4.01 в качестве значения type должно быть указано устаревшее "text/javascript". Так как JavaScript является языком программирования по умолчанию во всех браузерах, начиная с Netscape 2, Дуглас Крокфорд придерживается мнения о нецелесообразности использования атрибута type, рекомендуя указывать его в XHTML, так как, хотя он, по мнению Крокфорда, и не нужен, но обязателен, и не указывать в HTML.

необязательный атрибут src, принимающий в качестве значения адрес к файлу со скриптом.

необязательный атрибут charset, используемый вместе с src для указания используемой кодировки внешнего файла.

необязательный атрибут defer, используемый для того, чтобы показать, что скрипт не генерирует никакого содержимого (что означает, в частности, то, что в этом скрипте отсутствует вызов document.write()).

При этом атрибут language (language="JavaScript"), несмотря на его активное использование (в 2008 году этот атрибут был наиболее часто используемым у тега <script>), относится к не рекомендуемым (deprecated), отсутствует в DTD, поэтому считается некорректным.

2.3 Область применения Веб-приложения

JavaScript используется в клиентской части веб-приложений: клиент-серверных программ, в котором клиентом выступает браузер, а сервером -- веб-сервер, имеющих распределённую между сервером и клиентом логику. Обмен информацией в веб-приложениях происходит по сети. Одним из преимуществ такого подхода является тот факт, что клиенты не зависят от конкретной операционной системы пользователя, поэтому веб-приложения являются кроссплатформенными сервисами.

AJAX

JavaScript используется в AJAX, популярном подходе к построению интерактивных пользовательских интерфейсов веб-приложений, заключающемся в «фоновом» асинхронном обмене данными браузера с веб-сервером. В результате, при обновлении данных веб-страница не перезагружается полностью и интерфейс веб-приложения становится быстрее, чем это происходит при традиционном подходе (без применения AJAX).

Comet

Comet -- широкое понятие, описывающее механизм работы веб-приложений, использующих постоянные HTTP-соединения, что позволяет веб-серверу отправлять данные браузеру без дополнительного запроса со стороны браузера. Для таких приложений используются технологии, непосредственно поддерживаемые браузерами. В частности, в них широко используется JavaScript.

2.4 Браузерные операционные системы WebOS

Пример сеанса eyeOS

JavaScript широко используется в браузерных операционных системах. Так, например, исходный код IndraDesktop WebOS на 75% состоит из JavaScript, код браузерной операционной системы IntOS -- на 70%. Доля JavaScript в исходном коде eyeOS -- 5%, однако и в рамках этой операционной системы JavaScript играет важную роль, участвуя в визуализации на клиенте и являясь необходимым механизмом для коммуницирования клиента и сервера.

Букмарклет

JavaScript используется для создания небольших программ, размещаемых в закладки браузера. При этом используются URL-адреса со спецификатором javascript:

Пользовательские скрипты в браузере

Пользовательские скрипты в браузере -- это программы, написанные на JavaScript, выполняемые в браузере пользователя при загрузке страницы. Они позволяют автоматически заполнять формы, переформатировать страницы, скрывать нежелательное содержимое и встраивать желательное для отображения содержимое, изменять поведение клиентской части веб-приложений, добавлять элементы управления на страницу и т. д.

Для управления пользовательскими скриптами в Mozilla Firefox используется расширение Greasemonkey; Opera и Google Chrome предоставляют средства поддержки пользовательских скриптов и возможности для выполнения ряда скриптов Greasemonkey.

Серверные приложения

Приложения, написанные на JavaScript, могут исполняться на серверах, использующих Java 6 и более поздних версий. Это обстоятельство используется для построения серверных приложений, позволяющих обрабатывать JavaScript на стороне сервера.

Помимо Java 6, существует ряд платформ, использующих существующие движки (интерпретаторы) JavaScript для исполнения серверных приложений. (Как правило, речь идёт о повторном использовании движков, ранее созданных для исполнения кода JavaScript в браузерах WWW.)

Платформы исполнения серверных приложений на JavaScrip:

Название

Используемый движок JavaScript

Языки, на которых написан движок и платформа

Лицензия

Jaxer

SpiderMonkey

C++, C

GPL 3

persevere-framework

Rhino

Java

Модифицированная лицензия BSD

Helma

Rhino

Java, JavaScript

BSD-подобная Helma License 2.0

v8cgi

V8

C++, JavaScript

Лицензия BSD

node.js

V8

C++

Лицензия MIT

JavaScript на стороне сервера используется в проектах Google. Так например, Google Sites допускает подстройку с помощью JavaScript-сценариев, исполняемых движком Rhino.

2.5 Виджеты

Элемент интерфейса

Виджет -- вспомогательная мини-программа, графический модуль которой размещается в рабочем пространстве соответствующей родительской программы (англ.), служащая для украшения рабочего пространства, развлечения, решения отдельных рабочих задач или быстрого получения информации из интернета без помощи веб-браузера. JavaScript используется как для реализации виджетов, так и для реализации движков виджетов. В частности, при помощи JavaScript реализованы Apple Dashboard, Microsoft Gadgets (англ.), Yahoo!_Widgets (англ.), Google Gadgets, Klipfolio Dashboard (англ.).

Прикладное программное обеспечение

Исходный код и скриншот JavaScript-программы, созданной с помощью Seed

JavaScript используется для написания прикладного ПО. Например, 16,4% исходного кода Mozilla Firefox написано на JavaScript.

Google Chrome OS в качестве прикладного ПО использует веб-приложения.

В окружении рабочего стола GNOME имеется возможность создавать на JavaScript программы, оперирующие с библиотеками GNOME при помощи Gjs, Seed (англ.).

Манипуляция объектами приложений

JavaScript также находит применение в качестве скриптового языка доступа к объектам приложений. Платформа Mozilla (XUL/Gecko) использует JavaScript. Среди сторонних продуктов, например, Java, начиная с версии 6, содержит встроенный интерпретатор JavaScript на базе Rhino. Сценарии JavaScript поддерживаются в таких приложениях Adobe, как Adobe Photoshop, Adobe Dreamweaver, Adobe Illustrator и Adobe InDesign.

2.6 Офисные приложения

JavaScript используется в офисных приложениях для автоматизации рутинных действий, написания макросов, организации доступа со стороны веб-служб.

Microsoft Office

В Excel Services 2010 добавились два новых интерфейса программирования приложений: REST API и JavaScript Object Model (JSOM).

Excel Services 2010 REST API позволяет осуществлять доступ к объектам рабочих книг, таким как таблицы, диаграммы и именованные серии данных; получать изображения, HTML, Atom, рабочие книги; устанавливать значения и обновлять вычисления перед запрашиванием элементов.

JSOM даёт возможность реагировать на действия пользователя в отношении Excel Web Access (EWA), программно взаимодействовать с составляющими EWA. Использование JSOM осуществляется при помощи помещения кода JavaScript на страницу, содержащую компоненты EWA.

OpenOffice.org

JavaScript -- один из языков программирования, используемых для написания макросов в приложениях, входящих в состав OpenOffice.org. В OpenOffice.org интегрирован интерпретатор JavaScript Rhino. По состоянию на декабрь 2009 года поддержка JavaScript носила ограниченный характер. Ограничения, присущие разработке макросов OpenOffice.org на JavaScript:

среда выполнения JavaScript поддерживает загрузку лишь тех классов Java, которые развёрнуты сценарием JavaScript;

среда выполнения JavaScript не предоставляет сообщения об ошибках, произошедших во время выполнения скрипта;

ещё не реализована поддержка интерактивной разработки JavaScript-сценариев.

В OpenOffice.org имеется редактор и отладчик JavaScript-сценариев.

2.7 Библиотеки JavaScript

Для обеспечения высокого уровня абстракции и достижения приемлемой степени кросс-браузерности при разработке веб-приложений используются библиотеки JavaScript. Они представляют собой набор многократно используемых объектов и функций.

Среди известных JavaScript библиотек можно отметить Adobe life, Dojo Toolkit, Extjs, jQuery, Mootools, Prototype, Qooxdoo (англ.), Underscore.

Отладка

В JavaScript доступ к отладчикам становится особенно полезным при разработке крупных нетривиальных программ из-за различий в реализациях разных браузеров (в частности, в отношении объектной модели документа). Полезно иметь доступ к отладчику для каждого из браузеров, в которых будет работать веб-приложение.

По состоянию на ноябрь 2009 года, Internet Explorer, Firefox, Safari, Google Chrome, а также Opera имеют отладчики сценариев.

Internet Explorer имеет три отладчика: Microsoft Visual Studio -- самый полный из них, за ним следует Microsoft Script Editor (англ.) (компонент Microsoft Office), и, наконец, свободный Microsoft Script Debugger, гораздо более простой, чем два других. Бесплатный Microsoft Visual Web Developer Express предоставляет ограниченную версию с отладочной функцией JavaScript в Microsoft Visual Studio. В восьмой версии в IE вместе с инструментами для разработчиков появился встроенный отладчик.

В Opera также имеется собственный отладчик -- Opera Dragonfly.

Разрабатываемые веб-приложения в Firefox можно отлаживать при помощи расширений Firebug, Venkman (англ.).

В Safari входит отладчик JavaScript WebKit Web Inspector. Этот же отладчик доступен и в других браузерах, использующих WebKit: Google Chrome, Arora, Rekonq, Midori и др.

Средства тестирования

Большинство фреймворков автоматизированного тестирования (англ.) JavaScript-кода предполагают запуск тестов в браузере. Это осуществляется при помощи HTML-страницы, являющейся контекстом тестирования (англ.), которая, в свою очередь загружает всё необходимое для осуществления тестирования. Первыми такими фреймворками были JsUnit (англ.) (создан в 2001 году), Selenium (создан в 2004 году). Альтернатива -- запуск тестов из командной строки. В этом случае используются окружения, отличные от браузера, например, Rhino. Одним из первых инструментов такого рода является Crosscheck, позволяющий тестировать код, эмулируя поведение Internet Explorer 6 и Firefox версий 1.0 и 1.5. Другой пример фреймворка автоматизированного тестирования JavaScript-кода, не использующего браузер для запуска тестов -- библиотека env.js, созданная Джоном Резигом. Она использует Rhino и при этом содержит эмуляцию окружения браузера и DOM.

Blue Ridge, плагин к фреймворку веб-приложений Ruby on Rails, позволяет осуществлять модульное тестирование JavaScript-кода как в браузере, так и вне его. Это достигается за счёт использования фреймворка автоматизированного тестирования Screw.Unit и Rhino с env.js.

Главная проблема систем тестирования, не использующих браузеры, в том, что они используют эмуляции, а не реальные окружения, в которых выполняется код. Это приводит к тому, что успешное прохождение тестов не гарантирует того, что код корректно отработает в браузере. Проблемой систем тестирования, использующих браузер, является сложность работы с ними, необходимость осуществления рутинных неавтоматизированных действий. Для решения этого JsTestDriver, фреймворк автоматизированного тестирования, разрабатываемый Google, использует сервер, взаимодействующий с браузерами для осуществления тестирования.

Сходным образом ведёт себя Selenium Remote Control, входящий во фреймворк автоматизированного тестирования Selenium: он включает в себя сервер, запускающий и завершающий браузеры и действующий как HTTP-прокси для запросов к ним. Кроме того, в Selenium содержится Selenium Grid, позволяющий осуществлять одновременное тестирование JavaScript-кода на разных компьютерах с разными окружениями, уменьшая время выполнения тестов. Testswarm, имеющее поддержку фреймворков автоматизированного тестирования JavaScript-кода QUnit (библиотека jQuery), UnitTestJS (библиотека Prototype), JSSpec (библиотека MooTools), JsUnit, Selenium и Dojo Objective Harness, представляет собой распределённое средство поддержки непрерывной интеграции.

Негативное свойство, которым может обладать фреймворк автоматизированного тестирования JavaScript-кода -- наличие зависимостей. Это создаёт риск отказа в работе тестируемого кода, успешно проходящего тесты, в среде с отсутствием этих зависимостей. Например, исходная версия JsUnitTest, фреймворка, созданного и использовавшегося для тестирования библиотеки Prototype, зависела от самой Prototype, изменяющего свойства объектов в глобальной области видимости. Включение в библиотеку JavaScript инструмента тестирования -- распространённая практика. Так YUI Test 3 является частью Yahoo! UI Library и может быть безопасно использован для тестирования произвольного JavaScript-кода. QUnit -- фреймворк автоматизированного тестирования, созданный разработчиками jQuery.

2.8 Связь с другими языками

Взаимное влияние

Стандартизация JavaScript потребовала уйти от проблем с торговыми марками, поэтому стандарт ECMA 262 называет язык ECMAScript, три редакции которого были опубликованы с начала работы над ним в ноябре 1996 года.

Objective-J -- это строгое компактное надмножество JavaScript, в котором к JavaScript добавлено:

традиционное наследование,

динамическая диспетчеризация методов в стиле Smalltalk/Objective-C,

псевдостатичная типизация.

VBScript от Microsoft, подобно JavaScript, может выполняться на стороне клиента в веб-страницах. VBScript имеет синтаксис, производный от Visual Basic и поддерживается только в Internet Explorer.

JSON, или объектная нотация JavaScript, это формат обмена данными общего назначения, определённый как подмножество JavaScript.

Scheme также является родственным JavaScript языком, поскольку оба представляют богатые возможности функционального программирования: JavaScript является динамическим языком, поддерживает гибкие массивы, может легко симулировать s-выражения, имеет поддержку лямбда-выражений.

Взаимодействие

В некоторых языках программирования существуют средства поддержки взаимодействия с JavaScript-кодом.

Для PHP имеется пакет HTML_Javascript, предоставляющий интерфейс создания простых JavaScript-программ.

Соответствующий пакет для TCL называется :javascript. Он предоставляет команды генерации кода HTML и JavaScript.

Пакет для Perl Data::JavaScript позволяет переносить структуры данных Perl в JavaScript-код.

Поддержка браузерами

На сегодняшний день поддержку JavaScript обеспечивают современные версии всех наиболее часто используемых браузеров. В Internet Explorer, Mozilla Firefox, Safari, Google Chrome, Opera имеется полная поддержка третьей редакции ECMA-262. При этом в Mozilla Firefox предпринята попытка осуществления поддержки четвёртой редакции спецификации, а первым браузером, в котором появилась неполная поддержка спецификации 3.1, явился Internet Explorer 8.

Допущенные разработчиками популярных браузеров ошибки в реализации спецификации, как правило, незначительны. По состоянию на ноябрь 2009 года объектная модель документа имеет более ограниченную поддержку.

По мнению создателя языка, поддержка в Internet Explorer компанией Microsoft одного из существующих и применяющихся в других браузерах быстрых движков JavaScript способно привести к появлению приложений, работающих с трёхмерной графикой, написанных на JavaScript 3D-игр, использованию JavaScript в задачах, в которых ранее применялась технология Adobe Flash.

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

JavaScript позволяет потенциальным авторам вредоносного кода запускать его на любом компьютере сети: для этого достаточно открыть на нём веб-страницу. Это обуславливает наличие двух принципиальных ограничений:

JavaScript-программы выполняются в песочнице, в которой они могут выполнять только ограниченный круг действий, а не задачи программирования общего назначения (например, создание файлов, работа с сокетами),

для JavaScript-кода применяется политика общего происхождения, в соответствии с которой скрипт, встроенный в страницу, не может получить доступ к ряду свойств объектов другой страницы (в частности, к большинству свойств объекта document) при отличии в протоколе, хосте и номере порта этих страниц.

Помимо этого, разработчики браузеров вносят дополнительные ограничения в ответ на имеющие место злоупотребления. Так появился, в частности, запрет на открытие окна, размер одной стороны которого меньше ста пикселей.

Межсайтовые уязвимости

Общая проблема, касающаяся JavaScript -- межсайтовый скриптинг или XSS, нарушение политики общего происхождения. Уязвимости XSS имеют место в ситуациях, когда злоумышленник имеет возможность поместить скрипт на страницу, демонстрирующуюся пользователю. В этом случае скрипт получает доступ к сайту с правами этого пользователя, что в ряде случаев открывает возможность отсылки конфиденциальной информации, осуществление нежелательных транзакций.

Уязвимости XSS также происходят из-за ошибок, допущенных разработчиками браузеров.

Другим типом межсайтовой уязвимости является подделка межсайтовых запросов или CSRF. Она заключается в возможности сайта злоумышленника заставить браузер пользователя осуществить нежелательное действие на целевом сайте (например, банковский перевод денег). Такая возможность имеется, если целевой сайт полагается только на HTTP cookie или запросы авторизации. В этом случае запросы, инициализированные кодом сайта злоумышленника, выполняются так же как запросы пользователя, если он авторизован на целевом сайте. Одним из средств защиты от CSRF является осуществление аутентификации при любом запросе, который приводит к необратимым последствиям. Также может помочь анализ HTTP referer.

3. Perl

Perl - это процедурный язык программирования - универсальный инструмент для решения очень широкого круга задач. Perl не разрабатывался специально для Web-программирования. Perl, как и любой полноценный язык, имеет некоторое ядро - набор функций и правил, которые не зависят от платформы, операционной системы и прочих обстоятельств. Код Perl мобилен и переносим и везде одинаков.

Различия дистрибутивов Perl схожих версий сводятся наличием установленных модулей. Perl предоставляет программисту ограниченный набор стандартных инструментов. Это дисциплинирует программиста и облегчает обмен кодом и опытом. При этом, программист совсем не скован и всегда может получить требуемые возможности, подключив соответствующий модуль. Perl является зрелым языком. Мало подвержен всяческим багфиксам и изменениям. Снабжен развитыми средствами разработки. Все "детские" ошибки Perl пережил еще более чем 10 лет назад.

Perl обеспечивает более высокую производительность в веб-разработках, только если использовать не CGI-подход, а mod_perl. Большинство провайдеров не предоставят вам такой возможности. Perl представляет минимум функций в своем ядре.

Чтобы расширить функционал языка требуется подключать дополнительные модули. Большинство других языков имеют гораздо больше встроенных функций. Perl имеет собственную систему документирования и снабжён прекрасной документацией на английском языке.

Перегрузка операторов возможна, но является очень ограниченной и искусственной надстройкой. В Perl исключения можно эмулировать, при помощи таких модулей, как Error.pm и Exception.pm, не входящих в стандартную поставку. Они основаны на умелом использовании eval/die, но это весьма искусственный приём, который никак не может обеспечить требуемой гибкости современного объектно-ориентированного языка.

В Perl все переменные глобальны, если не указано иное. Но чаще всего требуется именно иное. В Perl аргументы функций задаются в магическом массиве.

4. PHP

PHP псевдообъектный язык программирование и изначально предназначался для разработки Web-приложений. Он пытается сочетать мощь полноценного языка и преимущества узкоспециального средства. В поисках компромисса, PHP приобретает целый ряд спорных качеств. PHP не является полноценным языком программирования и практически не имеет своего ядра. Отсюда проистекает целый ряд особенностей PHP. Набор функций PHP, который оказывается в распоряжении программиста, практически полностью зависит от провайдера. («Правильные» провайдеры всегда пишут, с какими опциями был собран их PHP.) Эта разница весьма ощутима. Например, если сайт разработан с использованием Smarty, то он заработает далеко не на всяком хостинге. И происходит это только потому, что аппарат Smarty использует POSIX-расширение механизма регулярных выражений. Если ваше PHP-приложение написано с использованием функций, которых хостер не предоставляет, или вы использовали библиотеки, которые зависят от таких функций, то расширить набор функций PHP самостоятельно чаще всего нельзя. PHP предоставляет (потенциально) великое множество функций. На настоящий момент их более 3000. На реальном хостинге вы обнаружите около 1000 из них. Такой широкий набор выразительных средств не идёт на пользу языку. Разные программисты знают разные наборы операторов. Это затрудняет чтение чужого кода, обмен кодом и совместную разработку. PHP относительно молодой язык. Подвержен частым багфиксам и дополнениям. В PHP механизм указателей находится в зачаточном состоянии. В PHP не предусмотрена такая структура данных, как массив. В этом смысле PHP находится на уровне awk. Одним словом, PHP ещё долго будет меняться, создавая множество проблем разработчикам. При ведении именно Web-разработок, PHP обнаруживает ряд существенных преимуществ. Во-первых, интерпретатор PHP интегрируется в Web-сервер, что в разы увеличивает производительность. Во-вторых, Web-приложения на PHP проще отлаживать. Сообщения об ошибках часто выдаются клиенту, а не пишутся в error_log. В-третьих, PHP имеет широкий набор встроенных функций, для работы по протоколу HTTP. Однако, почти все эти преимущества оборачиваются серьёзными проблемами с точки зрения безопасности ресурса. То, что PHP встроен в сервер, затрудняет диагностику источника атак. PHP даёт большую свободу разработчику -- PHP-скрипт может быть размещён в любой директории сервера. Но это тоже создаёт дополнительные риски. Во многих случаях, по невнимательности разработчиков, посетитель сервера получает возможность «залить» на сервер не только картинки и другие безобидные файлы, но PHP-скрипты, а это уже очень серьёзная опасность. То, что PHP выдаёт сообщения об ошибках в ответ на HTTP-запрос, удобно для разработчика. Но с точки зрения безопасности это решение мне всегда казалось спорным, ведь любой посетитель вашего сайта может узнать об ошибках в ваших программах. А злоумышленнику может оказаться достаточно узнать версию вашего PHP, чтобы «сломать» ваш ресурс. Преимуществом документации PHP является то, что она переведена на русский язык. К недостаткам я бы отнёс её необъятность. Основной проблемой PHP является то, что этот язык позволяет смешивать HTML-код и PHP-код. Фактически, это смешение данных и кода. Человечество уже десятки лет назад осознало, что код и данные следует разделять. Для этого найдено множество изящных решений, от хедеров и конфигурационных файлов, до шаблонов и обособленных хранилищ данных. В этом смысле PHP представляется шагом назад; каким-то старорождённым. Если посмотреть на это с прикладной точки зрения, то ничего хорошего мы тоже не увидим. Объединение HTML- и PHP-кода не улучшает читабельность ни того, ни другого. Соответственно, сопровождение, модернизация и модификация программ тоже затрудняются. Но существуют недостатки, «встроенные» в сам язык. Так, например, представляется очень неудобным то, как регламентируется передача параметров функциям. Будет ли параметр передан по значению или по ссылке определяется не при вызове функции, а при её создании. Вызов же выглядит одинаково и в том и в другом случае. Это удобно, если автором всеx функций являетесь вы сами, и вы хорошо помните прототипы ваших функций. Но при активной работе в команде это приводит к путанице. Точно также обстоит дело и с функциями, возвращающими указатели. Это самый большой из тех недостатков PHP, которые никак нельзя обойти.


Подобные документы

  • Исследование возможностей и областей использования языка программирования JavaScript. Сравнительный анализ языков программирования JavaScript и PHP. Разработка интерактивного Web-приложения на примере теста по теме "Программирование на языке Delphi".

    практическая работа [26,0 K], добавлен 04.02.2015

  • Семантика языков программирования. Процедурные и объектно-ориентированные языки программирования. Стандартная библиотека шаблонов. Независимость байт-кода от операционной системы и оборудования и возможность выполнения Java-приложения на любом устройстве.

    реферат [50,5 K], добавлен 24.11.2009

  • Рассмотрение понятия и классификации Web-технологий. Основные требования к созданию главной страницы сайта, раздела "О нас", контента, привязанности. Определение направлений использования языков программирования HTML, PHP, JavaScript, VBScript, Perl.

    курсовая работа [49,3 K], добавлен 13.07.2010

  • Основные сведения о языках программирования и их состав. Программа для компьютера. Использование компилятора и операторы. Языки программирования высокого уровня. Концепции объектно-ориентированного программирования. Языки искусственного интеллекта.

    презентация [6,3 M], добавлен 14.08.2013

  • Эволюция языков программирования от низкого уровня до современности. Языки программирования второго поколения - ассемблер. Императивные, функциональные, логические и объектно-ориентированные языки. Машинная независимость. Парадигмы программирования.

    презентация [353,5 K], добавлен 14.10.2013

  • История происхождения языков Веб-программирования. Исторические факты появления самого первого из них. Сущность современного, актуального в настоящее время, языка HTML, история появления языка PHP, применение языка JavaScript и его использование.

    реферат [23,1 K], добавлен 23.02.2013

  • Машинные коды и ассемблер. Первые языки программирования высокого уровня. Язык программирования FORTRAN. Достоинства и недостатки ALGOL. Научные и бухгалтерские программы. Основные принципы, которые соблюдались при создании языка программирования Basic.

    курсовая работа [407,4 K], добавлен 21.06.2014

  • Стандартизированный процедурный язык программирования. Создание системного программного обеспечения и прикладных программ. Особенности языка Си, его основные недостатки. Передача параметров в функцию по значению. Стандартная библиотека языка Си.

    презентация [396,3 K], добавлен 12.11.2012

  • Объектно-ориентированное программирование. Особенности использования формата CHM, его преимущества. Создание электронного учебника на тему "Язык программирования C++" с помощью компиляции html-страниц. Правильное сочетание тегов, структура документа.

    курсовая работа [1,0 M], добавлен 27.10.2012

  • Практическая значимость создания сайта. Язык программирования JavaScript. Основные области использования языка JavaScript при создании интерактивных HTML-страниц. Язык программирования PHP. Программная основа сайта. Создание оформления дизайна сайта.

    дипломная работа [1,1 M], добавлен 05.03.2013

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.