Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Project architecture #8

Closed
se16n opened this issue Mar 3, 2021 · 7 comments
Closed

Project architecture #8

se16n opened this issue Mar 3, 2021 · 7 comments

Comments

@se16n
Copy link

se16n commented Mar 3, 2021

Hello,

I'm very existed about this project! Thank you!

I'm wondering if this the only language spec is open sourced or an entire platform? To re-phrase it will be possible to use Power-Fx in self-hosted apps which doesn't use Power Platform at all?

@mblennegard
Copy link

@se16n
It is only the Power Fx formula language that is being open-sourced.

Regarding self-hosted apps etc., I believe Microsoft has explicitly stated that they would like to see others implementing the Power Fx language in their own applications and tools. Again, this is only the Power Fx formula language.

@MikeStall
Copy link
Contributor

@mblennegard - it's our plan to eventually open source the PowerFx language implementation too, and allow others to consume that implementation. Stay tuned.

@mi-hol
Copy link

mi-hol commented Mar 5, 2021

So this issue is linked to #13

@ScatteredRay
Copy link

Can you provide any information about the PowerFX language implementation? While this is interesting to me, I have no idea if the implementation can be embedded in C++ applications, requires dotNet, or is web/JS based. Additionally, does it run interpreted or does it have a bytecode, is that bytecode standardized? What are the potentials for platform support.

@tomzhang
Copy link

totally agree with @ScatteredRay , we just need to know the fundamental requirement about what kind of language using for create PowerFX and basic architecture about it.

@jgrisham
Copy link
Contributor

jgrisham commented May 15, 2021

Can you provide any information about the PowerFX language implementation? While this is interesting to me, I have no idea if the implementation can be embedded in C++ applications, requires dotNet, or is web/JS based. Additionally, does it run interpreted or does it have a bytecode, is that bytecode standardized? What are the potentials for platform support.

You are free to implement PowerFX support in whatever language (or using whatever tools) you would like, but you would need to create your own interpreter or complier.

This project simply defines PowerFX, much like a book defining HTML doesn’t require the existence of a web browser, let alone an implementation of one. Those familiar with IETF Internet RFCs might think of this as [draft-language-powerfx], the draft of a specification RFC.

(Put another way: one wouldn’t expect a book on Latin to come with the DNA for an ancient Roman citizen, nor should such a Roman be required to make some productive use of Latin.)

PowerFX is primarily a functional language (think Haskell), not a procedural one. It’s also very high-level. I don’t believe functional languages can be reduced directly to bytecode, since assembly / machine code on traditional processors is fundamentally procedural. If that is correct, then it will need an interpreter, just like PostScript or Python.

Tl;dr: the Microsoft code implementing PowerFX in their Power Platform is still proprietary and not currently available to the public.

@orcmid orcmid mentioned this issue Aug 22, 2021
2 tasks
@MikeStall
Copy link
Contributor

We've now added the implementation! Announcement here: https://powerapps.microsoft.com/fi-fi/blog/power-fx-open-source-now-available/

emhomm4 pushed a commit that referenced this issue Nov 3, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

8 participants
@ScatteredRay @tomzhang @MikeStall @jgrisham @se16n @mi-hol @mblennegard and others