Компания Microsoft расширила возможности своей платформы Power Platform и представила язык программирования Power Fx. Его синтаксис вдохновлен формулами электронных таблиц Microsoft Excel.
Ключевые особенности
Power Fx – проект с открытым исходным кодом. В качестве основы для него выбрали Microsoft Excel потому, что много пользователей уже знакомы с электронными таблицами и смогут быстро начать писать код на новом языке. Таким образом, Power Fx будут использовать не только профессиональные разработчики, но и другие специалисты из самых разных областей бизнеса. Язык позволит им быстро реализовать логику программы и решить практически любую прикладную задачу.
Power Fx разрабатывается в рамках концепции low-code. Она предполагает, что создание, настройка и совершенствование даже сложных программных систем не требует написания большого количества кода.
Обычно low-code-платформы используют визуальные интерфейсы и позволяют составить программу из готовых блоков. Интуитивно понятные инструменты позволяют строить готовые решения без знаний об архитектуре ПО, процессах разработки, жизненном цикле. Один из примеров low-code – Scratch, который преподают в начальной школе для обучения основам программирования.
Цель проекта
Зачем low-code-платформам отдельный язык программирования, если они изначально рассчитаны на визуальное проектирование – когда вы перетаскиваете готовые объекты в нужные места экрана, задаете связи между ними и устанавливаете параметры? В Microsoft пояснили, что в задачах реального мира этого часто недостаточно. Поверх такой модели нужен слой логики, который точно отразит рабочие процессы. Например:
- нужно быстро вывести список клиентов, которые за последние 7 дней выходили в сеть в пределах 15 км от определенного места;
Или:
- нужно просмотреть информацию об определенном клиенте, а по клику на его имени невыполненные действия отображались в верхней части экрана.
С помощью готовых блоков реализовать подобные сценарии часто не получается. Настраиваемая логика – именно то, чего не хватает многим low-code-платформам. А те, которые ее поддерживают, предлагают написать код на традиционных языках программирования – сложных и неочевидных для начинающих. Power Fx в этом плане значительно проще и доступнее.
Связь с Excel
Power Fx использует практически тот же синтаксис создания функций, что и Excel. Формулы здесь декларативны и мгновенно пересчитываются, как и в электронных таблицах. Таким образом, обновлять вручную значения переменных и данные, рассчитанные ранее, не придется – и это сэкономит время.
Кроме того, при создании решений на традиционных языках программирования порой сложно найти и понять все части кода, которые влияют на переменную. В формулах существует только один способ вычисления значения. Это гарантирует, что вы будете знать, почему данные изменились.
Сравните, насколько проще создать решение несложной задачи на Power Fx по сравнению с JavaScript:
Перспективы Power Fx
По данным IDC, самый популярный язык программирования, JavaScript, сегодня используют 11,7 млн разработчиков. К 2024 году число профессиональных программистов, которые трудятся полный рабочий день, вырастет на 32% и достигнет 19,4 млн.
В Microsoft верят, что Power Fx также продемонстрирует подобный рост аудитории. Язык расширит круг людей, которые потенциально могут создавать сложные программные решения – даже тех, кто не занимается разработкой профессионально.
В Power Fx доступны инструменты, привычные для специалистов, например, редактирование в сторонних программа – от «Блокнота» до Visual Studio Code, поддержка систем контроля версий. Таким образом, программисты и люди от бизнеса смогут работать быстрее и находить точки соприкосновения с миллионами других людей – архитекторов ПО, производителей, клиентов, партнеров.
Power Fx уже используется в Microsoft Power Apps. В ближайшее время разработчики обеспечат поддержку нового языка в других проектах Power Platform: Dataverse, Power Automate, Power Virtual Agents.
В будущем Power Fx можно будет задействовать для создания ботов и решения других задач автоматизации. С его помощью удобно работать не только с цифрами, но и с другими видами контента. Он позволит обновлять значения в реальном времени и создавать системы любой сложности, не вникая в нюансы использования неочевидных синтаксических конструкций.