38 ms·
Microsoft Power Fx – A low-code general purpose programming language
- chovybizzass 6y agosmh
- joenathanone 6y agoI love Power Automate, just created a job application and onboarding process using Power Automate. Low code, great functionality.
- im_down_w_otp 6y agoHuh, interesting. Reminds of an "enterprise" version of Apple's Automator tool. I always wished Apple had taken the premise of Automator and blended it with the UI of Quartz Composer. It looks like Microsoft is a few steps closer to that kind of thing with Power Automate.
- chaostheory 6y agoI find it buggy when you’re not on the main commercial cloud. For example, simple operations related to finding unique values in Excel just don’t work.
- joenathanone 6y agoI have it intergated with an on prem SQL server, no issues. When a new client is added to the SQL database a flow triggers, that creates Sharepoint folders with the clients info, also creates a planner tasks list for the intake process. I also have a flow that brings the Planner tasks back into SQL so that I can dyanically create links to the Planner tasks list in the SQL database frontend.
- chaostheory 6y agoThe issue is with the GCC version of O365
- ampdepolymerase 6y agoIs this what Chris Granger's Eve programming language should have been?
- anewhnaccount2 6y agoI was thinking the same thing. Looking at this, it seems in some ways more primitive and less principled than what they were planning, but on the other hand, this is actually being shipped. Power-Fx seems to separate out the relational data from the GUI. But it has relational data and it's reactive so it's most of the way there I suppose.
- mathgladiator 6y agoOoOooOoooh, I need to read up on this. Just found the blog via this pointer, and it's in alignment with some of my thinking... just a bit different. I believe in the power of good reactive programming as Excel is amazing, and this Power-FX is looking really cool. I'd be concerned about how it fits within the larger engineering world versus the Microsoft universe, but I built a programming language that is reactive from the get-go. And yes, it's in the context of board games, but I hope it can become more general in the future. Reactive just makes things so... easy: http://www.adama-lang.org/docs/reference-reactive-formulas http://www.adama-lang.org/docs/reference-reactive-formulas
- vsskanth 6y agoWish it had more code examples. Also why isn't python or a subset of js used for low code app building ? Why does it always need to be a new language ? Genuinely curious
- freeone3000 6y agoMicrosoft has a lot of programming language designers. :)
- gm 6y agoThat may be the case, but that's not the reason for this one. Read up a bit on the reasons MS had. At the very least it's not a trivial "not invented here".
- eyelidlessness 6y agoThey address the origins of the language. It was designed for Excel-like usage in low code apps. Presumably it’s not a “new” language but a use case expansion of the Excel stdlib and runtime targets.
- gm 6y agoI think your question is a good one, and one that a vast majority of times it's just people or companies wanting to invent something for the sake of inventing something. IN this case, the posted link to the repo is unfortunate because there are so many better links to the announcement. Here's one that touches on your question: https://powerapps.microsoft.com/en-us/blog/what-is-microsoft-power-fx/ https://powerapps.microsoft.com/en-us/blog/what-is-microsoft...
- reilly3000 6y agoI think it’s mostly about the user, in this case the 1 billion users that know Excel, and would like those same functions available for integrating the modern web.
- simiones 6y agoBecause Python and JS are extremely difficult to use and extremely hard to understand for most cases that a user with no training in programming would have. Most people who have been programming a while disregard what a huge barrier to entry syntax is. Python's bizarre white-space sensitive syntax is especially bad for this kind of embedding. Another huge barrier to entry is the need for explicit iteration - the much more beginner-friendly option is to express operations in terms of their effects on the "selected" element in a list, or on the whole list, relying on the programming environment to actually handle the iteration. Overall, I think the approach taken here, of offering a beginner-friendly programming language AND environment, which exposes the resulting code as a data structure and not an opaque script, has some of the best chances of taking a PoC built by a domain expert and actually turning it into production software. Even better, it greatly expands what a user can do without ever reaching for a programmer to do it for them.
- rattray 6y agoCool that msft is opening up a language like this out in the open!
- thristian 6y agoI just read the overview document (docs/overview.md in that repo), and I have to say I'm blown away. Excel is one of the world's most popular programming environments, because it has such a low barrier to entry, but it's limited: the input is always a grid of numbers, and the output is always a grid of numbers, which limits how useful it can be to people outside number-crunching professions. Visual Basic (especially the original, pre-.NET incarnation) let you create Real Windows Apps with all the inputs and outputs that entails (images, copy/paste, files, sliders, textboxes, databases) and let you use a fairly simple and forgiving language to wire them together... but the barrier-to-entry was still a lot higher than Excel, even if it was lower than C++, or even Visual Basic.NET. This PowerApps thing seems like an elegant middle-ground between the two - rich inputs and outputs (images, sliders, text-boxes, databases), with a simple, predictable language to wire them together. The inputs and outputs aren't quite as rich as Visual Basic, but the shift from native apps to web apps has changed people's expectations since the days of VB6, so that's probably an advantage.
- killjoywashere 6y agoAnd another 5 years of students will have a new layer of Microsoft obfuscation to muddle through until they sort out that the *nix world is the better alternative.
- jemfinch 6y agoThis kind of vapid triumphalism adds nothing to the conversation.
- jonsen 6y agoOh, it did add something for me. It actually triggered som perspective thoughts I otherwise wouldn’t have had.
- tanseydavid 6y agoI don't find that comment to be vapid at all -- it describes a real phenomenon that has occurred in the past and seems likely to be occurring again.
- Zanni 6y agoHere's an overview: https://powerapps.microsoft.com/en-us/blog/what-is-microsoft-power-fx/ https://powerapps.microsoft.com/en-us/blog/what-is-microsoft.... I think more interesting than "low code" is the stated goal of enabling "the full spectrum of development from 'no code' to 'pro code' with no cliffs in between." "Pro code" means you can edit the source with Visual Studio and use source control.
- nwah1 6y agoThis is indeed a killer feature. You would never be able to load a Microsoft Access ACCDB file into version control and extend it in any way beyond the limitations of the Access runtime. This provides a path to convert a rapid prototype into a real app.
- wokwokwok 6y agoDoes it though? Got an example? I mean, yeah, great ideal, but that doesn’t appear (to my superficial look at it so far?) appear to be anything other than an ideal. I can also aspire to build a platform which enables everyone to prototype and then also run it in production with no performance issues, where “pro developers” can just pickup where “casual developers” left off on the prototype. ...but I’m not really interested until someone actually does it, rather than just talking about it. The power platform is a lot of PowerPoint and sales talk so far from what I’ve seen, but with what seems of actual implementation always rolling back to Q2 next year when you ask for the details... I mean maybe you got further than me down the rabbit hole than [1], but yeah... I can modify some of the display javascript as long as I use the API and do not interact with the DOM is 100% not a killer feature. [1] https://docs.microsoft.com/en-au/powerapps/developer/model-driven-apps/overview https://docs.microsoft.com/en-au/powerapps/developer/model-d...
- nwah1 6y agoMicrosoft has a lot of history building platforms for novices to produce functional systems. This one seems to be going in an open source direction, and building upon web standards. This gives it a much better chance of success. Obviously it requires investment, and there is no certainty of success. But even just a carbon copy of an existing project like Access 365, but an open source version that targets the web would be very useful. Especially if it could be extended with .NET and put into version control. Although there are competitors in that space. Reimagining the entire Rapid Application Development model is riskier for sure.
- hypermachine 6y agoI suppose this is as good a time as any to mention that we are working on an open source interpreter compatible with VB6/VBA that can run on the web. We didn't plan to make the announcement today but since Microsoft is releasing their news, I might as well let HN know about ours. We are planning to do a proper launch and release during the summer since currently our editor (which integrates collaborative editing and version control) and the other parts of our platform are not ready yet. For now only the core language interpreter and some basic widgets are usable. As for the UI issue, responsiveness is indeed a big problem for traditional absolute positioning desktop apps versus the modern flexbox standard. However, it is not a very challenging problem to tackle if your widgets are standardized and that the UI builder supports easy testing of the three major screen sizes. In other words, as long as you don't need tremendous control over how every pixel of the UI looks, the drag-and-drop style GUI building transfers quite well over to the web.
- radimd 6y agoWhy?
- hypermachine 6y agoBecause current low-code development tools boxes you in and are extremely inflexible. They are walled gardens, antithetical to general purpose computing. JavaScript and Python are ultimately not as beginner friendly as they like to claim to be [0]. Dependency management problems (Python), various footguns from the earlier days (JavaScript), difficult to rapid prototype UI and CRUD systems (both). VB and VBA are tried and tested technologies (the alternative I have considered is Lua, but Lua's ecosystem is fragmented because of the focus on embedding). Their current high popularity is in spite of Microsoft's attempts to deprecate and move users to .NET and JavaScript. They are possibly the world's most successful low-code platform. Embarcadero Delphi has become irrelevant, SAP is not accessible to most consumers. The newer generation of platforms like Retool and Bubble are all designed with software engineers first in mind when it comes to extensability and customisation; they are very inaccessible to layman if you stray from the well-beaten path. They all force you to choose between a false dichotomy of either pure GUI and no code, or an obtuse API that requires a CS degree and five years of fullstack software engineering experience to understand. In VB6/VBA, calling Windows DLL via COM was trivial. The entire power of the operating system was at your disposal in a few simple readable lines. I want to make a similar system for the modern web and APIs. iOS's Shortcuts may look pretty but they are a step backwards from the HyperCard days. [0] The litmus test I use is this: Can I teach somebody from a non-STEM background how to code and more importantly get them to integrate it in their own workflow in an afternoon? With VBA/VB6, yes. Everything is a click away. They had hot reloading in 1995. It took JavaScript 20 years to reinvent the wheel. Good luck explaining even how the packaging dependency system works with Python.
- mrbonner 6y ago“Low code”: reminds me of the horror of translating a VB app of a trader to Java in the late 90s for me.
- murukesh_s 6y agoWhy did you have to translate VB app to Java? To enable web? In VB if i wanted to display a database table, even as a newbie, I could do it in 2 minutes. Despite having a decade of experience, I struggle to display a paginated, reactive database table in Java over a week. Not saying Java is bad, but VB was amazing in its time for building desktop business apps and nothing came closer to that (other than other RAD tools).
- gmueckl 6y agoIf the web would be sound tech instead of this steaming pile of... whatever it actually is at this point in time, these kinds of RAD tools would probably now exist for the web and be better for it instead of being forgotten. They weren't perfect and random people created ugly beasts in them, but the process was fast and the results were often good enough.
- mrbonner 6y agoWe had to port this to a servlet/Flex (remember Flash?) app with more scale required than a "few hundreds transactions" in VB.
- trynton 6y ago"Power Fx" is going to be a big advance on Python /s
- dang 6y ago"Please don't post shallow dismissals, especially of other people's work. A good critical comment teaches us something." https://news.ycombinator.com/newsguidelines.html https://news.ycombinator.com/newsguidelines.html
- spawarotti 6y agoI wonder how this relates to "Calc Intelligence" or "Project LAMBDA", made by Simon Peyton Jones (of Haskell fame) et al. https://www.microsoft.com/en-us/research/blog/lambda-the-ultimatae-excel-worksheet-function/ https://www.microsoft.com/en-us/research/blog/lambda-the-ult... > By Calc Intelligence, we mean the research goal of bringing intelligence to end-user programming. The spreadsheet of the future is a trustworthy collaborator and teacher. > In December 2020, we announced LAMBDA, which allows users to define new functions written in Excel’s own formula language, directly addressing our second challenge. These newly defined functions can call other LAMBDA-defined functions, to arbitrary depth, even recursively. With LAMBDA, Excel has become Turing-complete. You can now, in principle, write any computation in the Excel formula language.
- gjm11 6y agoPossibly worth noting: the title of that blog post ("Lambda: the ultimate Excel worksheet function") is a reference to a famous series of papers (https://en.wikisource.org/wiki/Lambda_Papers https://en.wikisource.org/wiki/Lambda_Papers) by Guy Steele and Gerald Jay Sussman with titles of the form "Lambda: the ultimate X", with X = Imperative, Declarative, GOTO, Opcode. (These also gave their name to a programming-languages blog: http://lambda-the-ultimate.org/ http://lambda-the-ultimate.org/.)
- nyanpasu64 6y agoPower-Fx's formulas seem to be equivalent to property binding or functional reactive programming (as opposed to ReactiveX). The difference is that property binding and FRP are generally used in a precompiled GUI to automatically propagate changes made by users across program state, whereas Power-Fx seems to be more an integrated system with Smalltalk-style editable live programs, or low-code for makers rather than just developers. I hope Power-Fx makes property binding or FRP more mainstream. - https://doc-snapshots.qt.io/qt6-dev/qproperty.html https://doc-snapshots.qt.io/qt6-dev/qproperty.html - https://github.com/Logicalshift/flo_binding https://github.com/Logicalshift/flo_binding - https://raphlinus.github.io/ui/druid/2019/11/22/reactive-ui.html https://raphlinus.github.io/ui/druid/2019/11/22/reactive-ui.... - https://raphlinus.github.io/rust/druid/2020/09/25/principled-reactive-ui.html https://raphlinus.github.io/rust/druid/2020/09/25/principled... Does anyone know how properties/FRP/Power-Fx compare to FRP frameworks, or ReactiveX, or MobX, or Svelte (JS)?
- lstamour 6y agoWell, the animation under "Basic usage" at https://docs.microsoft.com/en-us/powerapps/maker/canvas-apps/functions/function-select https://docs.microsoft.com/en-us/powerapps/maker/canvas-apps... highlights how the bar along the top changes based on what which button or control is selected. In turn, you can pick properties or events by name on the left (like "OnSelect" for when the button is clicked) and then type in a function that should run on the right, such as Notify(). You might think OnSelect is an odd name for an "OnClick" but it makes sense when you look at how many different types of controls could conceivably use "OnSelect" as a "primary action" of a control: https://docs.microsoft.com/en-us/powerapps/maker/canvas-apps/controls/properties-core https://docs.microsoft.com/en-us/powerapps/maker/canvas-apps... By comparison, with React or ReactiveX, you can do very similar things, but by default, complications creep in because of how the language works. In JavaScript, for instance, you have to worry about binding "this" for example: https://reactjs.org/docs/faq-functions.html https://reactjs.org/docs/faq-functions.html In ReactiveX, you have to think about how you're going to structure your code, and maybe even occasionally draw flow graphs. I would also compare this to SwiftUI or Flutter, but more from the app layout perspective, where both platforms are much more mature than when they started. Here's an example comparing React and SwiftUI: https://blog.maximeheckel.com/posts/swiftui-as-react-developer https://blog.maximeheckel.com/posts/swiftui-as-react-develop... One could imagine a meta-article that compares Power-Fx to SwiftUI to Flutter, etc. Actually ... I went hunting for how state works in Flutter, and it's remarkably complicated, showing perhaps that languages which are free to evolve can maybe iterate to better solutions faster: https://flutter.dev/docs/get-started/flutter-for/react-native-devs#what-are-the-statefulwidget-and-statelesswidget-best-practices https://flutter.dev/docs/get-started/flutter-for/react-nativ... To that end, I'd look forward to seeing more projects and languages adopt the "automatic code upgrade" approaches widely seen in Xcode, React/JS codemods, and here, in Power-Fx. The idea that somebody has mapped a conversion from "the old way of doing things" to "the new way" is really convenient when the language can support it. I'd be interested to see if Power-Fx might expand to automated test cases -- wait, apparently that's a thing for Power Apps: https://powerapps.microsoft.com/en-us/blog/introducing-test-studio-to-build-end-to-end-tests-and-maintain-your-app-quality/ https://powerapps.microsoft.com/en-us/blog/introducing-test-... It maybe needs a bit more usability improvement. It would be amazing if it behaved like Redux such that you could scroll through your test playback and maybe even view or add assertions at different steps or if it supported automatic "snapshots" of visual appearance or view state, perhaps like Jest. Theoretically, you could run a test step twice (or more, such as when fuzzing) and if its output changes, mark that section visibly as dynamic or "to be ignored/fixed later" (kind of how Bazel can warn on non-deterministic build steps). If a function loads remote data, maybe it could also be a suggested snapshot for the test, and once you've a snapshot of loaded data, you could experiment with automatic fuzzing. There's a lot of potential in testing functional UI that could improve apps and even inspire tools for other, more traditional languages and frameworks... Thinking about testing tools, I suddenly had other ideas: What if you gave Power-Fx an input, an output, and then had it suggest what combinations of functions might produce that result? I'd imagine it would be more of a learning tool, but it could be interesting. Similarly, for education or understanding complicated functions, maybe there's a "debugger" mode where you could hover over any part of the function and it would tell you the value of that part of the function, given the view's current state/input, kind of like how Excel highlights cells that store data? Or to automatically convert a function into an English text representation that might be 5-10 sentences but would use existing data/context to explain itself? That way you could follow the flow of the function the way some regular expressions tools help you understand what's going on in a complicated regex expression/function, for example.
- durnygbur 6y agoSweet. How do I connect it to data lake on autoscaling self-healing cluster? Also I would like to lock the app to work on Edge on Windows 10 only, where is a checkbox for it?
- deleted 6y ago[deleted]
- kevingadd 6y agoThe lack of a real Number type (just IEEE 64-bit floats here) is a real disappointment considering all the talk about business logic in the documentation. Something with Excel heritage aimed at businesses should be able to at least handle 64-bit integers, instead of silently dropping precision on your revenue calculations. .NET had "Decimal" (high precision base 10 floating point) from the very beginning because of this. I worry that a year or two down the road there will be production Power Fx applications hitting all sorts of problems that would have been prevented if there was a proper numeric type from the beginning. Computers are fast now, the average application can handle burning a few extra cycles on addition operations when updating a textfield if the alternative is a customer's account balance getting miscomputed.
- nathanaldensr 6y agoFWIW, System.Decimal is fixed-point, not floating-point.
- electroly 6y agoThat's not true. It's floating point. https://docs.microsoft.com/en-us/dotnet/api/system.decimal?view=net-5.0 https://docs.microsoft.com/en-us/dotnet/api/system.decimal?v... > The binary representation of a Decimal value consists of a 1-bit sign, a 96-bit integer number, and a scaling factor used to divide the 96-bit integer and specify what portion of it is a decimal fraction. The scaling factor is implicitly the number 10, raised to an exponent ranging from 0 to 28
- wiso 6y agoLooks like Yaml based programing language.
- jgimenez 6y agoThis Power Apps thing looks a lot like Access, reinvented for the web an mobile apps. I've always thought the world missed a lot when everything moved to the web and Access became less used. For me Access was one of the first "no code" or "low code" precursors. True, it had its quirks, but Power-Fx seems to be fixing that.
- bradhe 6y agoVBA++?
- corysama 6y agoReminds me of Light Table https://www.kickstarter.com/projects/ibdknox/light-table https://www.kickstarter.com/projects/ibdknox/light-table
- karmasimida 6y agoLow-code and General is not compatible. Low-code is application specific configuration, with some control flow primitives
- ablekh 6y agoFrom the overview document: > Microsoft Power Fx is the low-code language that will be used across the Microsoft Power Platform. The emphasized part above is all you need to know to understand that Microsoft Power Fx is NOT a low-code general purpose programming language, as is mistakenly stated in the README document. It might be general purpose in the Power Apps context, but it's a moot point from the larger perspective. Generally, Microsoft Power Platform and, thus, its subset Power Apps, present a much stronger lock-in risk than Azure and some other products and services.
- deleted 6y ago[deleted]
- Brendinooo 6y agoFrom the readme: > We are in the process of extracting the language from that product so that we can use it in more Microsoft Power Platform products and make it available here for you to use. That's going to take some time and we will report on our progress here and on the Power Apps blog.
- ablekh 6y agoI have seen that part. But it does not mean that the language will be feasible to use outside Microsoft Power Platform.
- oraphalous 6y agoWe recently tried to build a relatively simple PowerApps application - under the assumption it would save time over pumping out a React boilerplate form. Never again. We wanted it to be able to integrate with our backend which lives outside the MS ecosystem. No problem we thought - that's what custom connectors are for. Except they don't work with any of the automated form generation functionality. So we pretty much have to build the form entirely manually. Low code becomes high code all of a sudden - except it's worse than just coding and learning a new framework. You can't just input your code anywhere you want, or import your dependencies, etc... You have to hunt around in a zillion different (laggy as all hell) interfaces to find the right location where that code can live. Or maybe it's not code - but a toggle somewhere... OMG... kill me. Good luck if you are trying to learn the lower level aspects... since all the tutorials, blogs, youtube videos - all assume that your data all lives in Sharepoint or some other MS resource - and that your connector actually works as advertised. If you can code - and your stack doesn't already entirely consist of the MS ecosystem. Just roll your own.
- the_only_law 6y agoI was curious about PowerApps when it first came out and the past year or two is the first time I’ve ever seen one. We have a handful of PowerApps at our company and they’re really just forms hosted on Sharepoint sites. Type in some info, select some drop downs and hit enter. I still haven’t experienced PowerApps from the development side, but I’ve been pretty unimpressed with the work I’ve seen from it.
- durnygbur 6y ago> You have to hunt around in a zillion different (laggy as all hell) interfaces to find the right location where that code can live. Or maybe it's not code - but a toggle somewhere... OMG... kill me. > since all the tutorials, blogs, youtube videos - all assume that your data all lives in Sharepoint or some other MS resource If you have to troubleshoot software advertised and explained by happy smilling people dragging and dropping things, code automagically appearing from snippets, claiming that "it's easy" - RUN AWAY. Your mental health is at stake.
- 6y ago
- bigbluedots 6y agoThis sounds like another effort to enable managers to code like those pesky developers! Source: am both
- kpmah 6y agoThis spreadsheet-style functional programming is quite similar to a (very limited) prototype I wrote a while ago: https://kevinmahoney.co.uk/ocell/#example/polynomial.json https://kevinmahoney.co.uk/ocell/#example/polynomial.json
- tester34 6y agodamn, MSFT Compiler & Programming Languages & Research Teams seems like dream place to work those people seems to be unparalleled when it comes to programming languages, I'm not sure about compilers and runtime because JVM/GraalVM are impressive as hell, but I think Roslyn stands
- triggercut 6y agoI've built some things in Power Apps over the last few months. Not the most pleasant experience. Anyone tried to get non US date formatting to work? Please tell me if there's a simple solution. Occasionally I'll have flashbacks to a younger me doing a similar thing in Access with VBA 15 years ago. [herewegoagain.meme]
- teddyh 6y agoAh, the no-code dream: https://www.commitstrip.com/en/2020/10/07/the-no-code-dream/ https://www.commitstrip.com/en/2020/10/07/the-no-code-dream/
- rchaud 6y agoIt's low-code, not no code. Salesforce has been in this market for about 20 years with significant success. Power Apps are irrelevant to you unless you're heavily integrated with O365. And if you are, chances are that you're in a large organization. And if that's true, you hire a certified MS partner to handle maintenance, you don't leave it to non-technical staff. At best, like MS Excel, staff can use the tool to prototype something, and then let the consultants figure out how to create a working solution that works across the whole org.
- tuyguntn 6y agosorry to steal topic a little bit. I am a backend engineer and usually create an API stuff for our frontend engineers. Tried to work on my side project recently and pixel perfecting front end and adjusting it to mobile seems very time consuming task. Are there any services I can use as a drag and drop front end builder and connect data population to my backend? checked out wix and webflow, they both seem to require storing data on their side and most of tutorials are showing how to populate that datastore with airtable or zapier, which is not an option for me.
- Nilef 6y agoHey, I run Nocode.tech and can probably give some advice here - No perfect answer sadly but a few to try First, Worth noting you can export Webflow as code and rehost it wherever you like if that’s helpful. BusyWorkHQ hasn’t launched yet I don’t believe, but it’s a backend builder for Webflow and may help you solve your problem by letting you connect a database/api thru to Webflow. @PatrickStolc on Twitter is building it Have a look at Adalo - They have the ability to replace their backend with an external database (it’s a little bit tucked away but it’s there). The downside is that the front end parts aren’t as freeform as Webflow. They’re more focused on mobile but support web apps too You may also be interested in React Studio, Wappler or UIBakery
- tuyguntn 6y agoHey, thanks! > you can export Webflow as code and rehost it wherever you like if that’s helpful. this sounds good starting point for me, I am guessing in this case I need to render HTML on server side or add some additional code to exported source code to be able to render data front end on browser side. Other options also seem interesting, thank you!
- Nilef 6y agoYeah, you would need to use something like Pug.js to render the data. As an alternative (and possibly easier imo), you could add custom JS code on Webflow (it has an embed function) to hook onto its dynamic list functionality and add your own data inside. In other words, create a list on Webflow with one item in it designed the way you want the final data to look. Then use JS code to override the data on that page with your own data source and to duplicate the list item as many times as you need for your data source This may be a useful reference: https://cmsdocs.webflow.io/ https://cmsdocs.webflow.io/ Finally, I’ve not looked at this much but it may help: https://www.nocode.tech/lessons/building-user-authentication-with-firebase-and-webflow https://www.nocode.tech/lessons/building-user-authentication...
- scanr 6y agoThe pro-code option is interesting: https://github.com/microsoft/Power-Fx/blob/main/docs/overview.md#pro-code https://github.com/microsoft/Power-Fx/blob/main/docs/overvie... yaml + Power-FX
- gervwyk 6y agoI agree. Although I do believe that the schema needs to be designed first class for writing / programming, before considering what render model and edit GUI will manipulate the schema. Making the app schema first class for writing, ensures that who ever read / writes the code can predict the app behaviour with ease. I've seen multiple platforms do this the other way around and before as a result the GUI is in full control of the app schema and you end up with machine generated config which is hard to debug, reuse, review and edit. While designing the app schema for Lowdefy [1], we are only implementing the app schema by coding it by hand - all the time (at least until all best good practices are established). This ensures that we always implement predictable defaults and that we make sure that developers only write the minimum config to be able to create an app. No unexplainable / magic paramaters in any the schema. We also implemented a MongoDB like query model in the YAML (Lowdefy operators), and we are often surprised by the level of complex logic that developers construct with ease. [1] https://lowdefy.com https://lowdefy.com
- jcun4128 6y agoNot directly related, before I got into learning web eg. HTML/CSS/JS. I put about 6 months down into this thing MS made called Touch Develop. I was able to make apps and figure out how to do stuff but I pretty much ended up scrapping it/not proceeding further. Maybe it helped me learn in the long run... Idk it was neat though.
- dragonwriter 6y agoI feel like we've been through this with COBOL, SQL, and...well, lots of things, so I'm skeptical of a “low-code [general purpose or otherwise] programming language” even if it is “expressed in a human-friendly text.” [0] At best, these things usually end up as decent programming languages for professionals that end-users avoid like the plague. At worst, they end up as giant dumpster fire where people are lured into a doom of unmanageable code, as it seems easy enough to build sloppily until it's overwhelming and unintelligible. The other features (declarative, functional, stro gly typed) give me some hope it's not a total disaster, but... [0] https://github.com/microsoft/Power-Fx/blob/main/docs/overview.md https://github.com/microsoft/Power-Fx/blob/main/docs/overvie...
- fallat 6y ago"Low code" - this was so confusing.
- EvanAnderson 6y agoI just ran into Power Automate for the first time yesterday. The UI looks glitzy. I think many users are going to be vastly underwhelmed and frustrated when they start interacting with third-party software by way of hand-puppeting the Windows UI, though. The quantity of brittleness and sensitive dependence on runtime conditions that this tool is going to generate will be supreme. A Customer (who frequently creates macro-laden Excel contraptions and byzantine nests of "linked" workbooks) was trying to automate some workflow between a third-party application and Excel. The third-party application is a bit of a "platform" (a "let's re-invent Microsoft Access" data roach motel type application) and uses lots of owner-drawn controls masquerading as common controls (with no keyboard shortcuts). He was struggling to get the UI automation functionality to do what he wanted. Having spent a "former life" writing VBScript automation code using "SendKeys", etc (and using various other macro automation tools) I explained that he was descending into the hell that is other people's Windows UI behavior, and that it often ends in frustration. I expect that this platform will end up, like so many before it, being used to create inscrutable edifice in many companies. That edifice will be abandoned when the knowledgeable party leaves a company and nobody new wants (or knows how) to figure out how the junk works, or will become wildly mission-critical and have massive amounts of money poured into it to keep it working, lest civilization collapse (e.g. "The Machine Stops").
- hestefisk 6y agoThe term “low code” really irks me though. Why not just call it RAD or, what it is, point and click programming with formulas? :)
- dash2 6y agoThis link is definitely better, as someone else posted below: https://powerapps.microsoft.com/en-us/blog/introducing-microsoft-power-fx-the-low-code-programming-language-for-everyone/ https://powerapps.microsoft.com/en-us/blog/introducing-micro... It may be unfair, but as an academic, when I read "not Javascript" I thought, "oh yeah, seems cool, surely anything is better than Javascript" and then it hit me that they were gonna base it on EXCEL. The nightmare platform to end all nightmares. The software that's responsible for austerity [1] and for people dying of Covid [2]. OK, I'm sure this is unfair. Maybe Excel's underlying design is a great computing platform? Comments from domain experts? [1] https://www.washingtonpost.com/news/wonk/wp/2013/04/16/is-the-best-evidence-for-austerity-based-on-an-excel-spreadsheet-error/ https://www.washingtonpost.com/news/wonk/wp/2013/04/16/is-th... [2] https://warwick.ac.uk/fac/soc/economics/research/centres/cage/news/23-11-20-nhs_test_and_trace_works_new_research_finds_but_the_data_glitch_which_led_to_over_15000_late_referrals_caused_more_than_125000_additional_covid_19_infections/ https://warwick.ac.uk/fac/soc/economics/research/centres/cag...
- voiper1 6y agoI heard about the excel length issue, but I thought that just meant their tracking numbers were off. I didn't realize that it affected tracing and quarantining! >The study’s most conservative estimates suggest that the failure to contact trace is associated with more than 125,000 additional infections and more than 1500 deaths.
- protomyth 6y agoExcel has a known row limit. Anyone blaming the row limit is trying to dodge blame. I have the exact same respect for those folks as I do for folks that misuse a hammer. I have written Perl scripts that dump the results of SQL queries into a spreadsheet and do additional tabs when the row limit is reached. The tool didn't do the damage, the tool using the tool did. IT people hate Excel because normal people can get work done, much like HyperCard and Flash before it. Perhaps someone will write a more IT friendly Excel without losing the users.
- dash2 6y ago
- jorgec 6y agoI use power-apps and Power-FX is a quite a mess. It is not used by power automate (it uses another different think) and it is a nonsense because both power apps and power automate works in tandem. It is not similar to Excel (but the use of functions that practically most languages support) and it is not VBA at all. It is regional specific and it is dumb. It is some sort of clone of Javascript.
- mring33621 6y agoPeople have been selling 'low-code' for decades now. Whether it's indented outlines, natural language-ish DSLs, drawing flow charts or UML, YOU ARE STILL WRITING CODE. So, the details that you sometimes need to know and/or change are hidden. The only one that I have used that seemed any good was Labview, and even that is not really 'low code', just 'different code'.
- beaconstudios 6y agolow code is just higher-level code, and that's fine. The whole point is to make the domain of programming more accessible to people who haven't made it their career.
- andreygrehov 6y agoTo start, what is low-code programming language?
- Mobleysoft 6y agoI've been working heavily in what I've dubbed the POWERStack for the past 13 months for a consulting client. Front end = power apps, back end = power automate + some cloud powershell (azure automation runbooks), database = sharepoint lists, sql (for initializing/iterating on complex lists) = local powershell. As for Power Fx, in one particularly fun PowerAutomate flow I crafted for them, I wrote the following one liner to display a "percent complete" value for a given employee with regards to trainings they'd taken vs. trainings they were expected to have taken for OSHA compliance purposes. Parsing it is left as an exercise for the reader: formatNumber(add(mul(float(div(sub( length(variables('TrainingsConducted')) , sub(length(split(variables('IncompleteTrainings'),';')),1)),float(length(variables('TrainingsConducted'))))),float(100)),float(0.5)),'##') Low code, indeed. Overall, I rate the POWERStack 8/10. It's not perfect, but it's fairly robust, not too difficult to reason about, and there are more than enough enterprise clients married to Microsoft to keep me in business for the foreseeable future. My only requests are to let me code Power Apps and Power Automate Flows fully in code-behind. I get that they're low-code tools by design, but in practice, they make things more difficult than they need to be for those of us who are quite happy to live in code, and I'd like to be able to build tools for automating the process for updating/adding functionalities to existing powerapps for those stakeholders that are on the absolutely-not-a-single-line-of-code-ever end of the development skill tree. Otherwise my business (in the Microsoft space) will remain bottlenecked by my time, and I'll have to dig elsewhere for my "set it and forget it" income stream. If you need help building things with these tools/in this environment, feel free to reach out.
- rowland66 6y agoLooks like Power Fx could benefit from a dose of Haskell point free notation. Might help eliminate some of those parenthesis.
- estsauver 6y agoI think the thing that this still misses is that there really needs to be a good story for the evolution out of a low code tool and into a framework and only-code tool. If the low-code tools are successful, they inevitably need an in depth integration into the rest of an engineering codebase. I think this is the gap that needs to be crossed, power apps and zaps are already plausibly useful for most new users, but are challenging to evolve out of.
- silvershell 6y agoI gave it a try and used a simple Excel file (with tables) to create a PowerApp. Customization wasn't too painful. However when more than one person needed to use it, it was locked because the Excel data source could not be accessed by more than one user at the same time :-(. I should have used Sharepoint lists instead. So, the simple thing of working with familiar apps like Excel and creating a form entry on top of it was disappointing.
- xen2xen1 6y agoI've dabbled in programming for years, know some C, C++, Basic, python.. If I wanted to start to make a real useful program I'd like to start with one to configure Windows settings to my liking.. Auto login, turn off ads, net reset. Anyone have suggestions on how to start? outside of a folder of Powershell scripts?
- _dwt 6y agoThere are so many things I like about this - leaning in to the idea that spreadsheet formulas are a functional programming language, and enhancing that with inferred static types, plain-text persistence, (semi-)structural editing. And then they go and re-enact Tony Hoare's billion dollar mistake, for no good reason that I can see: > Some language such as JavaScript uses the concept of an "undefined" value for uninitialized variables or missing property. For simplicity's purpose, we have avoided this concept, treating instances that would be undefined elsewhere as either an error or a blank value. For example, all uninitialized variables start with a blank value. All data types can take on the value of blank. This is the same spurious "simplicity" seen in Go, and I don't understand the appeal - especially coming from a team that clearly "gets it" when it comes to the importance of expressive types.
- beaconstudios 6y agoyeah it drives me wild that so many strongly typed languages (graphQL and typescript immediately come to mind) allow null/undefined values by default. I should have to opt-in to make a value optional! At least then both the compiler and I are aware of where I need to test for nullsy values.
- c-smile 6y agoOh, yeah. Been there, seen that. At some point, when Sciter (https://sciter.com https://sciter.com) was young it was named HTMLayout - pure HTML/CSS engine without script. At some point I've decided to add a bit of scriptability/formulas directly into CSS so you might say (in CSS) for example this: button#show { click!: $(someotherelement):visited = true; } C++ developers (initial users) were excited of such level of configurability that allowed to add logic without writing "real" code. And I've started getting requests for conditionals like if-then-else, functions and other stuff like that. So CSSS! (css script) was born: https://sciter.com/docs/core/csss!.htm https://sciter.com/docs/core/csss!.htm - it was even more powerful than Microsoft Power Fx - you can even define functions in it and operate with all data types of CSS. The excitement ended when I've got a bug report with HTML/CSS document where one of focus!: ... handlers in that CSSS! spanned more than a page of printed and ugly text. So I've said to myself: it is time for scripting - anything, even JS, but with regular code flows and organization.