It is the best of breed on the category by far.
But yes, only used by those who can't code.
There are possibly trillions dollar worth of revenue around the world relying on Excel. And one reason why other office software couldn't match MS Office. Even if you promise 99% compatibility with Excel, no one wants to risk 1% of messing it up just to save a small amount of money on MS Office. Especially when MS now offer it as subscription which fits most business P&L better than a one off purchase.
And that is a reason why I see a small possibility of MS one day open sourcing parts of Windows.
Unfortunately Excel on Mac isn't as smooth / performant as Excel on Windows.
> It is the best of breed on the category by far.
But would it have been if MS hadn’t controlled the playing field for WordStar, Lotus 1-2-3, etc.?
I made the same app in both Matlab and Python/Qt and it took far more time in both of those than it did in Excel. Time is money...
In what? Excel has versatile uses, it can be used for both analytics and analysis of data. You can make dashboards, pivotcharts, etc. in excel in minutes when doing the equivalent will take you hours, if not days, to code from scratch.
The fact that these are called macros and not a programming language might be a reason why they are so heavily adopted: to avoid scaring people away from using Excel. This reminds me of an observation from Richard Stallman's speech about Emacs (https://www.gnu.org/gnu/rms-lisp.html), where secretaries used Emacs Lisp to extend the editor.
In a personal computing world that has a sharp distinction between "user" and "programmer," Excel is one of those exceptions where the distinction between "user" and "programmer" is blurred, since you need to use macros to take advantage of Excel's power. Excel macros are the gateway to learning Visual Basic for Applications, a full-fledged embedded programming language. Then once you know VBA, then the road to learning other programming languages such as JavaScript and Python becomes easier.
It's an exceptionally powerful tool for prototyping.
In excel the ability to be sloppy is actually really nice to just sling together a few random models and call it good when I don't need to be precise.
I'm serious. It's functional, as you say, and cells form a dependency DAG which drives their auto-update, which qualifies it for the "reactive" adjective.
Code is great but requires systems that are not always in place.
I would argue a formula one race car is better than a 10 year old honda. But the honda doesn't need a support crew to get me to work, can be started in an instant, and doesn't care if I forget to change the oil for a year.
context matters in choosing technical solutions. Your argument is no different than all those other ones over what programming language is 'best'
Excel IS a programming language.
I wonder if this could work? It's an interesting idea, I think. I'm sure there have been attempts in the past...
I guess you would be able to assign both normal units and compound units to cells (like m and m/s^2) as "formatting" and do type checking when editing a cell that references other cells.
I wanted cells to have types -- not just dimensions like meters and volts but arbitrary composeable tags with a tag arithmetic, so that you can make it impossible to (or at least easy to notice when you) add "daily active users" and "monthly active users".
I read a thread here on HN just a couple days ago about people whose job it is to pore through spreadsheets that drive trillions of dollars for companies and find logical errors (like the above nonsensical addition of two numbers that don't make sense), and that they save companies hundreds of millions by preventing mistakes in planning etc.
Maybe I'm missing the point, but compared to real types, who cares about bringing a rich structured data object describing hydrogen into a spreadsheet?
However, if I am only occasionally looking at data and/or repeating the same operations than code + csv (or database) makes a lot more sense and gives me flexibility to deal with edge cases. I still end up opening it in excel but mostly because I already have it installed.
To be honest, I would sort of like a more primitive fast csv data viewer for times when I am feeling rusty on excel and bullish on small scripts. When you are doing the data manipulation elsewhere excel is overkill.
But every now and then it is a lifesaver