[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: succinctness = power

On Fri, May 31, 2002 at 08:51:58PM -0400, Neel Krishnaswami wrote:
> Paul Graham writes:
> >   use weak language -> always be behind -> lose in market.
> > 
> > And remember that is the best case.  Languages are not just to
> > implement in, but to think in.
> This is such a succint (heh) formulation that you just enabled me to
> find a possible counterexample: spreadsheets.
> The spreadsheets is probably the weakest languages model in wide
> use. The classic Visicalc spreadsheet (still recognizable in Excel)
> doesn't even have control structures. Instead of loops and tests it
> has columns of values and formulas, and yet spreadsheets are probably
> the most popular languages design of the last 25 years. 

...and they have loops and control structures.  Just not the kinds
you'd find in Kernighan and Richie or Abelson and Sussman.

I've created spreadsheets to do bond calculations with Newton's method
(max out in 15 iterations or something).  Instead of loops, it used
unrolled loops.  Change a control value and the entire system would
recalculate, including the result of an iterative calculation.  And
there is always a conditional formula or two (=IF(A3, B1, B2)).

I also remember (not too fondly, mind you) that every spreadsheet
I ever touched (1-2-3, Excel, Paradox, WingZ, Multiplan(?), that
Ashton-Tate product that sold all of 3 copies....) had a macro
environment, with of the trappings of a programming language and
none of the familiarity.  Furthermore, Microsoft started integrating
VBA into all of their office components starting in the mid-90s.

Spreadsheets are quite succinct and powerful, in a warped sort of
way.  Throw a reference manual at an accountant and in an afternoon
he's able to create a spreadsheet to model two or three investment
scenarios for a client.  *Much* more powerful than the alternatives
(FORTRAN, BASIC, Pascal, etc.) for that type of problem.

It won't scale up to an entire tax planning system, but who cares
about that?  C++, Java and CLOS don't scale down so easily to simple 
scenario planning tools either.