Subject: Re: [LON-CAPA-dev] lonc/lond

From: [email-masked]
Date: Fri, 8 Mar 2002 10:50:00 EST

>>There is actually only one question: why did this ever work at all?

Here's one possible answer:  it was debugged to life.  Since the system is so 
gargantuan I'm sure when it exhibited "correct" behavior it was assumed 
working; though never actually proven (mathematically or otherwise) to work 
correctly.  When competing for financial resources it's no surprise to see 
something thrown together at first to prove how beneficial it could be so as 
to keep funding.  If unlimited resources were available I'm sure parts of the 
project would be considered "throw-away" code or just a prototype of actual 
functionality and re-done later.  However, this is obviously not possible at 
this stage of production.  This is what one of my CSE profs would call a 
"Software Engineering Nightmare".  I'm happy to be a part of it anyway though 
:)

-Josh

---

From: Gerd Kortemeyer <[email-masked]>
Date: Fri, 08 Mar 2002 11:27:06 -0500

Well ... so I am working hard to get unlimited resources.

For now, we more or less need a feature freeze, and a big Spring Cleaning
effort. We jumped some big hurdles based on coolness (so the Nightmare was
worth it, so to say - now wake up to reality).

BTW, I don't think the architecture of LON-CAPA is quite as bad as your email
makes it sound. lonc, for example, as messy as it was, has a very well defined
function and a very clean interface to the other components of the system.
There is nothing wrong with that. Ron could replace it by another lonc.

lond also has a very clean function to the outside, and should now be cleaned
up inside (for example, in the long command section, the "print $client"
should be replaced by "$output.=", and then a routine &sendreply($output)
called, which makes sure that there is one and only one "\n" in the
concatinated $output. Repeated code should go into subroutines. Stuff like
that - needs a lot of testing when done, since lonc and lond are so vital.

In summary, I am still confident that concerted effort of stabilization and
documentation can be highly successful, especially if a wider community of
programmers and developers starts to address this. We just have to resist the
temptation to implement the next cool feature.

[email-masked] wrote:

> Here's one possible answer:  it was debugged to life.  Since the system is
> so gargantuan I'm sure when it exhibited "correct" behavior it was assumed
> to keep funding.  If unlimited resources were available I'm sure parts of
> the project would be considered "throw-away" code or just a prototype of
> actual functionality and re-done later.  However, this is obviously not
> possible at this stage of production.  This is what one of my CSE profs
> would call a "Software Engineering Nightmare".  I'm happy to be a part of it
> anyway though :)
>
> -Josh