Spreadsheets: Functional Programming for the Masses (2014) [slides]
slideshare.net
slideshare.net
Also red[1] is an interesting programming language that connects its reactive paradigms to how spreadsheets work.
[1] https://www.red-lang.org/2016/07/native-reactive-spreadsheet...
Basically "low code" solutions are meant to improve upon the spreadsheet and fill the gap between that and software.
So "low code" has been with us since the 1980's.
https://en.wikipedia.org/wiki/VisiCalc
Data tools that don't play well with spreadsheets are just fighting their massive potential user base.
Why not build something that helps the poor bastards working in spreadsheets till 3am, rather than telling them 'oh if you only had a couple hundred hours to learn pandas (and command line, and a bit of linux, and maybe some network infrastructure classes), you would be fine!"
For that type of "MVP" or "I can throw it away and start over" deal, it seems like a _great_ tool.
I've spent the past 10 years maintaining and improving a finance-centric lazily-evaluated dataflow language with integrated distributed NoSQL database for a Fortune 500 financial services company. My understanding is that most of our competitors use Excel where we use our language/database. Some of our competitors have hired away some of our developers to explicitly write more modern clones of our system. One competitor's clone uses Python with function decorators that inspect the function's AST and transform it into a reactive dataflow language, though I imagine it's very frustrating to write something that looks like Python with very non-Pythonic evaluation semantics. I think starting with something like Haskell or Prolog would be less jarring.
My wife does finance/accounting for another large multinational, and I see the appeal and power of both Excel and our system. I wish there were some easier way to migrate from spreadsheets to more scalable and maintainable systems. (And, I suppose, there's some utility in bidirectional migration.)
I think you nail the fundamentals here. I also dream of a access+excel kind of full app but think need to start with the base language (that I doing at http://tablam.org). You need to align the base language + the rest of tool to make easier to scale up whatever the customers create (at least, you can copy paste whatever them wrote and debug it using the same tools as professionals, instead of reverse engineer the kirks of excel...)
I have been in the industry for 20 years myself as a quant, mostly using Excel as a "glue" layer indeed, and I worked with the Python based "clone" you mentioned too.
For the last two years I have been working on a platform to fix exactly the pain points you are talking about.
Amazing how your post sounds almost like as if I wrote it myself before I started working on this project :)
Please, take a look at https://ellx.io I would be more than happy to discuss it in detail: dmitry + at + ellxoft.com
Exactly the example I was looking for! Mind if I re-implement all this on the Ellx platform (https://ellx.io)?
Typically when we have a request like "oops, we accidentally entered wrong weights for these articles, please fix", where he gets an Excel sheet of article numbers and correct weights. But thanks to the flexible nature, toss in a little logic when needed for example, he can quickly churn out some non-trivial SQL to do the job.
Of course may other ways to do this kinda job, but for him this is quite productive. He starts by writing the query he needs for doing one update, then just stuff it into Excel, replacing fixed values with cell references and copy formula down all rows and copies result back into interactive SQL editor.
I essentially had a spreadsheet driven CRM tool that could
Ping an internal data warehouse API Run data validation Generate email templates Send emails via outlook integration
So some of that wasn't FP as it used VBA but all the validation and checks were done using vanilla functions and were therefore functional.
But you're right, until I figured out how abstract and actually program, VBA script was bound to report generation before I started hitting unmaintainable complexity
Improv looked cool and made it easy to have horrible calculation errors. I had such fun demoing a comparison to our multidimensional spreadsheet at trade shows. Lotus also couldn’t handle internal threats to 1-2-3 so Improv was never going to go far.
= MAP(A1:A, A + 10)
This would be so much nicer compared to a huge mess of ARRAYFORMULAs I'm using right now.The ability to store multiple values in one cell like a dictionary would be awesome as well. With that I wouldn't have to implement lookup manually.
I currently do this in F# using ExcelProvider, which allows you to access computed values and types at design/compile time.
This is much handier than using json/yaml/xml etc., again due to formulae, but also the use of Excel/LibreOffice as a config editor. Additionally being able to have multiple spreadsheets within a workbook is a nice way of organizing your configuration data. Beats the pants off other serialized data formats (depending on your use case) and I find it to be preferable to using ‘code as configuration’, especially because non-developer users can edit it.
EDIT: Link to ExcelProvider http://fsprojects.github.io/ExcelProvider/
For trivial things and certain specific use cases spreadsheets are fine. But it never is left at that. For lack of awareness of any other programming language they get used for programming and analytics platforms and turn into byzantine, unmaintainable, undocumented beasts with hard to read and check formulas and business logic.
My current company is plagued by these built by no-coders over decades. There’s teams of people whose primary job function is to click copy and paste between these to generate regular reports. Excel is a curse.
What kind of tools are you currently using to manage the nightmare?
Can someone correct me, but isnt slide 22 replaced with the ability to just simply change the sheet to a table, and it will auto fill no matter what so you can just change the first cell's formula and it will change the rest of the column?
Imagine a variant of Basic that did that... like VB/Excel, but far far better. I like the possibilities this opens.
= Distance/SpeedI hope that makes sense.
[1] http://simplysomethings.de/functional+programming/calc.html
Microsoft is instead steadily expanding JS scripting support. They even added JS UDF recently.
trying to carve a niche out of the orange territory on slide 12 as well