Академия
XDE.app
Информационные технологии давно уже стали универсальным языком для описания знаний и процессов в самых разных областях. Программы для управления ядерными реакторами или создания музыки, управления транспортными системами мегаполиса или детские игры. Практически с одинаковыми успехом инженеры ПО проникают во все эти сферы. Ццифровые устройства, лежащие в наших карманах в десятки раз больше самых производительных персональных компьютеров десятилетней давности. Практически любое начинание, приправленное ИТ, становится на вкус немного лучше.
Поэтому весь образовательный процесс выстраивается вокруг реализации приложения XDE.app. Концептуально оно представляет из себя инструмент для инженеров. В некотором смысле аббревиатура XDE в данном случае рассматривается как аналогия IDE (Integrated Development Environment) для инженеров ПО, только степень интегрированности намного масштабнее. Условно назовём его как приложение, которое делает всё.
TODO:
- Референс на проблематику практичности и может другие, отражённые в начальном разделе.
- На титульной странице была применена метафора "волшебной палочки" применительно к XDE.app. Здесь стоит дать пояснения. Что в буквальном смысле не так далёк тот день, когда произнесённое "заклинание" на самом деле может вызвать дракона. Только в роли волшебной балочки будет современное носимое устройство в виде смартфона. Дракон может быть в виде робота, которые уже давно могут печатать сами себя. И расстояние до этого "волшебства" уже намного короче, чем от современных смартфонов до первых супер-компьютеров, которые уступали им во всём.
- Грамотная организация предполагает выделенную и достаточно узкую ответственность (SRP). Казалось бы у такого продукта она чрезмерно размыта. И здесь важно дать объяснение, что само приложение выступает в роли платформы, которая помогает организовать и координировать работу отдельных инженерных модулей, имя которым может быть – легион.
Такая амбициозная задача на грани абсурдной несёт под собой много важных целей. Во-первых, это умение реализовывыть сложные, масштабируемые системы с архитектурной точки зрения. Во-вторых, развитие навыков менеджмента и инженерной коммуникации между учащимися. В-третьих, поиск формальных пересечний в казалось бы самых разных областях. Насколько они плотно переплетаются и могут подкреплять друг друга как с образовательной, так и практической точки зрения. В том числе, и благодаря единому формальному языку, используемому для их описания.
Одним из важных решений в рамках XDE.app является выбор экосистемы, в которой вести разработку и, как следствие, выбор языков программирования и инструментов.
Web
Данная экосистема, в первую очередь, представлена классическим набором веб-стандартов: HTML, CSS, ECMAScript (более известный как JavaScript).
Преимущества
- Среда разработки доступна практически на каждом рабочем месте.
- Как сам ECMAScript позволяет познакомиться с самыми различными подходами в программировании (прототипное ОО, динамическое программирование и другие), так и многочисленные языковые надстройки/транспилеры (TypeScript, PureScript, ReasonML и другие) помогут ознакомиться с различными парадигмами программирования.
- Одна из богатейших систем библиотек и фреймворков, позволяющих решать практически любые задачи.
- Современные браузеры (порядка 90% рынка) предоставляют доступ к достаточно богатому API.
- Пожалуй один из лучших UI фреймворков как в случае с основными стандартами/API (HTML, CSS, SVG, WebGL, WebGPU), так и за счёт расширения при помощи дополнительных библиотек (React, Vue, Svelte, Angular и другие).
- Такой инструмент как WebAssembly, позволяет интегрировать в веб-приложения код из других экосистем, как например Rust или .NET ниже.
Rust
Преимущества
- Богатые возможности мета-программирования, особенно в сфере макросов. Если начинать ознакомление не с нуля, а предусмотреть использование некоторых синтаксических наработок, то можно стартовать с более высоких уровней абстракции, например с некоторого упрощённого синтаксиса спецификаций.
- Органичная интеграция тестов непосредственно в тестируемый код.
.NET
Blender
Blender в ряду экосистем выше стоит немного особняком и вряд ли может рассматриваться самостоятельно. Но такая его возможность как Geomtry Nodes, позволяет взглянуть на разработку с другой, в прямом смысле более красочной, стороны. При этом данный подход может даже оказаться более качественным с образовательной точки зрения.