I get that calling code by its name can make it sound scary, but this whole notion of it being 'easy because it is not code' seems to be a big fat lie for comfort. Same goes for the magic no-code systems where code is replaced with 'expressions' or graphical 'workflows' which essentially is exactly the same thing, only shaped slightly differently.
This makes me wonder if it wouldn't be much better if we could focus on making people be able to code and have more 'coding capacity' instead of having less of that capacity and then reducing it even more by using some of it to create 'let us pretend this is not code'-applications.
Microsoft has some initiatives exploring it[2] (including the limited autocomplete in Excel as a toy version of the concept), but this is not it.
[1] https://en.wikipedia.org/wiki/Programming_by_example
[2] https://www.microsoft.com/en-us/research/wp-content/uploads/...
VBA's potential as an attack vector results in it being unavailable or heavily restricted in many corporate environments through stuff like Group Policies[1]. And I've worked with some clients whose IT goes a step further and completely blocks sending or receiving emails with .xlsm[2] attachments.
Since lambda-defined logic is all formula-based, it's not considered 'code' in that sense and can be used and passed around as a standard Excel file without any of the VBA-oriented restrictions. So you can approach your Excel workbook more like a programming project, centrally defining your complex logic once and referencing it elsewhere every time you want to use it. This is super helpful for audibility and maintenance, while staying within the bounds of what'll be applicable/usable across any Excel environment.
[1] https://4sysops.com/archives/restricting-or-blocking-office-...
[2] .xlsm is the extension Excel uses for spreadsheets containing VBA code
I think those are basically Excel formulas, which in context, are not what Excel users would consider “code”.
The argument I've heard against doing this sorta thing was that they wanted to keep Excel simple enough to not alienate many non-technical users, sorta forcing it to be a simple, accessible environment for everyone.
It'll be neat to see how the user-base adapts to a more powerful feature-set. I mean, it'd seem like a lot of folks will be thrilled, finally having some extra functionality without having to use macros/VBA/VSTO/COM/etc., though how might non-technical folks feel about a coworker sending them a spreadsheet with function-values?
I don't really see the addition of new advanced functionality changing that paradigm.
That's the biggest issue with LET / LAMBDA at the moment. Users are terrified of the name manager and simply do not understand what they are for or what "scope" means. On top of that, copying content from one workbook to another leads to names being copied over as well, which is how I often end up with ancient names such as FXRATE1997
It could of course be a reflection of my teaching ability, but it always seems to be a tough one.
Isn't it a feature of natural languages to have the same word assume different meanings depending on where it's used? The concept translates nicely, and in PLs it's completely explicit whenever this happens.
- You have a special area or special kind of sheet, where some cells are inputs, one is output, and all others are used for temporary calculation
or:
- You define your calculation as usual, in B5: = 10*A5 - then in C5:
=MYLAMBDA(B5; A5)(3)
Meaning: Take the formula in B5, treat A5 as an argument, and return a function. Then call this function with the argument 3.The benefit of this? You can have an area in your sheet where the user can enter formulas and multi-cell-calculations, not just numbers, and they are applied elsewhere.
On that note, TFA claims that the introduction of LAMBDA finally makes Excel Turing complete, unlike the kind of Turing machine simulators the stick figure is referring to in the XKCD comic...
> (In contrast, Felienne Hermans’s lovely blog post about writing a Turing machine in Excel doesn’t, strictly speaking, establish Turing completeness because it uses successive rows for successive states, so the number of steps is limited by the number of rows.)
Also, does this:
> With LAMBDA, Excel has become Turing-complete.
sound like a threat to anyone? :)
https://en.wikipedia.org/wiki/History_of_the_Scheme_programm...
=LAMBDA(global_function_name, [cell_input_1, cell_input_2, ...])
Wouldn't this be a cleaner design? Trying to deal with cells whose formulas are way too long to be put in a single cell is Excel's Achilles Heel (and a footgun that you are nearly guaranteed to enounter sooner rather than later). This LAMBDA proposal as written seems to exacerbate that problem, not improve it.
If I'm writing a longer formula that's going to be tough to read, I make it multiple lines and add spaces at the start of the lines for indentation. Makes readability so much better!
Lambda: The ultimate Excel worksheet function - https://news.ycombinator.com/item?id=25923628 - Jan 2021 (4 comments)
(Is the title a deliberate call to that site, or something even older?)
What's next? A full implementation of scheme? Common lisp?
"A paper written with Ronen Gradwohl on Lisp and Symbolic Functionality in an Excel Spreadsheet: Development of an OLE Scientific Computing Environment, August, 2002. (code available on request) "
Also, Emacs's org-mode implements some basic spread-sheet utilities, so...
https://techcommunity.microsoft.com/t5/excel-blog/bg-p/Excel...
Now they lose termination for the use case where someone knows how to program but can't or won't program in some "normal" programming language.
https://powerapps.microsoft.com/en-us/blog/introducing-micro...
I'm not sure what you mean by this.
One of the most annoying things about Excel is it has so many parts apparently designed by people or groups that didn't talk to each other and didn't have a grasp of all the rest of it, let alone the world of the (various groups of) users.
Who ordered another Turing-complete system in Excel? One that is, like all the others, a pain and a half to debug or analyze? Has anyone figured out how to turn this into a security vulnerability yet?
Saying "yay people are making videos" only makes me think of all the horrific tutorials on Power Automate. And this: https://xkcd.com/763/
I hope this gets implemented in libreoffice too; I will certainly tell non-programmers to stop using python or whatever and go back to spreadsheets!
Because Power Query is not a spreadsheet application, and has some much more severe performance cliffs than Excel proper does.
I don't think people at Microsoft are looking at Excel as a whole, like lost souls squatting in a mansion and building sand castles in the room that they live in that have no relationship to the actual building and what it needs to keep from falling down.
I'm not sure what you mean by performance cliffs. Can you give an example of where and how you would better accomplish something without Power Query? Are you talking about processing data in the range of a few hundred megabytes?
Mess up in Outlook, you right click and it gives a couple suggestions. It'll call out the typo right after you finish the word.
Mess up in Teams? It'll wait until you finish the next word (charitably, giving you a second to figure it out?) then will suggest a different word than Outlook would.
One thing that would greatly improve the experience would be to allow for formulas to contain just a lambda and then reference that lambda from another cell as a cell reference. Currently you have to use manage lambdas under Formulas > Name Manager. This would make debugging a lot easier in my opinion so that you can freely mix data entry with computation. Not sure why they haven't done this already, but I suspect it is because of assumptions baked into Excel.
My pet project from a couple of years ago[1] had cells-as-functions. I think it works really well. I also think names are important, but yeah they should either be easy or optional. Glad the Excel folks liked my rad idea though, even if they didn't quite hit all the high notes :-).
1: https://6gu.nz/, IMO worth watching the first minute of the video to see it in action
It's possible we're not talking about the same thing. Microsoft has slapped "Power" on so many different things. When I google "Power Query" I get a lot of "Power BI" stuff and I try to avoid that like the plague. In my limited experience, it's flaky, unstable, and adds negative value to my reports.
From my perspective, Power Query appears to be similar to the scripting language in something like Qlikview. Except much less painful (for me). I also think "grokking" Power Query could lead to improving SQL, even. The split between SQL and things like PL/SQL or T-SQL always felt wrong to me. Just having functions as a seamless part seems like the thing that was always missing.
https://xkcd.com/2453/ Wouldn't you know it?
Lambda: The ultimate Excel worksheet function - https://news.ycombinator.com/item?id=25923628 - Jan 2021 (4 comments)
http://lambda-the-ultimate.org/papers
Including:
"Lambda the Ultimate Imperative"
"Lambda the Ultimate Declarative"
Your scientists were so preoccupied with whether or not they could, they didn’t stop to think if they should.