Блог

Тысячекратная компактность кода

Сергей Бобровский
22.12.2010 10:39:05

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

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

Выработаны различные способы "снижения размерности" сторонних эффектов. Например, разработчики из упомянутого в прошлом посте Viewpoints Research Institute вводят понятие "мир" (world), когда неявные взаимосвязи между объектами программисту как минимум удается контролировать. "Миры" реализованы в Squeak и JavaScript с помощью паттернов проектирования и своеобразной транзакционной семантики.

Однако это в некотором смысле косметические мероприятия, немного уменьшающие сложность работы, но и не более. Принципиально новые подходы к созданию крупных программных систем создаются VRI под руководством Алана Кея в рамках проекта STEPS Toward Expressive Programming Systems. Они позволяют создавать системы с аналогичным функционалом, на порядки - в тысячу раз и более -- компактнее, нежели нынешние.

О системе Tamacola рассказывалось ранее, а сегодня Алан Кей сотоварищи трудится над проектом Frank, где на 20 тысячах строк кода будет реализовано все, что надо типичному пользователю современного ПК, включая, конечно, и операционное окружение. В крохотном объеме Frank уместятся и низкоуровневые-кроссплатформные интерфейсы с железом, и прикладные пакеты уровня MS Office. Хотя главной задачей коллектива Кея назван поиск подходов, с помощью которых можно реализовать такую анти-масштабную задачу, но и сам Frank, конечно, станет ценной вещью -- свободной и открытой, не требующей инсталляции ОС, содержащей в себе все и работающей на множестве платформ. Создается он под девизом "математика рулит!" (Math Wins!).

Компактность будет достигнута способом, упомянутым в проекте Tamacola -- под конкретные задачи-подсистемы создаются собственные языки, компактно кодирующие нужную функциональность. Например, вся современная настольная компьютерная графика на языке Nile умещается в 300 строках кода.

Nile написан на мета-языке OMeta -- его реализация занимает 100 строк (правда, еще 700 строк потребовалось для оптимизации работы). Хотя полностью оптимизированный OMeta, написанный сам на себе, занимает 100 строк.
Соответственно, по оценкам группы Кея, большинство ключевых программных модулей Frank уместится в объеме 100-1000 строк кода.

Во Frank входят:
- универсальная медиа/UI-система, пользовательский интерфейс представляет синтез UI Etoys и MS Office. Вот пример работающего пакета этого модуля:


- ядро поддержки работы прикладных систем -- обработчики событий, просмотрщики, планировщики, графические модули и т. д.;
- универсальная система параллельной потоковой обработки изображений и звука;
- объектная система для создания пользовательских приложений (расширение Smalltalk);
- OMeta;
- Nothing -- высокоуровневый язык с простейшей низкоуровневой семантикой для поддержки кросс-плаформности. Весь машинный код Frank будет генерироваться на нем (как выражаются создатели, from Nothing, "из ничего") . Прикладные языки, определенные на OMeta, также будут транслироваться с помощь Nothing в двоичный код (на самом деле трансляция будет выполняться, скорее всего в Си или Smalltalk; непосредственно же программировать на Nothing обычному разработчику будет совершенно не под силу -- точнее, как заявляют авторы, программировать на Nothing смогут только сверхчеловеки).

На прикладном UI-уровне Frank также появится немало концептуальных вещей -- универсальные undo, повсеместные микровидео, панели меню, редактирование на любом шаге процесса (нет разницы между презентацией и ее конструированием), отсутствие разницы между типами документов (э-письмо, презентация, отчет, веб-страничка, скрипт -- это все единый документ) и так далее.

Реализация средств разработки для Frank тоже весьма уникальна. Например, OMeta можно пользоваться прямо из браузера -- реализация выполнена на JavaScript. Есть и иные реализации, например, на C#.

Комментариев: 0

Только зарегистрированные и авторизованные пользователи могут добавлять комментарии

Интересно

Статьи

“1С” как инструмент эффективного управления крупным машиностроительным холдингом
Задача коренной модернизации ИТ-системы управления предприятием встала перед автомобильным холдингом «Соллерс» …

Блокчейн не ограничивается финансами, но говорить об успехах рано
В нынешнем году блокчейн набирает ощутимые обороты в мире технологий: следуя общей тенденции, крупные …

Блокчейн: раздутый пузырь или действительно революционная технология?
Станет ли технология блокчейн вторым пришествием Интернета? Это сравнение похоже на патетический лозунг …

Новый протокол языковых серверов от Codenvy облегчает жизнь программистам
Компании Codenvy, Microsoft и Red Hat объявили 27 июня о вступлении в силу проекта языкового …

Вступая в эпоху цифрового бизнеса
Анализируя тематику разного рода разговоров и публикаций о трендах развития ИТ в первой половине …

Мы в социальных сетях

PC Week/RE в Facebook PC Week/RE в Контакте PC Week/RE в Google+ PC Week/RE в Одноклассниках PC Week/RE в Twitter PC Week/RE в Livejournal

Решения

Сборник статей «Как определить ценность Интернета вещей для бизнеса»
Internet of Things — тренд, который уже сейчас кардинально меняет бизнес во всем мире. И хотя некоторые до сих пор с …

Сервис — это наше «все» в прошлом, настоящем и будущем!
Сервисные центры ГК «Паладин» осуществляют различные виды обслуживания вычислительной техники Hewlett-Packard …

HP SM соединяет лучшие практики с жизнью
Множественный опыт российских и зарубежных компаний показали, что ПО для управления ИТ-услугами помогает упростить …

Администрация Стрежевого подключает к корпоративному документальному серверу eDocLib муниципальные учреждения
Единая информационная система Администрации городского округа Стрежевой (Томская область), базой для которой стали …

Распределительная теплосетевая компания «ОмскРТС» внедрила СЭД «ДЕЛО» в первый месяц своей хозяйственной деятельности
«Территориальная генерирующая компания № 11» (ОАО «ТГК-11»), одна из крупнейших теплоэнергетических бизнес-структур в …

Блог

В области цифровизации медицины мы впереди планеты всей?
Ну если и не планеты, то хотя бы стран СНГ…

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

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

На итоги референдума в Великобритании повлияла недооценка соцсетей и технологий обработки больших данных, Twitter
"Перспективные корпоративные технологии, которые нельзя оставить без внимания".
Так называлась одн ...

Процессы vs Практики. А может всё и так хорошо?
Слово «бизнес-процесс» давно и прочно вошло в обиход любого управленца, однако каждый понимает его п ...

 

Лидеры читательского рейтинга

Статьи

Записи в блогах

Панорама

Серия Ricoh SP 210, SP 212: устройства для эффективной печати
Отечественный рынок печатающих устройств для офиса и дома с самых первых лет своего формирования заметно отличается по …
Переход на российскую систему ERP: от теории к практике
Выбор системы управления предприятием для крупных и средних компаний сегодня не столь очевиден, как еще несколько лет …
 

Создание сайта - студия iMake
© 2016 ЗАО «СК Пресс».
Информация об авторских правах и порядке использования материалов сайта.
Правила поведения на сайте.

На главную PC Week/RE  |  Об издании  |  Архив номеров  |  Подписка на бумажную версию
Другие проекты «СК Пресс»ITRNБестселлеры IT-рынкаByte/РоссияCRN/REIntelligent Enterprise/REPC Magazine/RE.