Excel needs exactly one thing to blow open the doors on productive programming: a new "function" data type. Since it's just a data type, you put it in a cell just like any other data type. Have some way to call it, like `A1(arg1, arg2)` or something. Now you can leverage the full capabilities of Excel to manage it, name it (named ranges), etc just like other data.
A more sane expression syntax might be nice too, but isn't necessary to make Excel more productive for abstract programming.
A more sane expression syntax might be nice too, but isn't necessary to make Excel more productive for abstract programming.