Что такое веб-приложение?

Что такое веб-приложение?
Photo by Luca Bravo / Unsplash

Доподлинно неизвестно, кому впервые пришла в голову концепция «софт как сервис» (то бишь, «Software as Service», сокращённо «SaaS»). Но реализовывать её бросились все кому не лень. Игры, работающие в браузере, всяческие банковские примочки, RTF-редакторы — подобные штуковины распространились по всемирной паутине в невообразимом количестве и попадаются чуть ли не на каждом шагу. Значит, необходимо разобраться с их достоинствами и недостатками, для чего и предназначена нижеследующая статья.

Суть вкратце

Веб-приложения работают по схеме «клиент-сервер». Клиент — браузер, установленный на компьютере пользователя. Сервер — место, где физически располагается сайт во всемирной паутине. А к сайту прикручена какая-нибудь программа. Она и запускается внутри браузера.

Следовательно, потребителю не доводится искать, подбирать, скачивать и устанавливать приложение, версии которого может и не быть для определённой операционной системы.

Бытует мнение, что раз уж львиная доля вычислений осуществляется на сервере, поэтому от компьютера, выступающего в роли всего лишь терминала, не требуется особой мощности. Даже термин есть такой: «тонкий клиент». В смысле, не отягощённый аппаратными возможностями. Однако не следует путать «облачные» производственные системы с онлайн-приложениями! Последние рассчитаны на среднестатистическое современное оборудование, имеющееся у большинства пользователей. То есть, система «клиент-сервер» необязательно действует как у «облаков» с серверами и рабочими терминалами, потому что бремя вычислений очень часто ложится на клиентский компьютер. Но о неприятном — далее.

Как это работает

Используются следующие технологии:
1. скрипты;
2. апплеты Java;
3. Microsoft Silverlight;
4. Adobe Flash.

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

Иная ситуация — с JavaScript. Сей продукт прогрессивных потуг человечества, представьте себе, обрабатывается (интерпретируется на лету) непосредственно браузером. То есть, нагружает компьютер пользователя настолько, что даже мощные машины нередко молят о пощаде, перегреваются и завывают кулерами, как пикирующие истребители времён Второй Мировой. Поэтому люди часто либо вообще запрещают выполнение JavaScript (в настройках браузера), либо устанавливают дополнения вроде NoScript (в Mozilla Firefox и SeaMonkey) и включают вышеуказанное чудо программистской мысли только для доверенных сайтов.

Апплеты Java нынче не так популярны, как в начале двадцать первого века, но их до сих пор заслуженно любят программисты старой доброй школы, которым доверяют создание банковских сайтов. Слово «applet» — сокращение от «application» с уменьшительным аффиксом «-let». Расшифровывается как «маленькое приложение». Это действительно небольшие программы, написанные на языке Java. За их выполнение на стороне пользователя ответственен специальный плагин, прикрученный к браузеру. Например, IcedTea в вышеупомянутых Firefox и SeaMonkey. Поскольку не требуется никакой компиляции или интерпретации на лету (загружается уже готовая программа, jar-архив с классами), то с нагрузкой справится даже хилый нетбук первой волны выпуска.

Microsoft Silverlight — это попытка производителей небезызвестной ОС Windows изготовить альтернативу то ли Adobe Flash, то ли ещё чему-то. Несмотря на стремление навязать миру новое изделие, популярностью оно пользуется только в узком кругу и применяется, в основном, на сайтах самой компании Microsoft.

Adobe Flash не нужен

Adobe Flash — это великое древнее зло, ужас всемирной паутины и вообще беспросветный мрак. Ибо технология себя давно изжила.
Пусть не обижаются многочисленные разработчики онлайн-игрушек, но развлекательные онлайн-программы можно писать и на Java. Будет во много раз легче и лучше.

Не нужны никакие Flash-плагины для браузеров, никакие Flash-плееры, встроенные в веб-страницы. Даже сейчас, до эпохи вселенского торжества HTML5. Потому что современные браузеры давно интегрируются с медиаплеерами, наличествующими в операционных системах.

Firefox откроет и воспроизведёт *webm даже если вообще никаких кодеков не установлено. Если установлены, то воспроизведёт и *mp3, и *mp4, и *avi. Прямо в своём окошке. Легко и непринуждённо. И регулятор громкости предоставит, и полосу перемотки.

Если не откроет и не воспроизведёт, то запустит медиаплеер — а уж тот воспроизведёт наверняка. Появляется диалоговое окно, мол, что хотите сделать, сохранить на диск или заправить в плеер.
Почему же владельцы сайтов по сей день цепляются за Adobe Flash, даже навигацию на этой пакости делают? Потому что:
1. Flash позволяет прятать внутри изделий нехороший код на ActionScript, способный причинять вред тайком (например, загружать вирусы);
2. разработчики, студенты младших курсов, нанятые за тарелку супа, попросту не умеют изготавливать апплеты Java;
3. рядом с Flash-плеером, который встроен в веб-страницу, можно напихать великое множество рекламы;
4. саму рекламу тоже страсть как любят делать на Flash.

Как с этим жить

Если вы разработчик и вебмастер, то лучше не плодите лишних сущностей. Рекламу увидят и рядом с прямой ссылкой на медиафайл. Плеер откроет мультимедийный поток без всяких Flash.
Продукт от Adobe, к тому же, не убережёт контент от скачивания. Пользователь добавит в Firefox дополнение DownloadHelper — и все ваши старания пойдут прахом. Требуется интерактивное взаимодействие? Используйте Java, как рекомендовано выше. Тоже не идеал, но всё же не настолько всё плохо, как с Adobe Flash.
Не злоупотребляйте JavaScript, знайте меру. Ни один посетитель сайта не скажет спасибо за лютое торможение из-за всяких снежинок, падающих в окошке браузера. Да, освоить JavaScript легче, чем создать приличный проект на PHP, но не оставаться же вебмастеру на уровне студента младших курсов.

Пользователям можно посоветовать следующее:
• «голосовать ногами» — не посещать ресурсы, перегруженные JavaScript и обвешанные Flash сверху донизу;
• отключать скрипты и автоматический запуск плагинов в браузере Opera, в продукцию от Mozilla добавлять NoScript, разрешать полную функциональность только хорошим сайтам;
• трижды думать, прежде чем запускать неведомые приложения на непонятно чьих страницах.

Пояснение к последнему пункту. Если вы видите «Photoshop онлайн», то знайте, что сей графический редактор во всемирной паутине не присутствует. Но есть похожий — pixlr.com. Доверяйте только тому сайту, официальному. Не заливайте фотографии друзей, родных и близких на посторонние ресурсы, даже если туда вставили вышеуказанное веб-приложение. Иначе рискуете увидеть знакомые лица в какой-нибудь нехорошей рекламе.

Заключение

Итак, веб-приложения предоставляют пользователям сервисы прямо в браузере. В большинстве случаев — независимо от операционной системы. Можно конвертировать музыку и видео, переводить тексты с одного языка на другой, рисовать, создавать документы, gif-анимацию, играть в игры разной сложности, была бы связь с провайдером хорошая.

Однако ко всему нужно подходить с умом, в том числе и к выбору сайтов, которым можно доверять. И, конечно, не садить батарею ноутбука на страницах, поедающих неоправданно много системных ресурсов.