4 ms·
I can think of a few reasons, though they may not be the ones he has in mind. There's the fact that you're dealing with cell references rather than variable na
by Dove 15y ago
I can think of a few reasons, though they may not be the ones he has in mind.
There's the fact that you're dealing with cell references rather than variable names, so all of your expressions look like ($K4 - $S$1) rather than (principal - payment).
There's the fact that the IDE you're working in is trash -- rather than a text file with carefully indented parenthetical statements, it's a single line text field. Sort of like trying to code in a URL bar.
There's the fact that pieces of a program are often littered all over the spreadsheet, and it's hard to look at the whole thing at once.
There's the fact that it's extremely stateful -- the whole thing exists and depends on a table of values -- and when and where and how and in what order they're updated. From a programming perspective, everything is a global variable, and anything can update anything, and setting the state of those global variables is the only way for functions to return data or talk to each other.
I would say all of these are problems that Real Programming Languages have under control, so I can't say I worry too much about such an IDE descending into spreadsheet madness. I do wonder how you would show meaningful realtime results, though, without running a program from the top.
- lloeki 15y ago> all of your expressions look like ($K4 - $S$1) rather than (principal - payment). Numbers.app has the nice feature (among others) to use column/row headers to name cells/colums/rows in formulas in a readable manner.
- jaxn 15y agoThose reasons are spot on. Also errors are difficult to track down and spreadsheets have horrible code re-use.
- Dove 15y agoOh yeah. I knew there was one I forgot. You get compiler errors about as helpful as trying to debug C++ macros -- namely, something is wrong with this big glob of code, but it ain't gonna tell you what or where.
- arethuza 15y ago"There's the fact that you're dealing with cell references rather than variable names" Excel has named ranges - allows you to give a meaningful name to single cell or a range of cells - a pretty widely used feature. "it's a single line text field" Excel's formula editor can be as large as you want.
- snprbob86 15y ago> There's the fact that you're dealing with cell references rather than variable names, so all of your expressions look like ($K4 - $S$1) rather than (principal - payment). In Excel, use the "Name Manager" dialog and the "Name Box" on the formula bar. They re somewhat hidden, but discovery of them forever changed my spreadsheets!
- moomin 15y agoEven better, stick the name at the end of the row or column, select the entire range and press alt-i n c. Good luck discovering that since they introduced the ribbon bar, though.
- deleted 15y ago[deleted]
- nikcub 15y agoExcel + VBA solves a lot of that. The spreadsheet part just becomes a view. Somebody should really build a web app version of that, there are millions of custom Excel+VBA spreadsheets spread throughout businesses across the world. The only way they will migrate online is either through custom web apps (I used to do a lot of those) or with a generic solution which doesn't exist yet.
- gruseom 15y agoTo migrate them online, do you think what's needed is a single-click "just upload your Excel spreadsheet and it will all work, including the VBA"? That is, how important is 100% compatibility, including VBA? (The technical bar for that is pretty high.)
- nikcub 15y agoI don't think it has to be compatible, just something that is as capable. I have been thinking about it for a while, I would use Lua or Javascript as the scripting language. I don't know why Google hasn't done this yet.
- jodrellblank 15y agoOh come on, spreadsheets aren't that bad. Excel has had named ranges forever, and they can be scoped to the worksheet so they aren't completely global. http://office.microsoft.com/en-us/excel-help/define-and-use-names-in-formulas-HA010147120.aspx http://office.microsoft.com/en-us/excel-help/define-and-use-... And functions can be VBA so the state of those global variables isn't the only way for functions to talk to each other. e.g. Dim x As Integer Function setx(n) x = n setx = 1 End Function Function getx() getx = x End Function and then you can put =setx(200) in one cell and =getx() in another. It is hard to look at the whole thing at once, but when do you need to do that?
- spitfire 15y agoBack in the NeXT days there were a bunch of variable based spreadsheets. The stars were Quantrix and Lotus Improv. Data and formulas were kept completely separate so you could change them at will.