[HN Gopher] Microsoft Power Fx - A low-code general purpose prog...
___________________________________________________________________
Microsoft Power Fx - A low-code general purpose programming
language
Author : Garbage
Score : 364 points
Date : 2021-03-03 03:23 UTC (19 hours ago)
(HTM) web link (github.com)
(TXT) w3m dump (github.com)
| tester34 wrote:
| damn, 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
| bigbluedots wrote:
| This sounds like another effort to enable managers to code like
| those pesky developers!
|
| Source: am both
| rattray wrote:
| Cool that msft is opening up a language like this out in the
| open!
| silvershell wrote:
| I 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.
| durnygbur wrote:
| Sweet. 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?
| thristian wrote:
| I 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.
| otabdeveloper4 wrote:
| Microsoft already has "Power Query", aka "M".
|
| This thing seems like more or less the same, except slightly
| different.
|
| Low (or even negative) value for the users but probably high
| value for the managers and programmers who hope to get a
| promotion out of this thing.
|
| Microsoft should just stick to Power Query and make it a real
| standard instead.
| a1o wrote:
| Ah, the even more confusing language. Just give me C# or a
| decent Python experience. Power Query is terrible.
| Isthatablackgsd wrote:
| May I ask what is your issue with PowerQuery? I found it
| extremely useful tool for transforming the data and display
| it the way I want see.
| silvershell wrote:
| Agreed. I got enthused about the Power Platform, with Power
| BI and Power Apps, mostly. With Power BI, you get a mix of
| Power Query M the DAX formula language, and then comes the
| power automate (flow) and power apps where you use this
| formula language that's still different. Too much to learn.
| I'm not even sure if the power automate formula language is
| the same as the one used in power apps. Confusing.
| NicoJuicy wrote:
| Power Bi is nice, but expensive.
|
| You need a costly instance as soon as you go more advanced.
| wjnc wrote:
| My firm is all-in Microsoft and I have to say it's not
| working. Power BI licenses are limited, Azure cloud cost
| are through the roof, anything you'd have run on a proper
| workstation in the old days is retired 'since we have
| cloud' (as are tools like SAS, MATLAB and other end user
| modelling languages). As a non-developer but technically
| inclined person I've tried to find courses in non-obvious
| MS-software but couldn't find anything worthwhile. The
| pushback I receive for suggesting R or Python for
| modellong, stitching and automation is intense even
| though all juniors learn these tools in university.
| Microsoft lock-in is just crippling.
| killjoywashere wrote:
| And 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.
| durnygbur wrote:
| I feel the deepest sorrow for anyone who will have to debug,
| troubleshoot, and extend byzantine overengineered apps.
| Iframes, multi-level loading spinners, piles of boilerplate
| code, browser lock-in, dozens of background calls to
| tracking, license and what-not services. The consultants paid
| by the hour, creating first mockups with this tool will have
| fun, no doubt. Non IT-savvy companies with too much cash will
| have an illusion that they have a working application, no
| doubt.
| ryanjshaw wrote:
| Your fears are not applicable in my experience. Model-
| driven PowerApps are schema and workflow driven, using one
| set of tools. The plumbing is all standardised.
| Authentication, authorisation and license management
| integrates directly into the M365 infrastructure that large
| organisations already have. As for browser lock-in, this
| makes no sense - Microsoft Edge has moved to Chromium. In
| my experience, the trend is for internal IT to use these
| tools directly, but it wouldn't matter even if a consultant
| did the work - the solutions are built on a standardised
| stack fully owned by the business. I wouldn't be surprised
| if a significant percentage of LOB applications are built
| on this platform in the next decade.
| tanseydavid wrote:
| >> As for browser lock-in, this makes no sense -
| Microsoft Edge has moved to Chromium.
|
| In practice, it absolutely makes a difference.
| pjmlp wrote:
| The Xerox PARC and VMS worlds are a much better option.
| ryanjshaw wrote:
| Please share how a business user with spreadsheet-level tech
| skills is able to build a line of business application on
| *nix? Because that's what PowerApps makes possible.
| vxNsr wrote:
| To further this point, I know someone (who had little to no
| code exp) who at the start of this pandemic built an entire
| app to help his company deal with processing attendance and
| all the other things that suddenly appeared out of no
| where, using nothing but PowerApps and other O365 products.
| jonsen wrote:
| You could interpret the comment as:
|
| Students, our future developers and power users, should not
| be locked up in their perspective, but be set free to
| choose the best for their future endeavors.
| ryanjshaw wrote:
| Sure, use the best tool. But the reality is nothing comes
| close to what Microsoft is building. As a consultant,
| when an organisation is already heavily invested in M365
| then a PowerApp-based solution is a no brainer except for
| specialized requirements (eg low latency, complex or big
| data processing, etc.) The pricing model seems to be the
| only major issue I can see right now.
| jonsen wrote:
| I can't argue with that. That was not my point.
| fsloth wrote:
| Microsoft has a lots of good stuff. Judging them by their
| worst offering is like judging *nix by _it 's_ worst.
| AnIdiotOnTheNet wrote:
| Because as we all know, learning the ins and outs of commands
| designed for teletypes with 50 years of incremental
| evolution, where the only common interchange format is ASCII,
| and all sitting atop kernels that think fork() is a good
| idea, is extremely pleasant.
| jemfinch wrote:
| This kind of vapid triumphalism adds nothing to the
| conversation.
| tanseydavid wrote:
| I 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.
| jonsen wrote:
| Oh, it did add something for me. It actually triggered som
| perspective thoughts I otherwise wouldn't have had.
| Zanni wrote:
| Here's an overview: 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 wrote:
| This 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 wrote:
| Does 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-d...
| nwah1 wrote:
| Microsoft 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.
| andreygrehov wrote:
| To start, what is low-code programming language?
| triggercut wrote:
| I'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]
| estsauver wrote:
| I 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.
| hypermachine wrote:
| I 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 wrote:
| Why?
| hypermachine wrote:
| Because 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.
| hypermachine wrote:
| Since Python is the most popular beginner language, I am
| also inclined to point out that their standard for "rapid
| prototyping" is Django. Your average Excel user is more
| likely to throw together a quick app in VB than study
| Mozilla's "Your Local Library Website" Django tutorial just
| to build a CRUD app.
| pjmlp wrote:
| It is still trivial in VB.NET.
|
| In fact what I have learned doing a couple of consulting
| projects for a life sciences companies, is how many of
| Excel VBA powerusers eventually get IT to give them VB.NET
| and carry on from there.
|
| They don't think twice about adding the DLL/COM libraries
| required to access the laboratory data readers for
| accessing cell data values.
| chaostheory wrote:
| > Dependency management problems
|
| VBA's biggest weakness is that its open source community
| and ecosystem is non-existent, so you always end up
| remaking the wheel. It's just easier making either python
| or javascript the default franca lingua.
| selimthegrim wrote:
| I have to say that I've seen it done with Blockpad
| (https://blockpad.net) but for engineering workflows.
| fmakunbound wrote:
| I think this is was tongue and cheek, right? I can't tell
| anymore...
|
| > VB6/VBA that can run on the web
|
| This was possible circa 1999 with whatever Internet Explorer
| was around back then. One would put VB in the content type of
| the script tags. Also TCL was an option in other browsers.
| hestefisk wrote:
| The term "low code" really irks me though. Why not just call it
| RAD or, what it is, point and click programming with formulas? :)
| [deleted]
| kevingadd wrote:
| The 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 wrote:
| FWIW, System.Decimal is fixed-point, not floating-point.
| mrbonner wrote:
| "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 wrote:
| Why 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 wrote:
| If 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.
| teddyh wrote:
| Ah, the no-code dream:
| https://www.commitstrip.com/en/2020/10/07/the-no-code-dream/
| rchaud wrote:
| It'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 wrote:
| sorry 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.
| breakfastduck wrote:
| Retool
|
| https://retool.com/
|
| Edit: not really usable for anything customer centric, which on
| a re-read of your comment seems to be what you're going for.
| Nilef wrote:
| Hey, 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 wrote:
| Hey, 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 wrote:
| Yeah, 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/
|
| Finally, I've not looked at this much but it may help:
| https://www.nocode.tech/lessons/building-user-
| authentication...
| wiso wrote:
| Looks like Yaml based programing language.
| jcun4128 wrote:
| Not 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.
| spawarotti wrote:
| I 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-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 wrote:
| Possibly 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) 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/.)
| dragonwriter wrote:
| I 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/overvie...
| _dwt wrote:
| There 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 wrote:
| yeah 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.
| kpmah wrote:
| This 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
| trynton wrote:
| "Power Fx" is going to be a big advance on Python /s
| dang wrote:
| " _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
| xen2xen1 wrote:
| I'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?
| jgimenez wrote:
| This 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.
| dash2 wrote:
| This link is definitely better, as someone else posted below:
| 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-
| th...
|
| [2]
| https://warwick.ac.uk/fac/soc/economics/research/centres/cag...
| prionassembly wrote:
| Eh. Most Excel horror stories have to do with putting it "into
| production". Excel is really a prototyping tool -- and it has
| enabled countless millions upon millions that were just not
| going to read SICP (and get all stakeholders to read SICP) to
| attack business problems.
|
| Now, if programmers are unable to understand the logic behind
| Excel models to "productionize it", then we have a problem with
| the education of programmers.
| protomyth wrote:
| Excel 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 wrote:
| I'm sympathetic, especially given this was core
| infrastructure for a nationwide emergency. But, how many
| people _do_ actually know the row limit? It 's easy to say
| experts know it. But is it discoverable from within the
| interface? If you're a management consultant Excel jockey, is
| there a way you would have learned about this before tripping
| over it?
| protomyth wrote:
| I do believe there is a huge warning when you do the
| import. I will verify when I get to work.
| protomyth wrote:
| Tried to open a 2 million row file and got an error
| dialog that must be clicked to continue with the text
| "Alert File not loaded completely."
|
| Excel's limits https://support.microsoft.com/en-
| us/office/excel-specificati...
| NicoJuicy wrote:
| It's literally on the first thing that pops up when you
| search for "limitations excel".
|
| A consultant should know his tools, that's what you pay him
| for.
| vsareto wrote:
| >IT people hate Excel because normal people can get work done
|
| This is arguably more a business problem, but there's real
| issues when people coming/going and then having to get
| familiar with dozens-hundreds of spreadsheets. Maybe if
| they're good at Excel, they just pick it up easily, I dunno,
| but I've rarely seen stuff like confluence documentation and
| edit history and other supporting docs for spreadsheets that
| are critical to the company. It kinda feels like they rely
| more on tribal knowledge than devs.
|
| Nothing about our languages or tools constrains devs to
| necessarily do this too, we've just got a culture of doing
| that stuff because we know how awful life is without it.
| Maybe it's different for spreadsheet people though. I could
| just keep the business code on a single hard drive and deploy
| by copy-pasting over a network share or through email, but
| you'd rightly call me mad.
| voiper1 wrote:
| I 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.
| scanr wrote:
| The pro-code option is interesting:
| https://github.com/microsoft/Power-Fx/blob/main/docs/overvie...
|
| yaml + Power-FX
| gervwyk wrote:
| I 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
| bradhe wrote:
| VBA++?
| c-smile wrote:
| Oh, yeah. Been there, seen that.
|
| At some point, when Sciter (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 - 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.
| ablekh wrote:
| From 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]
| Brendinooo wrote:
| From 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 wrote:
| I have seen that part. But it does not mean that the language
| will be feasible to use outside Microsoft Power Platform.
| fallat wrote:
| "Low code" - this was so confusing.
| Mobleysoft wrote:
| I'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(variab
| les('IncompleteTrainings'),';')),1)),float(length(variables('Trai
| ningsConducted'))))),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 wrote:
| Looks like Power Fx could benefit from a dose of Haskell point
| free notation. Might help eliminate some of those parenthesis.
| corysama wrote:
| Reminds me of Light Table
| https://www.kickstarter.com/projects/ibdknox/light-table
| EvanAnderson wrote:
| I 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").
| nyanpasu64 wrote:
| Power-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://github.com/Logicalshift/flo_binding
|
| - https://raphlinus.github.io/ui/druid/2019/11/22/reactive-ui....
|
| - 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 wrote:
| Well, the animation under "Basic usage" at
| 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...
|
| 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 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-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-
| 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-...
| 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.
| nyanpasu64 wrote:
| I don't see what your child comment has to do with my parent
| comment.
|
| - You brought up "OnSelect" and binding "this" in JS, but
| they don't seem related to picking one way to propagate state
| through a GUI (either "push", "pull" (signals and slots),
| pseudo-immediate-mode and state diffing (React), FRP,
| property binding, ReactiveX, or something else).
|
| - https://blog.maximeheckel.com/posts/swiftui-as-react-
| develop... does discuss state, but you brought it up in the
| context of app layout. App layout is another area with
| multiple choices, but it's more linked to visual design, and
| less to functional correctness (which is vulnerable to state-
| propagation bugs which I was talking about).
|
| - Automated code updates, and test generation, are not
| related either.
| ampdepolymerase wrote:
| Is this what Chris Granger's Eve programming language should have
| been?
| mathgladiator wrote:
| OoOooOoooh, 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
| anewhnaccount2 wrote:
| I 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.
| chovybizzass wrote:
| smh
| vsskanth wrote:
| Wish 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
| eyelidlessness wrote:
| They 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 wrote:
| I 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...
| rowland66 wrote:
| I think that there are alot of advantages to a using a
| declarative/functional programming style for these types of
| tools.
| markus_zhang wrote:
| Because it's more fun and ownership for the developing team.
| reilly3000 wrote:
| I 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 wrote:
| Because 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.
| vsskanth wrote:
| Thanks for your insight.
| datavirtue wrote:
| So python is this super easy language to teach kids how to
| code and then all of a sudden it's too complicated for adult
| SMEs?
| 7952 wrote:
| Probably being cynical. But I wonder if the purpose of
| PowerApps is to create a platform that seems safe to IT
| managers in corporations. Using a real language makes people
| stress about security and maintainability. The simplicity makes
| people assume that the product will only be used in safe ways.
| Whilst semi-supported "shadow IT" types use it in unexpected
| ways.
| freeone3000 wrote:
| Microsoft has a lot of programming language designers. :)
| gm wrote:
| That 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".
| karmasimida wrote:
| Low-code and General is not compatible.
|
| Low-code is application specific configuration, with some control
| flow primitives
| mring33621 wrote:
| People 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 wrote:
| low 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.
| joenathanone wrote:
| I love Power Automate, just created a job application and
| onboarding process using Power Automate. Low code, great
| functionality.
| im_down_w_otp wrote:
| Huh, 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 wrote:
| I 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 wrote:
| I 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 wrote:
| The issue is with the GCC version of O365
| jorgec wrote:
| I 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.
| oraphalous wrote:
| We 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.
| lvice wrote:
| My opinion on the Power Platform is:
|
| - Canvas apps: worth it only for very simple applications that
| interact with another MS datastore (Sharepoint, CDS/Dataverse)
| and services. If you mostly need to interact with custom APIs,
| a simple custom webapp is probably a safer choice.
|
| - Power Automate: stick to very simple flows, take advantage of
| the connectors but avoid at all cost complex business logic
| within the flow itself
|
| - Model-driven apps: more interesting in my opinion. They
| effectively are mini-instances of Dynamics CRM, and you get A
| LOT of functionality out of the box. You can't tune the UI
| much, but you get the benefit to build an "interactive
| database" very quickly, with support for RBAC system, OData
| REST APIs, Views, Workflows, C# plugins, dashboards. If you
| need an internal application, used only by a few people
| (licensing), where you need an interactive data-store without
| complex requirements on business logic and custom UIs, then I
| think Model-driven apps can be terribly effective. Now, if only
| the licensing wasn't so damn complicated...
| dfxm12 wrote:
| Mentioning custom connectors, importing dependencies, outside
| ecosystems, lower level aspects...
|
| It sounds like your app was not so simple.
| gnud wrote:
| My experience as well. And you don't even go into the whole
| licensing headache.
| the_only_law wrote:
| I 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 wrote:
| > 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.
| marcus_holmes wrote:
| I have a war story about this.
|
| I was not having the best time mental-health-wise anyway
| about 10 years ago. I was freelancing and writing an
| application for a doctor's surgery in C#, using some of the
| cool new toys they'd produced for it. Including Entity
| Framework. Which came with lazy loading of object properties,
| cool. Except I kept bumping into cases where the object
| hadn't lazy-loaded, and data I knew should be there, wasn't.
| Digging in through myriad stacks of documentation and notes,
| all of which said that data would be loaded if it was asked
| for without needing to load it, I finally bump into a small
| note, obviously written by an actual dev, that cheerfully
| pointed out something like "to ensure your data is actually
| loaded into the object, you'll need to call the loadData()
| method before using it" (I paraphrase from memory).
|
| I lost it. I completed that project, then uninstalled
| Windows, installed Ubuntu, and started learning Go (I
| intended to also learn Rails and Python, but fell in love
| with Go's simplicity and haven't moved on since).
|
| It actually helped with my mental health. Realising that at
| least part of my problem was that people were professionally
| lying to me was an insight I needed.
|
| I'm never trusting a Microsoft technology again. It's always
| nice and slick on the surface, and then a twisting pile of
| mess underneath.
| catmanjan wrote:
| Are you maybe talking about .Include() which you need to
| call when loading related entities?
| marcus_holmes wrote:
| To be honest I can't remember (and I'm definitely not
| going to look). It was pretty early in the development of
| EF - I understand that this problem no longer exists and
| lazy loading works fine now.
|
| Which I would totally have understood and forgiven if
| they'd been honest about it. But all the documentation
| was lying, except this one tiny bit buried deep in the
| tech docs. That wasn't the first time I've encountered
| this phenomenon in Microsoft tech. It seems there's a
| mis-communication between the documentation team and the
| actual dev team, and they end up documenting what
| _should_ happen instead of what _actually_ happens.
| shawnz wrote:
| Why do you keep describing them as "lying"?
|
| You said yourself that the lazy loading actually did work
| most of the time except for these problem cases, right?
|
| So doesn't that sound more like it might just be an
| unintentional bug or maybe you had your environment
| configured differently from what the docs were expecting?
|
| It really sounds to me like you threw the baby out with
| the bathwater over a small bug, when bugs of a similar
| magnitude will likely be present on every other platform
| too (including documentation bugs)
|
| I've never used EF or developed business apps in .NET,
| but I have used similar technologies like Hibernate in
| Java and I think you are basically describing standard
| caveats with any ORM. Lazy loading is often a non-obvious
| behavior.
| tanseydavid wrote:
| Do you work for MS?
| shawnz wrote:
| No, but I do have a longstanding annoyance with the
| general form of argument in which technologies are
| dismissed just because they have some weird edge cases.
| All substantial technologies have weird edge cases.
| marcus_holmes wrote:
| I call it lying because that's what it is.
|
| If your documentation says in several places that your
| system does X, but it doesn't, it does Y, then that's
| lies.
|
| It might be caused by a bug, and what you're documenting
| is intended behaviour not actual behaviour. But then you
| need to say that somewhere - something like "We expect
| the system to do X but we haven't actually tested it so
| it might not". Not saying that, and instead saying "the
| system does X" is lying.
|
| And yeah, I stopped using ORMs too :) They just get in
| the way.
| shawnz wrote:
| With this definition, every software which has
| undocumented bugs (i.e. every software) is lying. That
| doesn't seem useful to me and I don't see how the problem
| is solved by moving away from EF either.
| marcus_holmes wrote:
| No, I think there's a difference between undocumented
| bugs and professional documentation that very clearly
| documents behaviour that doesn't actually match what the
| system does.
|
| As others have said, it's a problem that's particularly
| apparent with Microsoft - it feels disjointed. Like the
| documentation team read a different spec than the
| development team.
| useerup wrote:
| LoadData is not lazy loading. It is explicit loading.
|
| Maybe you should have digged a little further. To lazy load
| related entities you would have to declare the navigational
| properties virtual.
|
| https://docs.microsoft.com/en-
| us/ef/ef6/fundamentals/proxies Note that
| the EF will not create proxies for types where there is
| nothing for the proxy to do. This means that you
| can also avoid proxies by having types that are sealed
| and/or have no virtual properties.</quote>
|
| This is a common rookie mistake, unfortunately.
|
| Entity Framework is an absolutely top-tier ORM (if you like
| ORMs). Because lazy loading is frowned upon by some purists
| (and DBAs), EF also support controlled/eager loading where
| nothing happens (lazily) behind the scene.
|
| You can - for instance - in the query use <code>.Include(x
| => x.RelatedEntity)</code> to load a related entity eagerly
| without going back to the database server to load the
| related entity for each row (the so-called N+1 problem).
| marcus_holmes wrote:
| Like I said, this was 10 years ago. It was not as
| refined. I understand (from others) that it all works
| fine now. I don't know, I'm never going back.
| shawnz wrote:
| When you switched to Ubuntu 10 years ago, I assume you
| weren't thinking about how refined Ubuntu was 10 years
| prior to that.
|
| So why would the state of the product as it was 10 years
| ago matter in your decision to switch back today?
| marcus_holmes wrote:
| Because Linux is open about everything, but particularly
| about what works and what doesn't.
|
| Working with Microsoft tech felt like being gaslighted by
| an abusive partner. Their documentation absolutely did
| not match what their tech actually did.
|
| I'm really happy working in Go on Linux. Why would I want
| to switch back?
| brobdingnagians wrote:
| If the thing which would be intuitively obvious to 90% of
| people in your audience doesn't work, then your framework
| is wrong, not the people. It shouldn't take a mountain of
| documentation to clarify a basic feature.
| shawnz wrote:
| There can be many "basic features" in a large framework
| that can't be made more intuitive without making the
| other features less intuitive.
|
| Just because there are some unintuitive edge cases which
| you can identify in a technology doesn't mean the
| technology is "wrong". Pick your favourite technology and
| I am sure you can find many such unintuitive edge cases
| if you purposefully look for them.
| brazzledazzle wrote:
| I've had similar experiences with Microsoft's
| documentation. My memory is fuzzy but one instance I can
| recall the documentation was clearly what was meant to be
| in the final product but most definitely was not what
| shipped. To make matters worse the docs as they were would
| often result in a configuration that worked on the first
| sync but subsequently failed or even caused the service to
| reach a permanent state of limbo where it could never
| finish starting. This left a lot of people thinking things
| were broken for other reasons.
|
| They took ages to for them to finally update the pages. In
| fact it took a well known consultant, one of their mvps,
| writing not just documentation that worked, but also
| thorough instructions on how to fix the predicament
| Microsoft got you in. I wouldn't be surprised if the team
| writing the docs were completely lost until they read his
| blog. The service was just one component but it was
| ridiculously complex for what it did. Sometimes I wonder if
| they crammed the service (Forefront Identity Manager) in to
| save the team working on it since they cancelled the
| standalone version of it.
|
| Their docs can be good and are certainly improving but it
| does still feel like disjointed teams doing their own thing
| sometimes.
| tanseydavid wrote:
| Disjointed is a perfect description for an awful lot of
| what MS produces.
|
| There is seldom any product from them that feels
| consistent and cohesive in its design and in the ways in
| which you can interact with it.
| thereddaikon wrote:
| My assumption on this site is that most people talk from
| the perspective of devs. So I assume your experience with
| Microsoft's documentation is also on the dev side of
| things. I can't speak to that, I'm a sys admin so I have
| a different experience. And my job has me approaching
| technology from the opposite end. From what I have seen,
| Microsoft's is generally pretty good. Not the best but
| definitely far from the worst.
| brazzledazzle wrote:
| I'm afraid not. Those docs would have been used by both
| sides, especially for non-prod environments but they were
| definitely operations oriented.
|
| I would agree they're usually good but when they were
| bad, they were real bad. And bad seemed to happen a lot
| more outside of the "big" internal fiefdoms at the time
| (Desktop, Server, AD, Exchange, etc.).
|
| They did seem to hit a rough patch during the transition
| but the only thing I've seen is gaps here and there due
| to what I assume is incongruity between teams. Like tools
| being moved from an installer and therefore the installer
| docs but corresponding docs for how to get those tools
| not being created/updated elsewhere.
| gkhartman wrote:
| I've experienced similar when working with android's api.
| Docs say x should work, but it's just not happening. Five
| hacks later, and you've got a working app that feels
| choppy. Granted this was back in the 4.4.4 days, so things
| may have gotten easier since then.
| Opinionator2021 wrote:
| _> It 's always nice and slick on the surface, and then a
| twisting pile of mess underneath._
|
| You kind of just described Linux, Unix, modern Web dev, iOS
| dev, Android dev etc.
| boogies wrote:
| > You kind of just described Linux, Unix, modern Web dev,
| iOS dev, Android dev etc.
|
| More devs seem to have this opinion of Microsoft
| technologies though. Their desktop OS is the most dreaded
| as a platform, and the most dreaded of any OS except for
| Android (by 4%0, and of course devs already killed
| Windows Mobile)1. And even more relevant to the link
| we're discussing, another relatively low-barrier-to-entry
| language they created is the single most-hated
| programming language there is2.
|
| 1https://insights.stackoverflow.com/survey/2020#technolog
| y-mo... 2https://insights.stackoverflow.com/survey/2020#t
| echnology-mo...
| marcus_holmes wrote:
| Yeah but no. Linux is pretty open and honest about the
| twisting mess. There are years-long discussions about
| them. The Xorg/Wayland thing has been surfacing a few
| times on HN recently.
|
| If you search for a Linux problem, you'll get 50
| different people telling you 25 different ways of fixing
| it, most of which work.
|
| If you search for a Microsoft problem, you'll get 50
| pages of corporate bullshit that pretend everything's OK.
| You have to ignore those and dig further to find some
| unofficial blogger or random dev post that actually tells
| you something useful.
|
| Also looking at you, Apple - less bullshit and more
| honesty in your support pages please
| a1o wrote:
| > you'll get 50 pages of corporate bullshit that pretend
| everything's OK
|
| Add Android on this category too. They also do videos to
| be even more infuriating!
| AnIdiotOnTheNet wrote:
| > If you search for a Linux problem, you'll get 50
| different people telling you 25 different ways of fixing
| it, most of which work.
|
| Not in my experience. They may have worked for some
| version of some distro, but it is almost always not the
| one I'm trying to fix the problem on.
|
| > If you search for a Microsoft problem, you'll get 50
| pages of corporate bullshit that pretend everything's OK.
| You have to ignore those and dig further to find some
| unofficial blogger or random dev post that actually tells
| you something useful.
|
| Unfortunately that is also pretty accurate, and it has
| been getting worse since Windows 10, resembling more and
| more the problem with searching for solutions to Linux
| issues. Does this fix still work for 1901 or did it only
| work for 1607?
| stonemetal12 wrote:
| I am pretty sure the reason Stack Overflow was created is
| to provide help understanding what MS code actually does vs
| what MS documentation says it does. They just happened to
| hit on a formula that was useful for other people too.
| alexjplant wrote:
| I've always like C# for its multi-paradigm nature, good
| runtime, and excellent collections framework. It's
| basically what Java could/should have been.
|
| Unfortunately the legacy tooling is infuriating to work
| with. It's been steadily improving for the past few years
| with the advent of .NET Core but in practice this doesn't
| mean much. If you work at a ".NET shop" then odds are that
| the devs that work there have been firing up Visual Studio
| and creating solution files for the better part of two
| decades; good luck getting them to use dotnet or Docker
| Compose, not to mention the long-lived legacy apps floating
| around that are still built that way and live on IIS in a
| corporate datacenter someplace.
| madhadron wrote:
| Yes, C#'s greatest weakness is the tooling. There's no
| autoformatter, for heavens sake. (There are two in
| theory, but one is prettier's support for an old version
| of C# and one just doesn't work). And, yes, solution
| files and project=assembly are both absurd.
| phillipcarter wrote:
| There's autoformatting tools in C# editors (VS, VSCode)
| and also the _dotnet-format_ command-line tool for non-
| editing environments. Have you tried these?
| NicoJuicy wrote:
| .ToList() executes the query.
|
| If you're trying to lazy load after that, you will get
| significant performance issues.
|
| Otherwise, I've created an erp+e-commerce on EF and didn't
| encounter much issues.
|
| One time, i had an performance issue case and detailed the
| issue on the nuget repo. Next release had a workaround.
|
| https://github.com/dotnet/ef6/issues/115
| Lapsa wrote:
| I remember participating in a Microsoft sponsored meeting
| when LINQ to SQL just came out. Failed to have an answer on
| how to reasonably implement paging.
| alexjplant wrote:
| Were .Skip() and .Take() not implemented?
| niutech wrote:
| There is an open source alternative to PowerApps - Corteza Low
| Code: https://cortezaproject.org/technology/core/corteza-low-
| code/
| switch007 wrote:
| > - all assume that your data all lives in Sharepoint or some
| other MS resource
|
| Pretty much this. Use MS Power platform exclusively for
| reading/writing from MS things and you should be OK. Venture
| beyond that and it's painful.
|
| A lot of stuff seems to have grown out of (or is just layered
| upon) Sharepoint and Dynamics, so there is a lot of synergy
| there.
| durnygbur wrote:
| > Use MS Power platform exclusively for reading/writing from
| MS things and you should be OK.
|
| Through Edge browser. Corporations think "it's secure" to
| lock stuff to work in one browser and MS is more than happy
| to deliver this.
| switch007 wrote:
| I have to flip between Chrome and Firefox depending on
| which bugs in which product I need to avoid :-)
|
| My favourite one is a bug in Flow where you paste a string
| and the entire UI goes in to an error state (can't even
| save) so you have to reload and lose any existing changes.
| enumjorge wrote:
| Are you talking about the Chromium-based Edge or the older
| one?
| arcturus17 wrote:
| I had a very similar experience. Also, the interfaces are
| hideous and static - even though this was an internal product,
| the client wasn't happy. If I'm going to have to customize it
| so much to make it look decent, we're back to hi-code.
| Demoneeri wrote:
| I'm Power Platform architect, I have been working with Dynamics
| for more than 10 years. Your post feels more like you were
| thrown on a project where you didn't know the stack.
|
| I've seen those projects where I'm brought in to fix some
| internal project gone wrong because they took internal softdev
| with no knowledge of a platform that exist for more than 15
| years.
|
| Meanwhile, I shipped whole systems in half the time you took to
| "roll your own".
|
| Just try to roll your own ERP/CRM, we saw plenty of time how
| that goes.
| Joeri wrote:
| Ok, so, what should a software dev who hasn't worked with
| power platform before look at to get up to speed on the
| proper way to use it with their own api's?
| Demoneeri wrote:
| Like any other platform, it's hard to get started. If you
| are curious, you can start with this free training
| materials: https://docs.microsoft.com/en-
| us/learn/certifications/exams/...
|
| Or go directly into this module:
| https://docs.microsoft.com/en-us/learn/paths/integrate-
| power...
| nojito wrote:
| Flipside we rolled out over a dozen powerapps and they work
| great. Our Engineers can now focus on solving bigger/tougher
| problems instead of being tasked with making simple crud apps
| 24/7
| tanseydavid wrote:
| Would you be kind enough to enumerate simple descriptions of
| these powerapps you rolled out?
|
| Maybe just a few of the "over a dozen" to give the rest of us
| a sense of the sort of apps that can be successfully created
| in this environment.
|
| Was there anything that was less-than-perfect particular from
| the perspective of the end-user?
|
| Has your company decide to use powerapps for all CRUD
| requirements going forward? This seems logical based on your
| assessment.
| dustinmoris wrote:
| Sounds like literally _EVERY_ other Microsoft technology
| /language/framework/product.
| Phillips126 wrote:
| I cannot agree with you enough. Our company hired a new manager
| that had a background "familiarity" with PowerApps. He
| requested that I (a software developer) create a PowerApp that
| would be used by the company, essentially a ticketing system. I
| figured with my ~decade experience in developing complex web
| applications from the ground up, this would be a piece of cake.
|
| What an abysmal way of developing applications. Everything
| (containers, widgets, etc.) is basically SVG's and your
| application looks like your designers couldn't use anything but
| MS Paint. Creating more complicated interactions with buttons
| and other UI elements was a pain to develop and making the UI
| responsive was a nightmare. The generated HTML was insanely
| ugly and the application was very slow/sluggish feeling. After
| fighting for a couple weeks, I began to (behind the scenes)
| build out a quick web application alternative to pitch. Long
| story short, he LOVED the web app version and that is what we
| are still using today company wide.
| pwdisswordfish0 wrote:
| > Everything (containers, widgets, etc.) is basically SVG's
|
| Controversial opinion: vector-based UI widgets are the right
| way to do web apps. Instead of all the existing framework
| approaches that ultimately produce HTML, both developers and
| users would be better served by using HTML for the elements
| on a screen that correspond to documents, but the web app's
| "chrome" should use SVG. Most of the complications of
| frameworks come from a blind spot on the part of developers,
| who continually select a tool with a high impedance mismatch
| to their goal (producing an app). This blind spot on the part
| of developers leaves this area under-explored, and in turn
| there's under-investment in the specs / on the part of
| browser makers to eliminate pain points in the way that
| developers are actually using the platform for their work.
| karmakaze wrote:
| Interesting, if SVGs make sense, then a new game-engine-
| like client makes more sense as a general delivery
| platform. Maybe Dart/Flutter/Fuchsia isn't far off.
| blacktriangle wrote:
| I went down that road for awhile. You start running into
| problems when you research all of the default behavior that
| the built-in widgets have, and this is even before you get
| to accessibility issues.
|
| I love the idea of punting on HTML and writing a ground-up
| SVG UI toolkit, or even a WebGL based on if you're feeling
| ambitious, but giving up on the built-in browser behavior
| and all of the automation tooling around interacting with
| HTML is a non-starter for most use cases.
| corytheboyd wrote:
| How do you make this accessible?
| beaconstudios wrote:
| Can you use ARIA attributes on inline SVG in a Html
| document? That would do the trick nicely if it works.
| beaconstudios wrote:
| The problem is that SVG doesn't AFAIK support layout
| constraints - you'd have to essentially recreate flexbox
| and grid in JS, and God forbid you wanted to make the
| design responsive!
|
| I agree with you in principle that SVG is a better match to
| app UIs, but we'd need a good layout story for that to
| happen. And I'm using SVG for much of my own application
| interface!
| DaiPlusPlus wrote:
| You should be able to use CSS (incl. grid, flex, etc)
| within an SVG context though.
| beaconstudios wrote:
| ideally, an SVG layout optimised for web app design would
| be somewhat more flexible than just grid and flex - such
| as anchoring an element to 2 other separate parents (or
| in other words, supporting a directed graph rather than a
| tree). A pure constraint system would be nice, but is
| probably not viable if fast rendering is important
| (which, it is).
| alexfromapex wrote:
| If history tells us anything, you can assume any time Microsoft
| creates anything it's to try and get you stuck in their
| ecosystem
___________________________________________________________________
(page generated 2021-03-03 23:03 UTC)