--fdj2RfSjLxBAspz7
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

On Thu, Mar 31, 2011 at 12:19:25AM +0900, Robert Klemme wrote:
> On Wed, Mar 30, 2011 at 4:49 PM, Chad Perrin <code / apotheon.net> wrote:
> >
> > Are you saying that you're creating some kind of stand-alone variant
> > of VBA (which is what Excel uses for macros), or are you saying that
> > you use a spreadsheet application to write "programs" and call it S#
> > to confuse people (in which case it worked on me)? =A0I'm frankly
> > appalled at the idea of people writing "programs" in Excel; it's
> > three metric tons of VM-like overhead to produce "software" that is
> > necessarily far too limited to even have bothered.
>=20
> I believe he means that Excel is a processor for dependent formulas
> which, by virtue of update event propagation, gives you instantaneous
> value updates in all relevant places.

Option 2, then.


> >
> > If you want a simple, nominally-functional language, try Scheme.
> > =A0Just don't expect getting "real world" work done to be very easy as
> > long as the community's internal differences of opinion over what
> > constitutes good language design or how to define "compatible"
> > continue. =A0Scheme is in effect a great learning language, for now,
> > but not very useful in the real world unless you're willing to write
> > your own libraries -- but you seem interested in experimenting with
> > functional programming from what you said, rather than having an
> > industrial-strength, practical programming tool, so maybe that's
> > okay.
>=20
> I'd like to throw in Scala here.  Although it's not complete yet as a
> language there are some interesting concepts (including functional) -
> and you can use the wealth of libraries available for the JVM.
>=20
> http://www.scala-lang.org/

I have heard good things about both Scala and Clojure, though they both
suffer the limitation of requiring the JVM.  I plan to give them both a
look this year, as well as Haskell, but have not gotten around to it yet.


> >
> > I'm pretty sure nobody is talking about the parallel programming
> > advantages of VBA, either inside Excel or outside of it.
>=20
> I don't know how Excel works internally but it is completely possible
> that evaluation updates are calculated in parallel.  This is possible
> because Excel knows all the value dependencies between cells.

Oh, I'm sure it does -- but Excel is not a programming language, so I'm
not sure it's meaningful to say that Excel's features as a functional
programming language provide any parallelism benefits.


> Which brings me to something I have been wanting to ask: is there
> something like a gem containing a DSL for such descriptions?  I imagine
> building dependency graphs (trees for the start) of tasks where output
> of several other tasks can be fed into a task.  That then would make
> parallel execution pretty easy.

I'm curious about that as well, now.


> >
> > Maybe you'd like working with a database management system that
> > offers some kind of stored procedures or triggered functions
> > capabilities more.  Excel is to DBMSes as those old Power Wheels toys
> > are to actual cars, after all:
> >
> > =A0 =A0http://www.fisher-price.com/us/powerwheels/
>=20
> Hmm, I think I disagree.  In parts you can use Excel (or any other
> spreadsheet like OpenOffice, LibreOffice...) like a relational
> database.  But organizing and filtering data is just one part of
> Excel's functionality - and one where it doesn't shine (once you get
> into the 10,000 range of rows at least).

That was sorta my point.


>
> But a spreadsheet application is mostly something different: a smart
> way to lay out formulas in 2D to get instant calculations; basically it
> is a event processor with user friendly user interface. (Note: in my
> observation despite Excel's amazing capabilities many people seem to
> feel more at home with stuffing tons of macros in their sheets where a
> few smartly connected cell functions or a pivot table would have
> sufficed).

That pretty much amounts to utilizing a minimal subset of the
capabilities of a proper DBMS plus some code that maps to the contents of
a DB table -- or, in DBMSes, plus some stored procedures (or stored
functions, or whatever).  Is there something I'm missing?


> >
> > I disagree. =A0I find myself doing a fair bit of functional style
> > programming in small pieces within the larger object oriented style
> > structure of code that I write in Ruby, and my code is better for it.
>=20
> And funnily enough I just posted my observation today, that more and
> more languages incorporate functional features. :-)
> -> "[OT] functional paradigm taking over"

--=20
Chad Perrin [ original content licensed OWL: http://owl.apotheon.org ]

--fdj2RfSjLxBAspz7
Content-Type: application/pgp-signature
Content-Disposition: inline

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.14 (FreeBSD)

iEYEARECAAYFAk2Tg7IACgkQ9mn/Pj01uKWZngCgsvOX4Yf0akBfKakS8RzlQLwh
JugAmQGcLs7oiBn2IxJ664x05xJfrZlk
=wDOI
-----END PGP SIGNATURE-----

--fdj2RfSjLxBAspz7--

On Thu, Mar 31, 2011 at 12:19:25AM +0900, Robert Klemme wrote:
> On Wed, Mar 30, 2011 at 4:49 PM, Chad Perrin <code / apotheon.net> wrote:
> >
> > Are you saying that you're creating some kind of stand-alone variant
> > of VBA (which is what Excel uses for macros), or are you saying that
> > you use a spreadsheet application to write "programs" and call it S#
> > to confuse people (in which case it worked on me)? =A0I'm frankly
> > appalled at the idea of people writing "programs" in Excel; it's
> > three metric tons of VM-like overhead to produce "software" that is
> > necessarily far too limited to even have bothered.
>=20
> I believe he means that Excel is a processor for dependent formulas
> which, by virtue of update event propagation, gives you instantaneous
> value updates in all relevant places.

Option 2, then.


> >
> > If you want a simple, nominally-functional language, try Scheme.
> > =A0Just don't expect getting "real world" work done to be very easy as
> > long as the community's internal differences of opinion over what
> > constitutes good language design or how to define "compatible"
> > continue. =A0Scheme is in effect a great learning language, for now,
> > but not very useful in the real world unless you're willing to write
> > your own libraries -- but you seem interested in experimenting with
> > functional programming from what you said, rather than having an
> > industrial-strength, practical programming tool, so maybe that's
> > okay.
>=20
> I'd like to throw in Scala here.  Although it's not complete yet as a
> language there are some interesting concepts (including functional) -
> and you can use the wealth of libraries available for the JVM.
>=20
> http://www.scala-lang.org/

I have heard good things about both Scala and Clojure, though they both
suffer the limitation of requiring the JVM.  I plan to give them both a
look this year, as well as Haskell, but have not gotten around to it yet.


> >
> > I'm pretty sure nobody is talking about the parallel programming
> > advantages of VBA, either inside Excel or outside of it.
>=20
> I don't know how Excel works internally but it is completely possible
> that evaluation updates are calculated in parallel.  This is possible
> because Excel knows all the value dependencies between cells.

Oh, I'm sure it does -- but Excel is not a programming language, so I'm
not sure it's meaningful to say that Excel's features as a functional
programming language provide any parallelism benefits.


> Which brings me to something I have been wanting to ask: is there
> something like a gem containing a DSL for such descriptions?  I imagine
> building dependency graphs (trees for the start) of tasks where output
> of several other tasks can be fed into a task.  That then would make
> parallel execution pretty easy.

I'm curious about that as well, now.


> >
> > Maybe you'd like working with a database management system that
> > offers some kind of stored procedures or triggered functions
> > capabilities more.  Excel is to DBMSes as those old Power Wheels toys
> > are to actual cars, after all:
> >
> > =A0 =A0http://www.fisher-price.com/us/powerwheels/
>=20
> Hmm, I think I disagree.  In parts you can use Excel (or any other
> spreadsheet like OpenOffice, LibreOffice...) like a relational
> database.  But organizing and filtering data is just one part of
> Excel's functionality - and one where it doesn't shine (once you get
> into the 10,000 range of rows at least).

That was sorta my point.


>
> But a spreadsheet application is mostly something different: a smart
> way to lay out formulas in 2D to get instant calculations; basically it
> is a event processor with user friendly user interface. (Note: in my
> observation despite Excel's amazing capabilities many people seem to
> feel more at home with stuffing tons of macros in their sheets where a
> few smartly connected cell functions or a pivot table would have
> sufficed).

That pretty much amounts to utilizing a minimal subset of the
capabilities of a proper DBMS plus some code that maps to the contents of
a DB table -- or, in DBMSes, plus some stored procedures (or stored
functions, or whatever).  Is there something I'm missing?


> >
> > I disagree. =A0I find myself doing a fair bit of functional style
> > programming in small pieces within the larger object oriented style
> > structure of code that I write in Ruby, and my code is better for it.
>=20
> And funnily enough I just posted my observation today, that more and
> more languages incorporate functional features. :-)
> -> "[OT] functional paradigm taking over"

--=20
Chad Perrin [ original content licensed OWL: http://owl.apotheon.org ]
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.14 (FreeBSD)

iEYEARECAAYFAk2Tg7IACgkQ9mn/Pj01uKWZngCgsvOX4Yf0akBfKakS8RzlQLwh
JugAmQGcLs7oiBn2IxJ664x05xJfrZlk
=wDOI
-----END PGP SIGNATURE-----