← Back to context

Comment by carbocation

16 years ago

He invokes Excel as an analytical engine several times in this story. I am trying to figure out if he actually considers it to be a powerful statistical engine, or if he is merely using it synecdochically for the benefit of non-technical readers, in order to represent statistical software more generally.

It actually is the de-facto-standard modeling engine in a lot of areas, even some scientific areas, but mainly economics/finance. There are some pretty nuttily complex simulations written entirely in Excel, with the visualization part of the simulation done by popping up a chart--- you can even make it animated by popping up a new chart at a certain time interval. There's even a market in commercial spreadsheets, which you buy and load sort of like libraries: http://www.palisade.com/RISK/

Not necessarily a good idea, but somehow it caught on. One possible reason is that it was one of the earlier widely available pieces of software for doing declarative, dependency-based modeling that auto-propagates updates: if box A and box B are linked by a "B = 2*A", then B auto-updates whenever A changes, without you manually writing a propagate-updates loop. You can now do stuff like that in a lot of languages, but it's relatively recent (e.g., it's one of the new features JavaFX variables have).

  • Spreadsheets are the most popular declarative (or zero order functional) languages in the world. There were even talks about spreadsheets on the International Conference on Functional Programming 2009.

  • You can now do stuff like that in a lot of languages, but it's relatively recent

    Saying "Lisp had it X years ago" sounds perhaps a little weenish, but... that sounds a lot like the Cells library, and the even older Garnet KR. Granted, they're quite a lot less accessible than spreadsheet programs.

    FRP seems to be modern take on it. It's being very actively researched in the Haskell community.

    • Visicalc: 1979. Excel: 1985. Garnet: early 1990s. Cells: 2000 or so.

      On the other hand ... Sketchpad: 1963. (Constraint satisfaction, but not embedded in a general-purpose programming system.) Prolog: 1972. And Guy L Steele wrote a nice general-purpose constraint system in 1978. ("Constraints", MIT AI Memo 502.)

  • Twenty-plus years ago I wrote a complete blackjack game in a spreadsheet, all using 1-2-3 "slash" macro commands (not VBA or anything like that). It even did insurance and doubling-down. I was part of the team testing the product, and each of us on the test team built a different casino game -- one guy did craps, and found a bug in the random number generator.

    Once you get your brain around the paradigm, it can be a powerful tool.

The 'Solver' (http://www.solver.com/) tool in Excel is widely used for many business optimization problems. If you have x & y quantities of two raw materials and products A and B consume different proportions of each raw material, then you can use the solver to determine the most optimal production strategy that maximizes your profit (or minimizes your labor requirements etc.)

  • The joys of linear optimization. Do you know if it also supports integer optimization? (Doing that fast enough would be a feat in pure Excell.)

    • There are multiple versions of Solver. To get the free one to do this requires a hack (using some sort of Fourier Transform into a cell or something, I think there are multiple ways). There are paid versions of Solver that are far more powerful, with fully developed APIs. Also, Iron Python can be used with Excel, which makes the whole thing really intense because many Python Libs can be used. Excel truly is Microsoft's shiniest, best piece of software.

      5 replies →

    • I believe it does. And, IIRC, it's a native code library that uses Excel for data input and results presentation.

  • I've seen Solver used by a number of accountants to say 'I need my profit to be this number, what figures do I need to change to hit that?'. Solver is a life saver for those looking to cook the books (sadly far too many people).

Its fairly common for programmers to dislike excel (at least in my experience). However, it provides a lot of benefits:

1) Its actually pretty powerful. Since the cells update in real time it provides a nice way to do "what if" analysis pretty quickly.

2) The solver is pretty good.

3) Most people in business can read excel so it provides a good common ground.

4) Since all the intermediate steps in a calculation are in a cell somewhere, its pretty easy to trace through logic.

I certainly wouldn't use excel to handle huge amounts of data, but its a good tool as long as your computational requirements aren't that big.

Mostly off-topic anecdote:

In high school there was a girl in my class that preferre to do everything in excel. And that included writing papers, because it made the formatting easy.

I think his point is that Excel is a powerful weapon in the right hands. Most people don't do much with it, but it's powerful none the less. If dollars were points, many trillions in commerce and complex decisions have been made on the result of analysis done by spreadsheets.