Журнал «Компьютерра» - Цифровой журнал «Компьютерра» № 17 (170)
- Название:Цифровой журнал «Компьютерра» № 17 (170)
- Автор:
- Жанр:
- Издательство:неизвестно
- Год:неизвестен
- ISBN:нет данных
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Журнал «Компьютерра» - Цифровой журнал «Компьютерра» № 17 (170) краткое содержание
Колонка IT-рынок Промзона Терралаб Технологии Инновации Гид
О технологиях выживания: кто подметает пыльные тропинки далёких планет Голубятня: Школа негодяев имени доктора Хауса Практический алгоритм миграции как ключ к успеху в современном софтостроении Голубятня: Такие мелкие и трудные шажки к совершенству Вернет ли MSFT кнопку ПУСК в Windows 8.1? Спасение утопающих — дело рук самих утопающих! SkyNet на Секретной Службе: Об одном невидимом, но крайне существенном рынке для ИТ-индустрии Красное на звёздно-полосатом: почему Huawei уходит из США? Девять стартапов новой волны, которая принесёт нам следующие Apple, Google и Facebook Возвращение к реальности: следующие Google и Facebook не будут заниматься интернетом AMD: приключения на краю погибели Взлом блогов известных СМИ как метод манипуляций на финансовых рынках Спецвыпуск журнала Forbes со встроенной Wi-Fi точкой доступа В Швейцарии открылось кафе для велосипедистов В Швейцарии появится беспроводной троллейбус Док-станция для телефона, превращающая его в будильник Гаджет, выключающий телефон, если его владелец над чем-то сосредоточенно работает или думает Выбираем моноблок для Windows 8 BitTorrent Sync: торренты в облаках Система STEPS: двадцать тысяч строк кода, которые изменят программирование, операционные системы и интернет Еnergy harvesting: энергия из ничего TOP-10 роликов на день рождения YouTube Социальный интерактив как лекарство от терроризма: как ловили организаторов бостонской трагедии «Обливион» Джозефа Косински: спецэффекты лучезарного постапокалипсиса Рынок брендинга запутался в терминах: как разобраться стартапу? Стратегия коммуникации с венчурным инвестором: общайся по-предпринимательски Стартапы в борьбе со стихийными бедствиями Почему стартаперам кажется, что российский венчур — клондайк, и почему на самом деле это не совсем так «Клонирование» успешных бизнес-моделей: найдётся ли выход? Станислав Лагун, Magru: вскоре в России перестанут «стесняться» платить за контент в интернете Десять лучших пакетов офисных программ Приложение Akatu не даст близким повода гадать, чем вы занимаетесь в ванной У популярного клиента Twitter Tweetbot появилась интересная новая возможность
Цифровой журнал «Компьютерра» № 17 (170) - читать онлайн бесплатно полную версию (весь текст целиком)
Интервал:
Закладка:
Вот как выглядит «Франкенштейн» с точки зрения пользователя.

Что может делать пользователь Frank? Всё то же, что мы обычно делаем за компьютером: создаём и редактируем текстовые документы, графику, видео, презентации и электронные таблицы, а также обмениваемся ими через сеть. Вся разница в том, что исследователи попытались полностью избавились от дублирования функций разными программами и максимально сократить исходный код.
Frank — это не операционная система, в которой работают приложения, а скорее, подобие Smalltalk или Squeak — большое приложение, которое можно расширять и дополнять, пока оно не станет делать всё, что нам нужно. Вместо приложений, в которых реализованы собственный интерфейс и функции, здесь присутствуют компоненты, имеющие сложные взаимосвязи.
Во Frank есть единое понятие «документ», в который могут быть включены и на месте изменены любые объекты, будь то изображения, таблицы или созданные пользователем скрипты. Презентация, например, — это документ, включающий в себя сценарий перехода вперёд и назад по страницам (или, если угодно, кадрам), а не файл, для открытия которого требуется специальная программа. Такая программа просто не нужна, потому что интерфейс для работы с изображениями и текстом идентичен тому, что используется для подготовки других документов.
То же и с электронной почтой: письмом во Frank считается любой документ, который был передан по Сети. Список писем — это результат поиска документов, полученных от других пользователей.
Ещё одно ценное качество системы Кея — универсальная отмена. Здесь может быть отменено действительно любое действие, а не как в сегодняшних программах — лишь некоторые, да и то не всегда. Для этого используется механизм «миров»: каждый раз, когда мы что-то меняем, система может запомнить, чем нынешний «мир» отличается от предыдущего, и в случае надобности вернуть всё, как было.
Интереснее всего то, как Кей предлагает переделать веб. Во Frank нет браузера, зато есть поддержка протокола TCP/IP (его код занимает 160 строк, и это, по словам Кея, не предел краткости). Вместо веб-страниц предлагается использовать те же самые документы, добавив в них объект нового типа — гиперссылку.

Поскольку код, содержащийся в документах, по сути, работает в виртуальной машине, это делает их загрузку извне не менее безопасной, чем исполнение JavaScript браузером. Получается, что объекты-страницы просто подгружаются через Сеть по мере необходимости. Кстати, делать такие «сайты» намного проще, чем обычные: можно пользоваться уже имеющимися в системе средствами — теми же самыми, при помощи которых редактируются текстовые документы, презентации и всё остальное.
Внешняя сторона Frank интересна уже хотя бы в качестве примера унифицированной среды, в которой нет ни разделения на приложения, ни традиционной файловой системы. Но настоящая чёрная программисткая магия скрыта внутри.
Сколько занимают разные части STEPS?
Как Frank уместился в двадцать тысяч строк кода? Ответ кроется за двумя терминами: метапрограммирование и предметно-ориентированные языки (DSL). Главная идея заключается в том, чтобы создавать языки под конкретные задачи и, хитроумно комбинируя их, писать элегантные и короткие программы. Эта идея не нова: на ней основан язык Forth, и она используется в написании программ на языке Lisp, которым Кей в своё время вдохновлялся при создании Smalltalk. Более современный пример — фреймворк Ruby on Rails, применяемый в качестве DSL для разработки бэкэндов веб-приложений. Но STEPS — это нечто куда большее, чем один язык, — это набор методов и языков, при помощи которых можно создавать сложные системы, используя минимум кода.
Один из самых интересных компонентов STEPS — это объектно-ориентированный язык OMeta ( pdf). Он предназначен для описания синтаксиса других языков. К примеру, на OMeta можнов несколько строк описать синтаксис калькулятора, а потом при помощи наследования расширить его и сделать научный калькулятор. Синтаксис OMeta при этом описан на самом OMeta.
Второй важный язык — это Nile (названный в честь реки Нил). Авторы STEPS называют его «языком исполняемой математики». Nile позволяет компактно описывать математические выражения и сделан таким образом, чтобы максимально облегчить параллельные вычисления. На нём написана графическая подсистема Frank, называемая Gezira. Gezira умещается в несколько сотен строк на Nile и умеет выводить растровую и векторную графику, поддерживает сглаживание и различные фильтры.

Самый низкий уровень во всей этой сложной системе — язык Nothing (переводится с английского как «Ничто»), «высокоуровневый язык с низкоуровневой семантикой». Nothing — это промежуточное звено между всеми языками в STEPS и машинными кодами. На Nothing не предполагается писать вручную, и нужен он лишь для возможности смотреть, что получается на выходе. Nothing, по словам исследователей, вдохновлён BCPL, использовавшимся в шестидесятые годы и вдохновившим авторов Си. На данный момент код на Nothing можно транслировать в Си для дальнейшего перевода в машинные коды или в JavaScript — чтобы система исполнялась в браузере. Предполагается, что в будущем из Nothing можно будет получать машинные коды напрямую.

В качестве промежуточного слоя, на котором написан пользовательский интерфейс, одно время использовался NotSqueak — упрощённый диалект Squeak. Но в последнем отчёте упоминаний о NotSqueak уже нет, зато появился новый объектно-ориентированный язык — Maru. Как и OMeta, он написан сам на себе и может использоваться как для описания высокоуровневого представления, так и для связи с низкоуровневыми функциями. На Maru может быть реализован парсер грамматики, и в 2011 году команда Кея была занята переносом Nile на Maru.
К сожалению, отчёты Кея и его команды ( pdf) — это не пособие для программистов-суперменов и не справочник. Оно и понятно — STEPS пока что не готов, и каждый год во Viewpoints ставят разнообразные эксперименты, цель которых — не столько в создании законченной системы, сколько в том, чтобы отточить методы. «Франкенштейн» как цельная система здесь нужен лишь в качестве подопытного тела.
Читать дальшеИнтервал:
Закладка: