Microsoft Launches Power Fx, a New Open Source Low-Code Language (techcrunch.com) 86
Microsoft today announced Power Fx, a new low-code language that "will become the standard for writing logic customization across Microsoft's own low-code Power Platform," reports TechCrunch. "[S]ince the company is open-sourcing the language, Microsoft also hopes others will implement it as well and that it will become the de facto standard for these kinds of use cases." From the report: Microsoft says the language was developed by a team led by Vijay Mital, Robin Abraham, Shon Katzenberger and Darryl Rubin. Beyond Excel, the team also took inspiration from tools and languages like Pascal, Mathematica and Miranda, a functional programming language developed in the 1980s. Microsoft plans to bring Power Fx to all of its low-code platforms, but given the focus on community, it'll start making appearances in Power Automate, Power Virtual Agents and elsewhere soon.
But the team clearly hopes that others will adopt it as well. Low-code developers will see it pop up in the formula bars of products like Power Apps Studio, but more sophisticated users will also be able to use it to go to Visual Studio Code and build more complex applications with it. As the team noted, it focused on not just making the language Excel-like but also having it behave like Excel -- or like a REPL, for you high-code programmers out there. That means formulas are declarative and instantly recalculate as developers update their code.
But the team clearly hopes that others will adopt it as well. Low-code developers will see it pop up in the formula bars of products like Power Apps Studio, but more sophisticated users will also be able to use it to go to Visual Studio Code and build more complex applications with it. As the team noted, it focused on not just making the language Excel-like but also having it behave like Excel -- or like a REPL, for you high-code programmers out there. That means formulas are declarative and instantly recalculate as developers update their code.
I always wanted to program using Excel formula. (Score:5, Funny)
Looks like this is the language for me!
Re: (Score:1)
Why do you hate functional programming?
Technically, isn't anything you can build and run successfully functional programming? :-)
Re: (Score:3)
Technically, isn't anything you can build and run successfully functional programming? :-)
If a subroutine has hidden state, so it is not idempotent, then it is not functional programming.
if (foo(1.0) != foo(1.0)) {
printf("Not functional programming\n");
}
Re: (Score:2)
If a subroutine has hidden state, so it is not idempotent, then it is not functional programming.
True with one exception: When you interface the user, that one always has hidden state. Unless the user is dead. Hmmm ...
Re: (That was a joke, son) (Score:2)
there are a lot of exceptions. reading data from a socket. getting data from a sensor like a camera. accessing the real time clock.
There are ways to deal with this in a functional language either with monads or with a world type. Conceptually the goals are the same, to isolate the side effects to a small well-defined portion of the system and remove the side effects from the general purpose functional language. Use generally carries some heavy constraints but it has been proven to work and isn't really all
Re: (Score:3)
Yes! That's why lots of programming types read The Daily (Way To Functionally program) each day. It describes how to create a true Functional program. And very often, people in the comments improve on it and point out some Real Way To Functionally program that is mentioned in passing in the main entry.
But seriously, true functional programs have no side effects, and side effects include basically all useful results, like modifying files or interacting with the user. So functional programs are almost by
At last (Score:1)
So functional programs are almost by definition non-functioning! (Yes, yes, monads. It's a joke, laugh.)
See now, THAT was funny!
Re: (Score:2)
I'd like to give functional programming a good kick in the monads.
Re: (That was a joke, son) (Score:2)
You seem to misunderstand what no side effects means.
fn(state) => new_state
There. Updated state with pure functions.
Re: (Score:2)
Your example is exactly what side effect [slashdot.org] is defined to exclude. A side effect is changing something -- an existing variable's value, a byte on disk, a pixel on screen, which key is "next" in the input queue -- rather than simply returning a value. Side effects are what almost everyone expects their programs to have.
Re: (Score:2)
Intended link: https://en.wikipedia.org/wiki/... [wikipedia.org] . Phones try too hard to be helpful.
Re: (That was a joke, son) (Score:2)
That has nothing to do with the programming paradigm though. Just because the function has no side effects doesn't mean you can't change anything. The runtime - for example - might be calling your state update function in a loop, then mirroring that state to - for example - your screen.
You get all the benefits of pure functions, and state changes to the running system are managed in one place in the runtime.
Re: (Score:2)
You just proposed what are effectively global variables, except that you have to pass them through your entire call stack so that they can be returned as part of the new state, and you have to jump through hoops to preserve a functional programming model for any sub-functions that need much of that state.
In the case of a GUI, you would also need to write code (which you attributed to the runtime) to describe how that state gets mirrored to the screen, so you still have some non-functional-programming wrappe
Re: (That was a joke, son) (Score:2)
When you compile code, it is no longer functional or object oriented. It is procedural spaghetti assembler code. Whatever wrapper you may have is not relevant to how you code your app, whether that be in FP, OOP, or some other paradigm.
Re: (Score:3)
It's literally an advanced Excel-like platform [microsoft.com]. Scroll down to look at the screenshots.
The language is mostly functional and aimed at people who know Excel, but want to do a little more. The language is better than Visual Basic, but not as good as . [zerobugsan...faster.net]
Re: (Score:2)
Re: (Score:2)
When I read the summary somehow I read that it was a "low-power language" like it wouldn't take much battery power.
I could not figure out what a low-power language would look like. Maybe event based with interrupts? Turns out it actually is event-based (from what I can see) but definitely not low-power. It looks like a power hog.
Re: (Score:2)
Re: (Score:2)
Maybe the idea is to design FPGAs using, uh, excell macros .... yeah not likely lol
Re: (Score:2)
When I read the summary somehow I read that it was a "low-power language" like it wouldn't take much battery power.
More like "not much brain-power" needed.
Re: (Score:3)
Indeed. The language for people that have a high pain-threshold with regards to barely usable simple mechanisms, but a very low one with regards to well-designed mechanisms that need some understanding of larger concepts to use them.
Re: (Score:2)
I've actually always wanted to program using spreadsheet-like formulas (it's called Functional Reactive Programming), and I'm going to take a look at this language.
Made by a 12 year old (Score:2)
We have this long history of programming languages and something really interesting happened over the last 15 years, which is programming languages became free, they became open source and they became community-driven
15 years?? I know this guy is literally 12 years old, but I'm fairly certain open source existed way longer than that. Where do they find these people??
Re: (Score:2)
Re: (Score:2)
He is not saying that open source compilers and interpreters are a new thing.
He is saying that in the last 15 years, they have become nearly universal.
Few popular languages are "owned" by a corporation anymore. MATLAB is owned by MathWorks, and for some inexplicable reason, there are some people who still use it. Java is sorta owned by Oracle, but Oracle's control is slipping.
I can't think of any other proprietary languages in common use. Other popular languages are open source and based on open standard
Re: Made by a 12 year old (Score:2)
Oracle seems to be sinking its claws deeper into java over time. At least, the latest versions of java seem to be proprietary. Though imo, java is on its way out -- not that it's dying (programming languages never really die) but there isn't much of a reason to start a new project in java anymore.
Re: (Score:2)
I can't think of any other proprietary languages in common use. Other popular languages are open source and based on open standards.
That is as it should be. At some point, the design of a technology becomes "infrastructure" and must be generally available with no cost or restrictions. Because too many proprietary vendors have abused their position shamelessly in the past, even exceptionally conservative structures like large banks understand that now. Oracle is a primary offender here, and _everybody_ sane is trying to get rid of them.
Re: (Score:2)
Well, you're only looking at the entries next to Microsoft on this list of compilers [wikipedia.org] it's easy to think that everyone does proprietary compilers. Seriously, all but 2 of Microsoft's compiler products are proprietary, and that's because those are the freeware versions. One exception that I see is Roslyn which is labeled as '.NET Foundation' so I might be missing a few Microsoft products.
Better overview (Score:5, Informative)
Better overview at actual Microsoft site:
https://docs.microsoft.com/en-... [microsoft.com]
It looks like an extension of EXCEL formulas in a yaml structure. This gives a hierarchical model (like object trees) instead of rows of cells. Actually this makes sense for quick analysis sessions and more readable syntax.
Overall a nice bonus for business applications. Say what you want, however Office (and Excel) scripting has been very helpful.
Re: (Score:3)
Say what you want, however Office (and Excel) scripting has been very helpful.
I hate to admit it, but yes, scripting in Excel can be damn useful and a huge time saver. The scripting is actually one of its coolest features despite it not being used much.
Re: (Score:2)
Isn't this just a byproduct of data analysis tools not being able to keep up with data analysis demands and full-on programming being something of a bottleneck, either in terms of available human resources or simply the time to produce a program to do the work?
There has to be some way for the data analysis tools to be extended in an ad-hoc way to solve specific problems in a way that's less resource intensive that full blown programming.
I kind of wonder whatever happened to the idea of visual programming, d
Thanks, avoids guce.advertising (Score:1)
Thanks for the direct link.
It also avoids the abusive guce.advertising.com used by TechCrunch.
Re: (Score:2)
low code? (Score:3)
Code writing code. (Score:2)
Low-code/no-code.
Cortana, write me an OS.
Re: (Score:1)
Re: Code writing code. (Score:1)
Re: (Score:1)
Best I can do is NT on MIPS RISC 4000 chips. Sorry pal.
Re: (Score:1)
I saw plenty of cooler things being written in Delphi from Borland or whatever
I'm still paying off my Silverlight classes! (Score:5, Funny)
Re: (Score:2)
"Open-source" ?? (Score:4, Insightful)
I understand what an open-source computer program is. You can have an open-source compiler or interpreter, for example. But what would an open source language be?
The specification of a programming language was always thought to be in the public domain: a kind of fact. So gcc is open-source but the C programming language itself isn't. Nice for MS to release the specification for their language, but they shouldn't attach the moniker "open-source".
Re:"Open-source" ?? (Score:4, Insightful)
Maybe ask Google what they are being sued for by Oracle?
Re: (Score:3)
An open source programming language is a programming language with the reference implementation released under an open source license.
Re: (Score:2)
Might be better to say open-specification. Open-source at this point is being overloaded and causing confusion.
Re: (Score:2)
You can have open source code with no formal specification (without getting into code is specification line of reasoning).
You can have specifications with no implementation at all.
You can have open specs with proprietary implementations.
There could be proprietary specs that allow open implementations.
Re: (Score:2)
An open source language is a language sprinkled with Magic Pixie Marketing Dust. It can thereby be trumpeted as "groundbreaking" and "receiving serious outside attention".
No marketers were sacrificed by being throttled with their own souls in the announcement of the new language.
Re: (Score:3)
That would be a "free" language, not an "open source" one. I guess the writers of that article either did not understand that or thought the distinction was too subtle for the readers. You know, OSS is nice, but what you really need is FOSS.
The Git-link seems to support that. The docs carry an MIT License.
Don't want. (Score:2)
Re: (Score:2)
GOSUB _8Kbasic;
Re: (Score:2)
GOSUB _8Kbasic;
And what exactly do you plan to do with 8Kbasic when it executes the RTS instruction?
Same old - Run everything on a spreadsheet. (Score:2)
Re: (Score:2)
LibreOffice's weak point (still?). And Google Docs?
Re: (Score:2)
They talked about the way that Excel’s internal structure and efficiency were developing rapidly and it read [to me at least] as though there was a certain degree of competition between two MS teams of developers (one for each application) that were vying for support from the MS upper management and for which the Excel team
Re: (Score:2)
LibreOffice has Python as scripting (among other things). With the Python creator now working for MS, that could happen for Excel too.
E. Extend, E ... (Score:2)
as expected.
Pardon my cynicism but given Microsoft's history I feel justified in my distrust. Even though Gates is no longer personally at the helm Microsoft's course has held true all these years regardless of who is at the wheel.
Re: (Score:2)
What do you think they are embracing and extending here? Excel? YAML? They're sure not extending the idea of programming language or no-code environments. They are promoting their solution as good in that space, but that's what all business do. In a way, this is an effort to stay competitive, before a competitor like Google comes up with a better way to integrate low-code automation or scripting into "office productivity" apps and eats their lunch.
Google Sheet and Tableau should adopt this (Score:1)
The N+1 Problem (Score:2)
Back in November 2017, in response to a Slashdot post covering a story that Eric Raymond saw three viable alternatives to the C programming language, I wrote a post which I titled "The Problem With Me-Too Languages" [slashdot.org].
I think part of that post might be useful in this discussion:-
"So whilst I'm always interested in learning about developments in programming language design, I think it hel
Addenda (Score:2)
If we think about the evolution of the generic "word processor" from the earliest days, particularly if we consider examples than have existed for many years (let's take Microsoft's Word as an example), we see that the program has evolved beyond all recognition:-
- WYSIWYG added when it became "Word for Windows"
- Addition of VBA
- Support for Open file formats [cough] like ODT
- Multi-Language support
- etc.
Each time a major new requirement for Word ca
Re: (Score:1)
Re: (Score:2)
Re: (Score:2)
I appreciated your final comments.
Any line of code that makes it to Production is technical debt, regardless of how "new" the technology is.
When it comes to legacy replacement I like to ask how many person-years of development are sunk into the system? Assume 60-75% of that cost to replace. And risk, add 1% per person-year as the chance of some level of failure (including complete failure).
I've been expecting Cobol and other legacy jobs to see pay spikes due to lack of talent as people retire. What's hap
Re: (Score:2)
But one observation that I would make would be that with Developers as a subset of the broader community of technologists, I've found them to be among the earliest of early-adopters; a community of people who love new and emerging technologies. This flows through to the workplace and results in the idea that the moment a new (language/IDE/too
Now I get why they like open source now! (Score:1)
After Ballmer hated it so much.
Simple: It's another way to gain industry control!
Instead of Embrace, Extend, Extinguish, you simply start with the extend step, by making your own, and then /just TELL everybody to adopt your trap/. ^^
Let's see if people are that stupid....
(At least the kids who are too young to know MS and watch them closely (because they still do it), may be. But that is inexperience, not stupidity.)
Re: (Score:1)
After Ballmer hated it so much.
Open Source was impractical for industrial use back then. Think of it. The Linux development cycle (even though not open source is still a good example) was getting over 70k patch submissions per release just to hunt through that mess for 3k-5k patches of workable code? That efficiency threshold is unworkable.
Re: (Score:2)
Open Source was impractical for industrial use back then. Think of it. The Linux development cycle (even though not open source is still a good example) was getting over 70k patch submissions per release just to hunt through that mess for 3k-5k patches of workable code? That efficiency threshold is unworkable.
And yet it still absolutely fucking dominated windows in the server market. That didn't just happen last week, you know.
Re: (Score:1)
Re: (Score:2)
But to have an existing commercial product then simply start converting whole sections or most likely all of your project to open source (and at the time there was no legal definition of "partially" OS)? That was just asking too much.
Several companies were able to do it because their codebase was already portable, like when we got Wordperfect Office for Linux. It wasn't asking too much of a competent development team.
Re: (Score:1)
Are you sure they are even linux and not some WSL containerized thingies half the time?
Re: (Score:1)
Re: (Score:2)
If it's real OSS, they control nothing because it can be forked.
If it can't be forked, it's not real OSS
Hmmmm.. (Score:1)