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

Re: Reasons for withdrawal

This page is part of the web mail archives of SRFI 44 from before July 7th, 2015. The new archives for SRFI 44 contain all messages, not just those from before July 7th, 2015.

Tom Lord wrote:
> We have in '*-get-{left,right}' a proposed naming convention.
> Both meta-names name the same thing, according to the spec.

Is this the get-left/right for bags? I've already raised this issue.
These interfaces are inappropriate for bags, which have no concept of
sequence -- if they did, they wouldn't be bags.

This is one of the reasons I've been complaining about the fact that bag
is unimplemented. Warts like this are easy to spot when you try to
implement a concrete bag and realize, "Hey! What does this mean, anyway?
These interfaces don't make sense for a collection with no concept of

Likewise, the vector-set! problem wouldn't have lasted as long as it did
if the authors had tried implementing a real project with these
interfaces. It would've surfaced even quicker had they tried to adapt
existing code to use this "more elegant" interface. But they didn't.

That's two defects that arose because of insufficient experience with
the implementation. Maybe there aren't any more defects hiding in the
spec, but I wouldn't bet on it. In the software world, where there are
bugs, there are more bugs, and the only way to flush them out is with
careful verification (code review, testing, and regular use).

Successful naming standards develop in two ways:

1. Somebody publishes a real product with a noticeable style. Other
   programmers like the product or the style and imitate it. If it's
   library code (like the C standard library or MFC for Windows), they
   may imitate the style for consistency with the library calls.

2. A software organization uses a naming standard internally. Best
   practices experts develop the style independently, and developers are
   required to use it unless they can justify an exception. The experts
   keep track of the exceptions and modify the standard to reflect
   actual use.

Which model does SRFI-44 follow? Is it attached to a compelling product
that programmers imitate out of admiration? No. Is it a corporate or
product standard that programmers are compelled to follow? No. Does it
include a change process that allows the standard to evolve? No.

I have, however, seen many failed coding standards that tried the
approach of SRFI-44.

This is *why* we've been recommending the "publish a concrete
collections library worthy of imitation" approach. SRFI-44 is trying
approach #2 above, but that's doomed to fail -- finalization is *totally
inappropriate* for that kind of standard. Notice how SRFI authors try to
imitate the interfaces of the "good" SRFIs? That's approach #1 above.

A naming standard SRFI is counterproductive and inappropriate. I've
already explained how SRFI-44 isn't appropriate for a SRFI. I'll add to
that: SRFI isn't appropriate for a naming standard. It's a poor fit in
both directions.
Bradd W. Szonye