Рекомендуемое 

Компонентный ассемблер для цифрового пространства

Maurits-Esher-reptilies

 В последнее время слова «цифровое пространство» звучат постоянно, но, мы, далеко не всегда, осознаем существенную странность нашего движения к цифровому пространству.

Если присмотреться, цифровое пространство с точки зрения оборудования (железа) уже в достаточной мере построено, достаточно обратить внимание на насыщенность мира вычислительными узлами, средствами коммуникации и облачными сервисами.

В то же время, единое программное цифровое пространство не существует. Существует несколько экосистем, слабо связанных друг с другом. Разработка внутри одной экосистемы (iOS, Android, Java, …) существенно проще, чем разработка, затрагивающая несколько экосистем. Замечу, что границы между экосистемами искусственно выстроенные, их могло не быть, так как использованное оборудование, в сущности, универсально.

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

Возьмем простой пример. Язык Go [1], по многим характеристикам, является вполне подходящим для создания частей цифрового пространства. Особенно, если обратить внимание на подход к OOP (интерфейсы, отсутствие наследования и утиная типизация). Но, одновременно, в Go постулируется, что это язык для разработки (монолитных, статически линкованных) программ, что странно: шаг вперед, два шага назад.

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

Если мы хотим разрабатывать распределенные системы, то существенное внимание должно быть уделено взаимодействию между компонентами, а взаимодействие должно быть гибким, надежным и безопасным. Программирование в большом (между компонентами), должно быть таким же надежным, как программирование в малом.

Нужен ли нам вообще язык программирования для поддержки программирования межкомпонентного взаимодействия? Или нужна, скорее, некая надстройка, типа IDL (Interface Definition Language) вместе с обеспечивающими взаимодействие инструментами?

У меня нет определенного ответа на этот вопрос, но есть уверенность в другом – если мы хотим создать современную систему разработки распределенных программ, надо проводить эксперименты, а для того, чтобы проводить эксперименты просто и быстро, нужен экспериментальный язык и экспериментальная среда программирования.

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

Если мы примем, в качестве рабочего, предположение, что экспериментальный язык ускорит разработку (а не замедлит её, так как язык/компилятор/RTS тоже надо разрабатывать), то можно перейти к перечислению требований к такому экспериментальному языку.

pdf
Имя файла: ass
Размер файла: 441 kb
Скачать файл

Читайте также:

 

Комментарии

Нет комментариев. Будь первым, кто оставит комментарий.
Гость
13.12.2018
ЕАЭК интернет вещей умное производство региональная экономика Китай теория игр технология разработки программ институты развития цифровая страна цифровое пространство отождествлённое со свободой Дальний восток форум ГУУ детерминирует в индивиде способность быть и оставаться причиной самого себя космическая шина предиктивное моделирование экосистема бизнеса Интернет Лайт теорема об отсчетах искусственный метеллект Преобразование Дальнего Востока России Байконур идемпотентное сложение цифровые платформы цифровое общество инновационная компания фото социально-хозяйственная система smart contract онтологии Интернет объектов ОБЬ Идентичность обладает свойством структурного многообразия аддитивные технологии космический мнтернет S-образная кривая мультиплатформенные программы схема программы экономика связей технология общего назначения средства разработки content трансакционные издержки ВЦ РАН cборочное программирование эконометрическое моделирование Сочи2016 цифровая экономика космосеть Радд импортозамещение ЦЭМИ комплементарные связи модель Страны АТР являя собой свободное действие АН2 бинарные компоненты ПМЭФ2016 цифровая грамотность индикаторы IT-активы асимметрия информации Видео децентрализация интерналии Знаниевые технологии OpenSource комбинаторный взрыв медицина будущего продвинутая бизнес-аналитика Информационные технологии Лаборатория АН2 цифровая корпорация цифровая трансформация Институт Шифферса ИТ-активы Искусственный интеллект биткоин проверка гипотез блокчейн Центр Проектирования Будущего Свобода в первоначальном смысле требует усилий ПМЭФ-2017
Подождите минутку, пока генерируется календарь