Пределы наук походят на горизонт: чем больше подходят к ним, тем более они отодвигаются.
Пьер Буаст
Сегодня нас ждет обзорная экскурсия по основным web-технологиям, цель которой — дать минимальный объем знаний в области создания сайтов и интернет-приложений. В ходе экскурсии мы посетим четыре основных выставочных зала; позвольте кратко рассказать о каждом из них.
В первом зале вас ждут языки и средства разметки, среди них интерес представляют следующие: HTML, DHTML, XML, CSS. Второй зал посвящен языкам программирования, здесь мы увидим Perl, РНР, Python, JAVA. Третий зал нашего музея отведен под СУБД, наше внимание будет приковано к MySQL. Ну и последний, четвертый выставочный зал: тут мы собрали экспонаты, которые трудно как-либо классифицировать. Пройдясь по нему, можно увидеть интересные web-технологии, фреймворки, платформы. Мы рассмотрим Flash, SilverLight, Ruby on Rails. Итак, все собрались? Предлагаю считать нашу экскурсию открытой!
Языки разметки
Добро пожаловать в первый зал нашего музея, начнем с рассмотрения языков разметки.
Всему web-у голова!
HTML, Hyper Text Markup Language (язык разметки гипертекста) — базовая технология интернета. Этакий царь всех языков программирования для всемирной паутины. Его программный код мы сможем найти в основе практически каждой web-страницы.
При помощи HTML можно создавать отдельные элементы, а в дальнейшем компоновать их между собой. HTML позволяет формировать текстовые блоки, форматировать их, выделяя абзацы, организовывать и создавать любые таблицы и списки. Есть возможность управлять цветовым оформлением документов, добавлять на сайт звуки, анимацию, картинки. HTML, естественно, помогает организовывать связь документов, разделов и страниц сайта между собой посредством гиперссылок.
Директивы HTML называются не командами, процедурами или операторами, как в большинстве языков, а гордо носят собственное наименование — тэги (от английского слова tag — отметка).
Главный недостаток HTML — отсутствие средств, при помощи которых было бы возможно контролировать просмотр web-страниц независимо от пользователя. Web-мастер подготавливает страницу под какие-то определенные параметры, разрешение монитора, вид браузера и т.д. Пользователь же, изменив эти параметры у себя на компьютере, может получить на выходе страницу, существенно отличающуюся от замыслов программиста.
Тонкий инструмент
Языки разметки используют для того, чтобы задать структуру документа. HTML, к примеру, используется только для определения структуры, тогда как XML может задать помимо структуры еще и содержимое web-страницы. XML (eXtensible Markup Language, расширяемый язык разметки), как многим может показаться, не относится к прямым потомкам языка HTML. Да, XML во многом похож на HTML и использует тот же синтаксис, однако уместнее будет сказать, что XHML был создан на основе HTML для того, чтобы переход к стандарту XML получился более плавным. Стандарт XML не допускает «вольностей», свойственных HTML, наподобие непарных тегов и нечувствительности к регистру.
Главное преимущество XML заключается в том, что язык этот можно дописывать и расширять, добавляя новые тэги, создавая свои пользовательские XML-словари. По мнению аналитиков, XML постепенно должен стать основным стандартом во всемирной сети, включив в себя большинство других использующихся ныне форматов.
Дальше речь пойдет о дополнительных средствах разметки web-документов. Мы рассмотрим CSS: хотя многие могут сказать, что по сути это только расширение к HTML/XML, но ознакомиться с этой технологией нужно непременно.
Красота, да и только!
Зачастую у web-мастера возникает необходимость применить в процессе создания страницы сложное форматирование текста — допустим, от абзаца к абзацу менять шрифт и размер текста, его расположение относительно других элементов страницы, изменять цвет, наклон, толщину текста, формировать различные таблицы данных.
Технология CSS (Cascading Style Sheets, каскадные таблицы стилей) позволяет с помощью специального макроязыка раз и навсегда жестко задать форматирование страницы. В файле CSS мы можем задать параметры для всех тегов HTML по отдельности, а также для группы тегов, создать некий шаблон, данные которого будут в дальнейшем влиять на все элементы страницы.
Стили можно задать не только для одной конкретной страницы, но и для всего сайта в целом. Также технологию CSS можно использовать практически на любом сервере без каких-либо ограничений.
Заводной апельсин
DHTML (Dynamic Hyper Text Markup Language), динамический язык разметки гипертекста — это просто улучшенный и собранный воедино ряд web-технологий, расширенный набор средств, которые позволяют создавать интерактивные страницы, при этом уменьшая загрузку сервера.
DHTML базируется на объектной модели документа DOM (Document Object Model), технология эта встроена во все виды браузеров и помогает осуществить доступ к любому отдельно взятому элементу web-страницы (который в дальнейшем можно видоизменить). А потому технология DHTML позволяет нам осуществлять программное управление всеми тегами и атрибутами и создавать сложные пользовательские интерфейсы. DHTML позволит программисту спроектировать такие интерактивные элементы, как движущийся фон, расположенный под статичным текстовым содержимым страницы, любые сложные объекты, выпадающие меню, мигающие при наведении курсора кнопки, анимацию, титры и многое другое.
Не толпимся в дверях! Да, осталось еще много всего интересного, однако наша экскурсия продолжается, а потому попрошу вас проследовать в следующий выставочный зал.
Языки программирования
В этом зале мы задержимся подольше. Экспонаты подобраны таким образом, что каждый из них представляет интерес. Проходим к первому стенду.
Все описываемые языки программирования относятся к числу объектно-ориентированных.
Из них Perl, РНР, Python, JAVA — языки, исполняющиеся на сервере (серверные языки). JavaScript — язык, исполняющийся на браузере (клиентский). Компьютер, открывающий доступ к собственным ресурсам, носит название сервера, а получающий такой доступ — клиент.
Практичность во всем
Perl (Practical Extrifiction and Report Language, практический язык выборки и составления отчетов) оптимизирован для обработки большого количества текстовых файлов. Язык Perl обладает поистине ошеломляющими возможностями. Во-первых, он способен обрабатывать огромное количество документов на web-узле (сервере), во-вторых, многие серверы написаны как раз на языке Perl.
Web-мастеру Perl поможет проверить верность перекрестных ссылок на сайтах, осуществит проверку заполнения элементов формы, позволит присоединять базы данных с последующей их обработкой. Perl может работать и с протоколом FTP. Это позволяет автоматизировать получение файлов с других серверов, а в сочетании с возможностями языка по обработке текстовых файлов дает web-мастеру возможность создавать сложные информационные системы.
Ответ сервера
Язык программирования PHP создавался специально для сети. PHP лучше всего охарактеризовать так: программист пишет сценарии — код, сервер, получая готовые указания, обрабатывает информацию и выводит результат на монитор пользователя.
PHP помогает создавать динамические web-приложения, такие как форумы, счетчики статистики, может работать с большими объемами данных — массивами. Очень хорошо язык PHP подходит для написания систем управления сайтами «движков».
Для того чтобы сайт быстрее загружался, стоит разбить страницу на отдельные элементы. Язык программирования PHP позволяет «на лету», за считанные доли секунды, объединять отдельные составляющие в цельную web-страницу.
Основное достоинство языка PHP — простота изучения. Он будет интуитивно понятен программистам, обладающим навыками в таких языках, как Perl и C, и для новичка вполне доступен.
В PHP нет поддержки ссылок на переменные, из-за чего сложно обрабатывать масштабные структуры данных, например, вложенные списки. Нет проверки типов данных передаваемых функций, что может повлечь за собой множественные ошибки.
Добрый удав
Python прост для освоения, а между тем этот язык программирования на уровень выше, чем PHP и C. Это достигается за счет встроенных высокоуровневых структур данных (списки, массивы, словари, тьюплы).
Главное его достоинство то, что интерпретатор Python реализован практически на всех платформах и операционных системах. Python, как настоящий удав, проглотивший добычу, имеет возможность расширяться. То есть любой программист может дописать и усовершенствовать Python под себя. Python — абсолютно бесплатный и при этом простой в изучении язык.
Единственный недостаток Python — это некоторая «неторопливость», которая объясняется интерпретируемостью программы, написанной на данном языке.
Райский островок
JAVA представлен на сегодняшний момент в двух вариантах: JavaScript и собственно JAVA. Поговорим о каждом языке в отдельности.
JavaScript — по сути, всего лишь надстройка стандарта HTML, которая значительно расширяет возможности документа, созданного в этом формате. Часть кода, написанная на JavaScript, внедряется в документ HTML как подпрограмма и вызывается на исполнение соответствующей строкой HTML-кода. Весь сценарий JavaScript умещается в одном-единственном теге . Встроенный в браузер интерпретатор языка воспринимает и скрипт, и сам код гипертекста как единый документ, обрабатывая те и другие данные одновременно.
При помощи JavaScript можно полностью контролировать формат всплывающих окон и встроенных фреймов, организовывать такие интерактивные элементы, как часы, календарь, бегущие строки и иную анимацию, создать чат, сделать красивое меняющееся меню.
JAVA — это уже нечто большее: полноценный кросплатформенный язык программирования, который будет правильно обработан и компьютером с операционной системой Windows, и ПК под управлением UNIX, и даже Mac OS легко «поймет, о чем речь». На языке JAVA для сети разрабатываются небольшие программки, называемые аплетами, они загружаются из интернета и выполняются браузером (примером аплета могут послужить различного рода игры, например, шашки). Большинство web-камер, передающих на сайты изображение в реальном времени, также работают на базе приложений JAVA.
Web-активы
ASP (Active Server Pages, активные страницы сервера) — это мощная технология от компании Microsoft, позволяющая легко разрабатывать интернет-приложения и служащая для создания динамических web-страниц. ASP нельзя назвать языком программирования, так как это только технология предварительной обработки, позволяющая подключать программные модули во время процесса формирования страницы. Ее можно сравнить с библиотекой для сети: этакий «Большой энциклопедический словарь» с возможностью поиска по архивам. ASP имеет преимущество в скорости по сравнению с другими технологиями, основанными на скриптах.
Удобство ASP заключается в том, что она работает на специальном сервере PWS (Personal Web Server), который входит в состав операционной системы Windows.
Системы управления базами данных
За этим определением скрывается специализированный комплекс программ, служащий для организации и ведения баз данных.
Перед нами следующий зал, где в красивых витринах выставлены примеры различных СУБД, однако наше внимание привлечет только один экспонат — MySQL.
Бездонная библиотека
С 26 февраля 2008 года MySQL — собственность компании Sun Microsystems. MySQL относится к реляционным СУБД, характеризуется простотой структуры данных и удобным для пользователя табличным представлением. Реляционная модель в MySQL ориентирована на организацию данных в виде таблиц. Каждая таблица представляет собой двумерный массив и обладает следующими свойствами:
один элемент таблицы — один элемент данных; все элементы в столбце имеют одинаковый тип данных; каждому столбцу дано уникальное имя; строки и столбцы следуют в произвольном порядке. |
Популярность MySQL объясняется просто: эта СУБД ориентирована на большое количество платформ, а также обладает возможностью загрузки оптимизированных под конкретную операционную систему модулей и поддержкой транзакций на уровне отдельных записей. API (интерфейс программирования приложений) MySQL подходит для всех языков, описанных нами выше. То есть существуют библиотеки MySQL для языков Perl, РНР, Python, JAVA.
Средства разработки web-приложений
Перед нами открылись двери последнего выставочного зала. Глаза разбегаются — столько здесь представлено экспонатов. К сожалению, время, отведенное на экскурсию, не бесконечно, потому пройдемте сразу к стенду, демонстрирующему средства разработки.
Вспышка в ночи
Flash — мощная технология для создания интерактивных web-приложений и сайтов.
Использование этой технологии позволяет значительно уменьшить время загрузки документов, при этом приложения обладают высокой интерактивностью, а также современным эффектным дизайном, можно добавить в сайт различные анимированные ролики, баннеры, сделать красивую навигацию. Между тем Flash является многофункциональным средством, с помощью которого можно реализовать доступ к базам данных, поддержку XML, интегрировать в проект видео- и аудиоматериалы, использовать предварительно встроенные шаблоны, получать доступ к серверам приложений, работающим в режиме реального времени. Существуют игровые движки, использующие в качестве основы Flash. Их скорость и качество работы довольно низкие. Основная причина этого — невозможность использовать средства DirectX.
Все операции на flash-сайтах выполняются под управлением языка сценариев АсtiоnSсriрt, похожего на язык JavaScript. ActionScript — объектно-ориентированный язык программирования, он исполняется виртуальной машиной (ActionScript Virtual Machine), составной частью Flash Player. Синтаксис языка базируется на стандартной библиотеке C++. У языков вообще много общего, и ActionScript по скорости выполнения запроса находится с C++ на одном уровне.
Единственный недостаток технологии Flash — чрезвычайная требовательность к ресурсам, из-за которой web-приложения могут работать неправильно.
Серебряный отсвет
SilverLight — технология от компании Microsoft, прямой конкурент технологии Flash от компании Adobe. SilverLight базируется на платформе .NET и основана на XML.
В Silverlight реализованы векторная графика, анимация и средства воспроизведения видео, что позволяет разработчикам писать Silverlight-приложения на любом из языков .NET, самый распространенный из которых — C# (Си Шарп).
Silverlight позволяет программисту, не обращая внимания на ограничения web-платформ, воплощать в жизнь самые смелые замыслы дизайнеров. В рамках модели Silverlight любое созданное дизайнерами решение сохраняется в виде XAML (который по сути все тот же XML). Этот XAML-документ впоследствии автоматически встраивается в страницу сайта при помощи среды выполнения Silverlight. Результатом становится слаженная работа между программистом и дизайнером.
Красотка Руби
Последний экспонат, который мы рассмотрим, — фреймворк Ruby on Rails.
Фреймворк — это набор инструментов, библиотек и соглашений, предназначенный для упрощения работы программиста путем вынесения рутинных, часто повторяющихся задач в отдельные модули. Цель фреймворка — решение сложных задач проекта путем использования простых структур.
Ruby on Rails представляет собой платформу для создания web-приложений, написанную на объектно-ориентированном языке программирования Ruby. Данный язык не зависит от операционной системы, а по синтаксису напоминает уже знакомые нам Perl и Python.
Ruby on Rails предоставляет архитектурный образец для web-приложений, обеспечивает их интеграцию с web-сервером и сервером базы данных; предоставляет однородную среду для разработки динамических AJAX-интерфейсов с возможностью обработки запросов и выдачи данных в контроллерах, отражения предметной области в базе данных.
Это интересно: PHP + MySQL + JavaScript и XML = AJAX. Использует технологии динамического обращения к серверу «на лету», без перезагрузки всей страницы полностью, а также применяет DHTML для динамического изменения содержания самой страницы.
Фреймворк Ruby on Rails — это открытое программное обеспечение, и в каком-то плане можно сказать, что Ruby on Rails — приложение, которое уже начали писать за вас. При этом структура кода уже проработана, остается только воплотить задуманное!
Благодарим за внимание! Наша экскурсия по основам современных web-технологий подошла к концу. Надеемся, она была для вас полезной.