Microsoft announced at Ignite 2021 that they are working to unify the languages used across the Power Platform. This is an attempt to lower the learning curve on some aspects of their overall platform as well as to update some of the (very) dated languages that exist within the Microsoft ecosystem (I'm looking at you Excel). They've also just (as of June 17th 2021) integrated their Power Platform CLI w/ the ability to unpack/merge source code easier.
First off, let's drop this in here for reference. There is a Github location for common functions that anyone who designs PowerApps Canvas apps can drop in things they commonly use:
This will supposedly grow over time as others share their custom code here. As well, this will be used to enhance the overall language from its assumed current state (essentially the PowerApps language) into its future state (supporting key aspects of other platforms).
If that wasn't obvious enough, you should have learned two things from the above section:
- Power Fx will be open-source as a language
- PowerApps current "canvas app" language is the starting point
As someone
who completely ignored Microsoft's whole "just build out your data model first and auto-generate an app using Model apps" sales pitch, I feel vindicated. I mean, sometimes this works, but mostly it just punishes you for being so very lazy from the beginning. As low-code is already starting from a position of lazy, I should remind you that there actually is such a thing as being
too lazy.
Low-code gives us the opportunity to break free from the constraints of the traditional Relational Database model and to allow data entities to evolve over time. Why start us all out w/ a sales pitch around not having to "learn how to program" in a low-code language?
Mostly this marketing approach was because the original Power Platform focus was driven by Power BI and data analytics adoption. They were trying to create a path for Data Analysts to create their own apps after spending ludicrous amounts of time building out their data structures.
However, that was then. Now they're changing their sales pitch for a new and broader audience.
Based on Excel
There's a lot of discussion on how the language is based on Excel.
When I read this I started to panic.
Excel's functions and language are reflective of the time in which it was built. So much of it is just completely terrible. My first thought was: "if Excel was how Microsoft viewed low-code, then I wanted no part of it."
However, what they mean here is that it is treating objects/methods similarly to Excel under the hood in some ways. They absolutely DO NOT mean that they're porting the Excel language to anything else. Imagine again that they're doing some marketing to mid-level managers and trying to not cause their heads to explode by saying: "Nyah nyah! We're changing Excel and breaking all of your Pivot Tables!".
At a high level, what they are stating is that the focus isn't on the classic kind of programming the world has been trying to un-teach us for decades. For example, they don't want us looping through items in a list and performing a function on each item. They want us to perform a function on the entire list at once.
Excel wasn't/isn't great at explaining some of this, but the concept remains the same.
Let's say that you want to change all of the Quantity values to Zero for a series of Items in a List that have a Type field that equals "candy"? In classic programming you might do a loop and a test for each item:
For i = 0 to Count(List)
if (List(i).Type == "candy")
List(i).Quantity = 0
That isn't really how Power FX, PowerApps, or Excel treat things. Instead, what will likely be a similar function in Power FX might be:
UpdateIf(
List,
Type="candy",
{Quantity:0}
)
We aren't iterating through a list, doing comparisons item-by-item, then taking action on matching items, we're instead filtering the list by a single "entire list at once" comparison, then taking action.
So that is what they mean when they say "based on Excel". At least I certainly hope so.
You can use Visual Studio Code
In my day job, I am a part of a more traditional Development team. This is a major announcement for us, but for you, maybe less so. The gist is that there will be the ability to more directly make code changes outside of the touchy-feeling GUIs within the Power Platform and
instead within Visual Studio Code.
We already knew that the application source (and lots of other Microsoft documents/applications) was just a pseudo .zip file w/ some structured files/JSON/YAML under the hood. Having the tools natively built out to support the extraction/reconstruction of these is a big win here.
This starts to bridge the worlds between traditional development and low-code. It allows management of some of the more complex applications or common features/functions to be done within a more rigorous QA and Development cycle prior to deployment without forcing all of the low-code work to flow through the same pathway.
Imagine having some block of code in all of your applications that could be globally updated by a centralized IT team for all applications? Like a global alert for your organization, down-time, etc. A single coder could make this change to ALL applications at once inside your organization no matter who wrote the original code. Incredibly dangerous powerful.
Personally, I'd never even tell a regular low/no-code developer that such a thing is possible. The potential for errors made by non-coders far outweights the benefits to them. However, for a traditional developer who is already familiar w/ the tools, it is a great option to stay in the place where you're comfortable.
Plus, it's sometimes just a heck of a lot easier to copy code from application X -> Y using Visual Studio Code than the GUI tools.
Just know that while the above details remain experimental but this was more than just some people hacking to see if they could pull this off. This shows that there will be a path toward allowing the extraction and potentially testing of Power FX code outside of the distinct Power Platform applications.
What's next?
Well, it is likely that we will continue to integrate some of the low/no-code PowerFX language tools across a series of pipelines of development and developer capabilities. For example, the announcement also around
Power Apps Ideas shows that they're also thinking about how they integrate the natural language capabilities into auto-generating Power FX code.
If we imagine a total non-developer creating something using these natural language tools. Then a Technical Business Analyst looking at the Power FX code generated by those tools and tweaking it somewhat. Then a back-room developer doing a mass update to include common/standard graphics/color schemas in the app via the Visual Studio & CLI plug-ins. The journey and pipeline for application delivery looks much more complex, while also simplifying it into some layers of capability that allows a much larger audience to take part in their creation.
I expect we'll eventually see some of the Power Automate stuff get completely destroyed and remade within Power FX. At least...I certainly hope so.
No comments:
Post a Comment
Because some d-bag is throwing 'bot posts at my blog I've turned on full Moderation. If your comment doesn't show up immediately then that's why.
DIAF Visualpath team