[Top][All Lists]

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

Re: First look at Guile Std Library available

From: Dale Mellor
Subject: Re: First look at Guile Std Library available
Date: Sun, 4 Jan 2004 15:17:05 +0100

>>>>> "Thien-Thi" == Thien-Thi Nguyen <address@hidden> writes:
    Thien-Thi> from lurking on the emacs-devel mailing list, i've come to
    Thien-Thi> understand the word "coherence" in an application context... in a
    Thien-Thi> library context, what kind of integration are we talking about?
    Thien-Thi> if integration is actually not what you mean, could you explain
    Thien-Thi> how would "coherence of the whole library" be measured?

    IMHO, in this case, coherence = efficiency, and efficiency is defined as the
ratio of satiated user's expectations over lines of code to implement. In other
words, a good library is one that meets a lot of people's needs without imposing
a massive maintainence burden on the library maintainer (which in turn delivers

    Thien-Thi> here are two decisions you can make early on:

    Thien-Thi> (a) what is the policy re proliferation of work-alike (but not
    Thien-Thi> exactly identical) interfaces?  one-size-fits-all vs
    Thien-Thi> pluralistic-menu...

    Thien-Thi> (b) what is the policy for changing an interface wrt backwards
    Thien-Thi> compatibility?
    Thien-Thi> IME as a "user" of programming languages, tools, and employees,
    Thien-Thi> useful trumps standard trumps efficient.  in practice, efficiency
    Thien-Thi> is such a fuzzy concept, it is often measured in terms of
    Thien-Thi> usefulness!

    IMHO, we should be looking at a well designed one-size-fits-all interface
approach (otherwise it will never be documented properly, and will be a slur
against the purity of the scheme programming language). We should use three-part
version numbers, and within a major version release there should be complete
backwards compatibility among minor version changes (there may be localized
compatibility breakages amongst micro versions as interfaces are worked out and
stabilized). If one day it transpires that a wrong turn was made and a new
direction is needed, then the major version should be incremented, and a new
namespace (std-2, say) be introduced, ***but the older (std) namespace should be
kept in the library so as not to break any existing code***.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]