[Top][All Lists]

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

Re: [PATCH] Fix the R6RS exact-integer-sqrt and import into core guile

From: Detlev Zundel
Subject: Re: [PATCH] Fix the R6RS exact-integer-sqrt and import into core guile
Date: Mon, 11 Apr 2011 11:18:12 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.0.50 (gnu/linux)

Hi Mark,


> Sometimes there's no good reason to use C, but it's simply due to a
> developer's personal preference.  Maybe they don't have much experience
> writing Scheme and are much more comfortable in C.  Maybe they already
> had this big pile of C code before they learned to love Scheme.  Maybe
> they're part of a larger team, most of whom either don't know Scheme or
> are unwilling to use Scheme for the main project, but they want to add
> user extensibility and chose Guile.  Since they already have libguile,
> they might as well use its arithmetic functions in a few places to
> improve robustness against overflows.
> We cannot force people to use Scheme.  If we wish for libguile to be
> attractive for use by projects primarily written in C, we ought to
> extinguish this unfortunate recent tendency to say "people ought to be
> writing Scheme not C", and we ought to stop using that as an excuse to
> block improvements to the C interface.

Although I'm more a passive observer on this mailing list, I still want
to add a little bit to this discussion.  Personally I very much embrace
and support this "write Scheme rather than C" stance being taken by some
of the project maintainers.

Although it is an obvious truth, it helps to remember that no project
can serve all wishes of each and every developer.  As a consequence it
is clear that a project has to make a choice of direction of where it
wants to _lead_.  This direction should of course reflect the needs of
the project itself, i.e. maintainability, testability, documentability,

One should also be aware that the APIs offered can severly influence
people in their own designs.  Let's face it, most developers (including
myself) are rather lazy and try to do as little changes as possible
_even_ if larger changes would be _positive_ for the work as such.  A
project _can_ (and I'd say should) force people at least to think about
such changes by publicly offering more clean abstractions.  A project
can surely transport a message to new users this way.

And please, let us not try to consider theoretical needs of potential
guile users but rather concentrate on the needs of the guile maintainers
and current users.  The time to discuss things which can negatively
influence maintainability and testability is the time when an actual
potential user comes along, not earlier.

As a side example, think of how the Linux kernel would have dissolved to
be an unmaintainable nightmare if every system call suggested on the
mailing list would have been adopted.  A project is well advised _not_
to follow each and every cry of every developer.  That's because crying
is easy, but maintaining ain't ;)

Ok so much for my "bystander view".  Thanks for listening.

These days, even the most pure and abstract mathematics is in danger
to be applied.

reply via email to

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