![](https://habrastorage.org/webt/f2/29/ju/f229juadtimg1wbbp5v1iqh_5ao.png)
2 марта 2021 года Microsoft официально представила low-code язык программирования Power Fx, который основан на синтаксисе функций Excel.
Язык Power Fx предназначен для настройки процессов в Power Platform — платформе Microsoft для создания бизнес-решений и автоматизации рутинных задач. Это универсальный, декларативный и функциональный язык программирования со строгими типами.
Microsoft планирует открыть исходный код Power Fx под лицензией MIT. Cейчас на Github уже есть этот проект. В репозитории Power-Fx выложена подробная документация на язык, включая типы данных, операторы и идентификаторы, таблицы, переменные и грамматические правила. Также там есть описание возможностей применения Power Fx, например в приложениях на основе холста в Power Apps.
Девиз языка — «Вы можете создать приложение так же легко, как электронную таблицу». Фактически, суть применения low-code как раз состоит в том, чтобы снизить порог входа до уровня продвинутого пользователя Excel.
Power Fx обеспечивает полный спектр разработки от уровня «no code» для тех пользователей, кто никогда раньше не программировал, до «pro code» для опытных разработчиков, без дополнительного обучения или попыток перебраться через стену знаний между ними, позволяя командам с различными знаниями продуктивно сотрудничать и экономить время и деньги.
Power Fx связывает объекты вместе декларативными формулами в виде электронных таблиц. Например, можно представить свойство Visible элемента управления пользовательского интерфейса как ячейку электронной таблицы со связанной формулой, которая вычисляет ее значение на основе свойств другого элемента управления. Логика формулы пересчитывается автоматически, аналогично тому, как это происходит в электронной таблице, что влияет на видимость элемента управления.
Кроме того, Power Fx при необходимости предлагает императивную логику. В электронных таблицах обычно нет кнопок, которые могут отправлять изменения в базу данных, но приложения часто имеют. Один и тот же язык выражений используется как для декларативной, так и для императивной логики.
Power Fx описывает бизнес-логику в кратких, но действенных формулах. Большую часть логики языка можно свести к однострочным формулам с достаточной выразительностью и контролем для более сложных задач. Цель языка состоит в том, чтобы свести к минимуму количество концепций, которые необходимо понять его программисту, в идеале — не больше, чем пользователь Excel уже знал бы.
![](https://habrastorage.org/webt/sx/j_/u3/sxj_u3olytnge4uclzhswlxg1wo.png)
Так выглядит в преставлении Excel формула из Stack Overflow, которая ищет строку в обратном порядке.
![](https://habrastorage.org/webt/k5/iu/87/k5iu87mojknvdcqatyc95i47eva.gif)
Microsoft пояснила, что активно работает над интеграцией Power Fx в Microsoft Power Virtual Agents, Microsoft Dataverse и Power Apps на основе моделей.
Microsoft уточнила, что Power Fx будет дополнять языки M и DAX в Power BI, его запуск никак не повлияет на них. Все эти три языка компания продолжит поддерживать. Фактически, M и DAX фокусируются на чтении, формировании, объединении и суммировании больших объемов данных, в то время как Power Fx фокусируется на чтении и записи небольших наборов реляционных данных.
Microsoft будет улучшать Power Fx и приглашает присоединиться к этому проекту всех разработчиков и пользователей. В ближайших планах компании добавить в него именованные формулы, увеличить количество пользовательских функций и функций Excel, расширить типы данных, усовершенствовать обработчик ошибок, включить поддержку динамических схем и декларативных альтернатив App.OnStart.
В конце января 2021 года Microsoft открыла исходный код Extensible Storage Engine, реализациb API JET Blue. Проект доступен на GitHub под лицензией MIT.
В мае прошлого года Microsoft открыла исходный код интерпретатора языка программирования GW-BASIC.
В сентябре прошлого года Microsoft опубликовала исходные коды, а также документацию и примеры, автоматизированного инструмента для разработчиков — Project OneFuzz. Это фаззинг решение в настоящее время уже заменило сервис Microsoft Security Risk Detection Service.