Bosque: новый язык Microsoft без циклов для повышения качества кода
Bosque: новый язык Microsoft без циклов для повышения качества кода
- Язык Bosque направлен на улучшение качества ПО и повышение продуктивности программистов.
- Он устраняет источники сложности: изменяемое состояние, ссылочное равенство и циклы.
- Вдохновлён языками программирования TypeScript и JavaScript.
Структурное программирование и абстрактные типы данных стали популярны в 1970-х, и с тех пор мы используем их почти во всех языках. Эти методологии позволили программистам фокусироваться на намерении и основном поведении кода, не беспокоясь об аппаратной архитектуре. Вскоре это привело к золотому эре компиляторов и интегрированных сред разработки.
Чтобы ещё больше повысить продуктивность, качество ПО и дать возможность для новых компиляторов и инструментов разработки, инженеры Microsoft недавно создали новый язык программирования — Bosque.
Bosque создан для написания простого и понятного кода как для машин, так и для людей. Он предлагает ряд способов избежать «случайной сложности» в процессе кодирования и разработки.
Регуляризованное программирование
Управление потоком в структурном программировании осуществляется через условия, подпрограммы и циклы. Новый язык устраняет источники сложности: изменяемое состояние, ссылочное равенство и циклы. Поэтому разработчики называют эту парадигму «регуляризованным программированием».
Bosque производен от сочетания синтаксиса и типов, вдохновлённых TypeScript, с ML, а также семантики, вдохновлённой JavaScript/Node. Он поддерживает не-навязывающую систему типов, позволяющую программистам гибко использовать различные номинальные, структурные и комбинированные типы для кодирования релевантных особенностей предметной области.
Источник: Microsoft | Moving Beyond Structured Programming
Язык не использует циклы «while», «do while» и «for» и имеет принципиально иной подход к условиям. Марк Маррон, ученый Microsoft, ввёл концепцию «Функторов» для замены структурных циклов с одновременным повышением качества ПО.
Функторы с символьными трансформерами
Bosque предоставляет специализированные массовые алгебраические операции с данными и встроенную поддержку обработки none (или опциональных данных). Также поддерживает конвейер для обработки коллекций, а if и match как выражения.
Из-за богатого набора примитивов выражений в Bosque меньше нуждается в большом наборе комбинаторов операторов. Язык предоставляет assert (только для отладочных сборок) и check (для всех сборок) как первоклассные фичи, помимо постусловий/предусловий и инвариантов классов. Циклических конструкций в Bosque нет.
Bosque может быть крайне полезен в облачных проектах, архитектура которых зависит от микросервисов, бессерверных функций и RESTful API. Он может обеспечить загрузку нулевой стоимости для быстрого запуска, сверхнизкие накладные расходы на трассировку и рантайм с минимальной вариативностью производительности.
Что дальше?
Этот новый язык всё ещё в стадии разработки. Если хотите попробовать, код доступен на GitHub.
Первые эксперименты показывают, что он может усилить несколько опытов следующего поколения: автоматическую маршализацию API, улучшенный фаззинг, символьное тестирование и компиляцию в реальном времени с поддержкой стабильного GC.
Читайте: 10 правил кодирования NASA для написания программ критической безопасности
Bosque подлежит ревизии, есть ошибки и отсутствующий функционал, производительность можно ещё значительно улучшить. Маррон и его команда сфокусируются на более продвинутых инструментах разработчика: автоматическая установка границ использования памяти во времени и верификация приложений на отсутствие ошибок выполнения без дополнительных усилий.
Промышленные технологии
- Топ 10 языков программирования для облака, которые должен освоить каждый разработчик
- Основы программирования микропроцессоров
- Фазово-синхронизационные петли (PLL): основы, применение и лучшие практики проектирования
- Операторы в C: исчерпывающее руководство
- Изучение C программирования: полное PDF-руководство для начинающих
- Печать в Python без перевода строки: мастерство параметра end и другие техники
- Microsoft представляет прорыв в конверсационном ИИ с продвинутой многофункциональной нейросетью
- GLTR: надежный статистический инструмент для идентификации ИИ-сгенерированного текста
- 9 языков программирования, которые обязательно нужно выучить в 2021 году
- Освоение программирования на C: подробное руководство для начинающих