SV: A Repeat: New Language After Ruby?

Hi Dave,

As I do so often, I now feel tempted to quote the pragmatic programmers. From the paper “Never Build an Application” (http://www.pragmaticprogrammer.com/ppllc/papers/1998_03.html) I’ve selected two interesting quotes:

  1. “Library design is language design”

  2. “Design a domain specific ‘language’ that can be used to talk about applications in this domain”

These two statements can be simplified to “Design a domain specific ‘library’ that can be used to talk about applications in this domain”? Have you changed your mind? If so why? I still believe these two quotes to be entirely valid.

Thomas

-----Oprindelig meddelelse-----
···

Fra: Dave Thomas [mailto:Dave@PragmaticProgrammer.com]
Sendt: to 22-08-2002 17:06
Til: ruby-talk ML
Cc:
Emne: Re: A Repeat: New Language After Ruby?

tran55555@yahoo.com (Email55555) writes:

> Is it just learn the syntax of language ?  It is much much
> difference depend on your definition of "learn".  Think about this,
> learn java language, I think you can spend a little bit of time to
> learn java syntax.  But if you want learn the entire API, Oops, that
> take may-be not in one year ( J2SE, J2EE ).

Learning a language means coming to understand it: the philosophy, the
idioms, and the "way things are done". Doing that gives insight,
insight that can often be applied in different arenas.

With Java, I see little point in learning all the libraries if Java is
simply one of your "languages of the year". The incremental benefit of
studying the 804th API set is marginal.

However, it _is_ interesting to study the Java libraries at a higher
level. One of the things I learned from Java is the entire concept of
library-based programming. Libraries are pervasive in Java, to the
eternal detriment of the Java community (and computing at
large). Developers writing java are pretty much taught not to write
applications, but instead to write libraries, and then glue these
together with a minimal application core. The result: remarkably
bloated applications, full of code that's never used, and full of
patterns because "that's the way to code libraries". Josh Bloch's
Effective java is a great book, but it is redolent with library
thinking--write these methods because someone may need them...

So (ending my rant), I think there's much to learn from all languages,
and some of it is far outside the actual syntax of the language
itself. In the case of Java, the sheer size of the libraries, and
therefore the barrier to learning they present, it itself an
opportunity to reflect and learn.


Cheers


Dave

Thomas Søndergaard tsondergaard@speakanet.com writes:

As I do so often, I now feel tempted to quote the pragmatic
programmers. From the paper “Never Build an Application”
(http://www.pragmaticprogrammer.com/ppllc/papers/1998_03.html) I’ve
selected two interesting quotes:

  1. “Library design is language design”

  2. “Design a domain specific ‘language’ that can be used to talk
    about applications in this domain”

These two statements can be simplified to “Design a domain specific
‘library’ that can be used to talk about applications in this
domain”? Have you changed your mind? If so why? I still believe
these two quotes to be entirely valid.

No, I don’t think I’ve changed my mind. The difference between the
above and the Java case is that domain-specific libraries are intended
for one task: you write them to provide the infrastructure in order to
write your application. The Java community seems to have a different
approach: the books and the examples of code available to developers
promote “general purpose” coding – add stuff because someone at some
point just might want it. This is the attitude that leads the the kind
of bloat we see in Java applications.

Cheers

Dave