Just to play the devil's advocate (that's the C devil's advoCate), here
is some source from Tcl (*not* Tcl source):

/*
 * This structure describes per-instance state of a tcp based channel.
 */

typedef struct TcpState {
    Tcl_Channel channel;                /* Channel associated with this file. */
    int fd;                             /* The socket itself. */
    int flags;                          /* ORed combination of the bitfields
                                        * defined below. */
    Tcl_TcpAcceptProc *acceptProc;
                                        /* Proc to call on accept. */
    ClientData acceptProcData;          /* The data for the accept proc. */
} TcpState;

Admittedly, the concepts are fairly low level: sockets, flags, and such,
but this is code that can be maintained!  This is undoubtedly open
source at its best.

I guess the problem here is predicting the evolution of open source.  It
certainly started with C (Stallman, Torvald, etc.), but will it stay
there?  Obviously, I don't know.

John

Thomas Beale wrote:
> 
> "John S. Gage" wrote:
> 
> > Perl and Python are open source projects written in C, I believe.  Which
> > programmers do you want contributing to medical open source?  The one's
> > who wrote Perl and Python or the one's who use them?  The only reasons
> > to go to higher level languages is to 1) involve domain experts in
> > coding, which as we have seen will never happen or 2) increase
> > productivity.  It then becomes a question of who's productivity will be
> > increased: the programmer's or the clinician's.  Would anyone really
> > argue that if there were a very large group of C programmers devoted to
> > medical open source that they should be forced to program in another
> > language?
> 
> Not just productivity. THe two most important qualities to imbue in a
> software product are:
> 
> - maintainability - tha ability to economically find and fix bugs;
> predicated on _comprehensibility_ of both design and implementation
> - extensibility - the ability to be able to enhance the product according to
> new requirements.
> 
> These two activities together constitute more than 50% of the total cost of
> most software over its lifetime, and are primary quality factors. You cannot
> afford to ignore them.
> 
> These qualities are provided quite differently by programming in C versus
> say Eiffel or some other high-level language. Languages like PERL and C both
> require serious effort to ensure maintainability because you can do almost
> anything you want (PERL especially). I'm not saying don't use these
> languages, just that there is a cost involved in using them properly, a cost
> that you will bear for years after deployment potentially.
> 
> - thomas beale

Reply via email to