[taos-glug] Re: programming concepts; Perl

  • From: Jonathan Bartlett <johnnyb@xxxxxxxxxx>
  • To: taos-glug@xxxxxxxxxxxxx
  • Date: Tue, 5 Aug 2003 15:15:20 -0700 (PDT)

> For example, I am currently clueless about any practical value in something 
> like
> "applicative order Y combinator" that is discussed at some length in
> "The Little Schemer".

Y combinators.  Yes, those will exercise your mind.  I still can't figure
them out from scratch, but I can understand them when I read them.  And
no, I haven't figured out any practical value of them.  They are useful in
Mathematics more than programming.  Some links (interestingly, they are
all titled the Why of Y.  I guess programmers all share the same dry sense
of humor - the first link is the best):

ftp://ftp.cs.indiana.edu/pub/scheme-repository/doc/pubs/Y.ps.gz

http://www.cs.cornell.edu/courses/cs312/2002fa/lectures/lec27.pdf

http://www.dreamsongs.com/NewFiles/WhyOfY.pdf

Most scheme features have more practical value thatn that :)


Continuations, for example, allow for some really tough programs to be
implemented really cleanly.  If you've ever wished that programming web
pages had better, "more normal" flow control, you can do that with
continuations.  Unfortunately, ViaWeb was the only application to really
take advantage of that.  So far, no application-server has :(  Some links
to these ideas:

http://www-spi.lip6.fr/~queinnec/Papers/www.ps.gz

http://www-spi.lip6.fr/~queinnec/Papers/webcont.ps.gz

http://lib1.store.vip.sc5.yahoo.com/lib/paulgraham/bbnexcerpts.txt

Upon further google search, it appears that the PLT web server and
something called Seaside (in smalltalk, it seems) may do
this!  I'll have to look into it further.

> I guess my question is where did the ideas for some of the advanced
> concepts come from.   From practical necessity, or from theoretical
> considerations?  Academic politics?  Some other reasons?

Everything starts in academia.  EVERYTHING.  Usually what happens is that
academia has a great idea, and then the business world makes it work well
and usable by normal people, sometimes sacrificing some of the beauty of
the academic work, but chewable by more people.  For example, Perl and
Python are both very Schemish languages.  Unfortunately, in the CS world,
we seem to be going backward rather than forward.

So yes, all of these are useful.  The problem is that these academic
languages have really crappy runtime libraries.  If you're looking for a
project to help out with GNU, perhaps making decent libraries for GUILE
would be the best way to go.

> I'm curious enough now to proceed with SICP whether or not it has
> any practical value.
>
> But I don't want to make the mistake of
> jumping into a practical project using impractical tools, regardless
> of what Stallman and the Gnu group recommend.

Yes, Scheme is not always a practical tool, for the reason I outlined
above.

Anyway, I remember at one point some people were curious about real-world
uses of Scheme.  I went blank at the time, but I remember more now.

 * DSSSL - a styling language that uses scheme to define styles for XML
documents.  Because you have the full power of a great programming
language at your hands, you can do amazing things with it.  I'm just now
getting back into this for making a publishing workflow for a ministry I'm
strating (http://www.tgministries.org/).

 * GIMP - SCheme is the primary language for scripting the GIMP.  At my
company, we built a web-based product, and used GIMP scripts to automate
creating the buttons and headers.  You can see the login page (which has
both) at http://service.newmediamail.com/

I know there's others, but I'm late leaving work!  My wife might injure
me.

Jon


Other related posts: