JavaScript на Диване – мой lightning talk на JSConf

Рубрика: Development, JavaScript/Ajax | 21 February 2012, 12:02 | Vadim Voituk

Про просьбе организаторов последней JSConf выкладываю свою презентацию и черновик доклада своего lightning talk под названием “JavaScript на Диване”.

На самом деле черновик мало соответствует тому, что я говорил на самой конференции, потому лучше смотреть видео

Уверен, что все здесь присутствующие, наверняка написали свою первую строку JavaScript кода в внутри HTML-тега <script>. И наверняка у многих это случилось если еще не в 90-х, то как минимум в начале 2000-ных.

C тех пор и до недавнего времени JavaScript был “языком для интерактивных Web-страниц”. Тогда же и появился термин DHTML – такой HTML но Dynamic.
Потом, лет так 7-8 назад, появился GMail и вдруг мир обнаружил существование XMLHttpRequest (Вуаля!).
А за одно с ним появились Ajax и профессия Web Frontend Engineer.
Все это счастье жило в браузере – сначала в десктопном, потом, с приходом Nokia WRT и HTML5 – в мобильном…
Параллельно в полу-подпольном режиме существовал JavaScript в качестве скриптового языка внутри разных популярных и не очень приложений: это продукты Adobe, фреймворки для плагинов к Chrome, Opera, Mozilla, Apple Dashboard Widgets и встраеваемый Mozilla Rhino. Также JavaScript можно использовать при программировании интерактивных телефонных AТС (PBX).

В это же проскакивали вообще технологически странные решения поверх JavaScript – такие как например GWT, или тот же WebOS от Palm.

Позже появился серверный JavaScript. Поначалу в виде не выстрелевших поделок вроде фреймворка от Aptana (уже не помню точного названия), а потом и в виде всем известного Node.js.
(про ASP-код на JavaScript – я пожалуй не буду вспоминать :)

Эти 3 направления: браузер, скрипт-язык и сервер-сайд – это теперешние mainstream направления для JavaScript.

Я бы сейчас хотел еще рассказать про одну область применения JavaScript, которая по моему мнению станет mainstream-ом в течении ближайших пару лет – это телевизоры и разного рода ТВ-приставки (тюнеры, Set-Top-Box-ы).

Тема не очень то и новая, и насколько я знаю, как минимум один из здесь присутствующих с этим уже стыкался.
Началось все с того, что Yahoo создал дефакто стандарт для виджетов для ТВ – Yahoo TV Widgets.
Их поддержали Samsung и выпустил серию ТВ-устройств, которые сейчас называются SmartTV.
По сути они не сделали ничего особенного – просто подключили телевизор в интернет и открыли платформу.
Ну и конечно-же они позволили сторонним разработчика писать свои виджеты следуя спецификации Yahoo TV Widgets.
Эффект был потрясающий – пользователи “писали кипятком” от возможности смотреть Youtube, читать Twitter или качать торренты прямо в собственном телевизоре.
К тому же еще и Skype подлил масла в огонь – они сделали версию для ТВ с поддержкой USB web-камер.
Параллельно с этим развивалось IP-телевидение, а вместе с ним и специальные IPTV-приставки для него, называемые Set-Top-Box-ы, которые, окромя основной задачи (показывать ТВ-каналы), предлагали уйму дополнительных интерактивных услуг.
Например мой домашний провайдер позволяет заплатить кредиткой за ТВ+Интернет прямо с экрана телевизора.
Типичным примером такого SetTopBox-ом является Apple TV – кроме телевидения over the internet, это еще и все прелести iTunes в красивой алюминиевой коробочке :)

Так вот возвращаясь к теме нашей сегодняшней встречи, большая часть того что видно зрителю на современном SetTopBox-е (как например окошки, менюшки, индикаторы, переключатели и тд) – это все JavaScript.
Ну если быть откровенным то не просто JavaScript, но еще и HTML c CSS-ом.
Чаше всего все что вы видите на экране ТВ, и что не является аудио-видео-потоком – это JavaScript. Как то:
– Выбор каналов
– Регуляторы и индикаторы громкости, эквалайзеры
– Программы передач
– Интерактивные бегущие строки (a-la погода, курсы валют)
– Окошки c настройками самого Set-Top-Box или личного кабинета IPTV-провайдера (например состояние счета абонента)
– Интернет-видео: Youtube, Vevo, Vimeo
– Video On Demand медиатеки и Pay Per Watch системы
– Музыкальные проигрыватели или фото-слайдшоу
– Анимации и эффекты а-ля “видео-внутри-видео”
– Даже заказ пиццы из ближайшей пиццерии не вставая с дивана.

Все это реализуется на JavaScript.

Выглядит это где-то приблизительно так:

Технически – внутри работает браузер WebKit или Opera версии около 9.5-10, который крутится на микро-линуксе поверх какой-то PowerPC, ARM или аналогичной архитектуры (чтоб не грелся и не жужжал вентиляторами).
Ко встроенному браузеру пригалается набор вне-браузерного JavaScript API для коммуникации с железом SetTopBox-a и иногда еще интерфейсы для управления дополнительными устройствами вроде USB-камеры или WiFi антенны.

Потомy с точки зрения программиста – разработка под телевизор или ТВ-приставку мало чем отличается от разработки под браузер.
Единственно НО, которое нужно постоянно держать в голове – это то, что главный инструмент ввода от пользователя – это все-таки пульт дистанционного управления, и привычные для ТВ интерфейсы, немного отличаются от того, что мы привыкли видеть в WEB, как по дизайну, так и по паттернам использования :)

Спасибо за внимание.

Оставьте комментарий!

Leave a Reply