This is one of my favorite passage from SICP:

"It is no exaggeration to regard this as the most fundamental idea in

The evaluator, which determines the meaning of expressions in a programming
language, is just another program.

To appreciate this point is to change our images of ourselves as
programmers. We come to see ourselves as designers of languages, rather than
only users of languages designed by others."

In general I think there is too much fear of using language as just another
means of abstraction.  While I certainly agree that creating an entire
language from scratch is a bad idea, I don't think it would be insane to
create a dsl to solve a common set of problems on top of an existing
runtime. I actually think this would be particularly useful in the library
world since there is such a range of programming talent, a dsl that
simplified some common library related tasks could certainly be useful,
especially if there was full language underneath.

Of course there is the problem that even DSLs are not simple to create, the
number of library programmers with experience in parsers and language design
is probably very, very small.  But the ease of creating dsl is increasing
and I think their use will get more popular over time (hopefully).

> From: Jonathan Rochkind <<>>
> Date: November 1, 2010 11:03:13 AM PDT
> Subject: Re: [CODE4LIB] Let's go somewhere [was PHP vs. Python...]
> Reply-To: Code for Libraries <CODE4LIB@LISTSERV.ND.EDU<mailto:
> I would be very unlikely to use someone's homegrown library specific
> scripting language.
> However, if you want to make a library for an existing popular scripting
> language that handles your specific domain well, I'd be quite likely to
> use that if I had a problem with your domain and I was comfortable with
> the existing popular scripting language, i'd use it for sure. Odds are
> your domain is not really "libraries" (that's not really a software
> problem domain), but perhaps as Patrick suggests "dealing with
> relationships among semantic objects", and then odds are libraries are
> not the only people interested in this problem domain.
> Some people like ruby because of it's support for creating what they
> call "domain specific languages", which I think is a silly phrase, which
> really just means "a libraryAPI at the right level of abstraction for
> the tasks at hand, so you can accomplish the tasks at hand concisely and
> without repeated code."
> Patrick Etienne wrote:
> Peter -
> I was bewildered at the notion of needing yet another scripting
> language, let alone one as "library domain-specific" (that wording
> alone throws up red flags everywhere), but I'm not here to bash ideas.
> Instead I looked up your site and read the small blurb about "Nova".
> It seems that the main objective behind your pursuit is creating a
> language that provides a specific data type for semantic objects (or
> relationships). I have to ask, what about semantic maps makes you
> believe that they require a specific data type rather than just being
> an object type? Are other scripting languages too slow to suit certain
> needs such that a new data type is necessitated? I really can't see
> this being the case. That being said, while it can be an invaluable
> experience to learn about making scripting languages, if there's to be
> any community movement toward a particular language (php, ruby, java,
> scheme or what have you) there has to be some very real and
> significant benefit.
> Or more directly, you seem to have specific ideas about a library
> domain-specific language. What do today's languages not have that you
> believe is so essential that you'd be willing to write a new scripting
> language?
> - Patrick E.
> On Sat, Oct 30, 2010 at 10:51 AM, Peter Schlumpf
> <<>> wrote:
> Bill, you hit a nail pretty squarely on the head.  I believe this decades
> long fetish with MARC has to go.  It was designed to efficiently store data
> on magtapes and doesn't make any sense in today's world.  It's a huge
> millstone around the neck of Libraryland and it keeps them stuck in that
> tiny little ghetto.  Anything can be a mind-prison, even PHP, Python or
> Django.  They are all arbitrary anyway.
> And you are correct in pointing out that the natural response of librarians
> to a problem is to seek consensus in a self-absorbed way.  Form committees
> and all that nonsense which never goes anywhere.  They are happy enough
> going around in circles, like the Nowhere Man making all his nowhere plans
> for nobody.
> My hope is that some among us would just undertake these problems
> ourselves.  Outside of the realm of the libraries and the limiting mindsets
> many of us work in.  We've all got ideas.  Fire up vi and get busy and make
> something happen, like a library domain-specific language.  Start fresh.
>  There is nothing wrong with that.  What's wrong is how the library
> community goes about such things.
> Let's go somewhere.
> Peter Schlumpf

Reply via email to