Excel is literally 2D programming. Us mortal developers who can only put lines below one another are incapable of comprehending it, so we only get to ask the wise finance people how their enigma works.
On a serious note, I dread excel. If your PC is set to german, excel will translate the VBA keywords to german. But if you want to type them, you have to do that in english and then have excel translate them.
I don't want to accept that crap like this is the standard.
I have grown a respect for Excel in the last decade or so. It's slow, it's clunky, and it's far from perfect, but I think it's among the most approachable language out there.
A lot of people using Excel, even some of the more advanced stuff like if statements and logic, don't even realize that they're writing programs, and I think that's genuinely awesome: people are able to utilize the power of programming by accident.
I still use spreadsheets all the time for small number crunchy things, just due to how it's "reactive by default". I find it's actually really useful to immediately see everything update after changing a value. Admittedly, I mostly use Google Sheets nowadays simply because it's "good enough" and much easier to share with friends. Could I write a program to do all that number crunching that performs better? Obviously yes, I could start a new Julia project and mop the floor with Excel or Google Sheets in regards to saving cycles, but that would take me 20x longer and I'd lose all the nice features of a spreadsheet.
Granted, this is coming from a strictly Anglo-American perspective; I cannot speak to Excel's ability to use other languages.
> I cannot speak to Excel's ability to use other languages.
I find it's an overblown issue. Those of us that prefer functions in English can just set Excel to use it. When someone sends you a file it displays in your chosen language. And having the default being localized makes it usable for the majority of people who don't speak English.
I find a spreadsheet (Google Sheets will do) is a great thinking tool. Any thinking will involve probably some maths and some tables. Excel is built for both.
Excel is a quite powerful mix of declarative programming (formulas in cells), and imperative programming (VBA procedures, event triggers, etc). If you're not ready for it, it'll break your brain.
The main danger in Excel is that any area of a sheet can be treated as a pseudo table.... except it really isn't, and you can inadvertently sort some fields, while leaving the others alone, effectively scrambling your data.
The 2D aspect is the part of Excel I don't understand. Why does it have to be a grid?
It's great for laying out things meant to print, and making invoices and stuff... But why didn't we have code files and proper fixed layout DB-style tables as "pages" that can go in a workbook?
Maybe keeping everything as 2D as possible is a necessary compromise for the spatial thinkers out there, and they just wouldn't want it if it was full of boring linear stuff.
I love the reactivity and the concept that anywhere you put a value, you can put an =expression. But the 2D stuff seems like it's for the people who always have a sense of where things are in space.
They've done a good job of convincing people that it's not programming and they can do it, I can't really complain, because if Excel didn't exist we might all still have to use paper on a regular basis, or completely unstructured text files.
This is why I'm fanatical about using proper Tables in Excel wherever possible. Any db-like kind of data is first turned into a table, then I work with it using whatever formulas, code, or tools I need to. Half the time this means dropping into PowerQuery to do more transformations on the entire set, then finally using Excel formulas or pivots as needed.
But I really like Excel for allowing me to just plop stuff down wherever when I'm brainstorming something, or just want to do a one-off calculation before I quit-without-saving.
Humans have organized data into tables, that is, grids of columns and rows, since ancient times. The Babylonians used clay tablets to store data as far back as 1800 BCE.[16] Other examples can be found in book-keeping ledgers and astronomical records.[17]
Since at least 1906 the term "spread sheet" has been used in accounting to mean a grid of columns and rows
It’s because Excel sheets are often used like forms to fill some fields in, with labels, and dedicated formulas in the background. And sometimes part of that form is a table, but also graphical charts etc. on the side. Excel sheets can be designed almost like in a layout program, also to be suitable for printout. People like that freeform spatial-thinking flexibility about Excel.
When doing calculations on paper, you can write your interim results anywhere. That's what excel copies. It's also why text in excel files will gladly overflow into adjacent cells.
That kind of thing seems very natural if you've done any calculations on paper recently(Which most business people have) but seems strange to programmers who haven't.
You would think the ideal would be to allow everything Excel currently does, but also have some other model with more separation of code, data, and visuals, like node-based programming and separate cloud-synced pure tables.
Excel can almost cover a lot of "real programming" use cases, but not quite. The upgrade path seems to be Excel to Access to Custom app, rather than Excel to Excel but with more of the advanced features.
Everybody who replies to you, I think, has gotten it wrong. What you're asking is not why any grid, but why an infinite un-malleable grid.
What you want is the paradigm of Numbers from Apple. Their office suite is good, and it has the benefit of being opinionated. They're not trying to ape Microsoft, like all the open-source projects.
"2D programming" is normally called array programming, and it's common in scientific computing, ML, and finance. It does require a different mindset, kind of similar to SQL but not exactly. See APL, K, q, NumPy, matlab, Julia, and friends for languages that embrace this paradigm
I don't think you're talking about the same thing? The parent poster is talking about Excel's ability to spread computational steps across rows and columns (i.e. the structure of the code itself), while array programming traditionally refers to writing computations over arrays (i.e. the structure of the data)
On a serious note, I dread excel. If your PC is set to german, excel will translate the VBA keywords to german. But if you want to type them, you have to do that in english and then have excel translate them.
I don't want to accept that crap like this is the standard.