Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

It is my impression that, over time, more and more open source code is generated, added to various free or partially free repositories, and then generally abandoned.

Are there any generally accepted standards for disposing of abandoned code? Should this be enforced by repositories, or would this be something that's up to the original code authors to do?

share|improve this question
1  
Why would it need to be disposed of? If it's Open Source, somebody might want it for something sometime, and it doesn't cost much to keep it in repositories. –  David Thornley Feb 7 '11 at 14:42
    
What do you mean by "standards for disposing of abandoned code"?? "del ." ? –  Rook Feb 7 '11 at 14:44
    
@Rook: Or "rm -rf *" for Unix/Linux users. –  David Thornley Feb 7 '11 at 22:02
    
@David Thornley - yes, well ... you get the point :) –  Rook Feb 8 '11 at 0:53

3 Answers 3

up vote 5 down vote accepted

The big problem here is deciding when something is abandoned.

Old software is used by people with old machines or conservative upgrade policies (for example banks), so a file which is downloaded maybe 10 times per year could still be useful to lots of people who just never upgraded. If they ever need to reinstall, they should be able to get a hold of an old version which is compatible with their system.

Obsolete software (replaced by an upgrade or drop-in replacement) can also be useful to lots of people. Witness the browser bugs of the 90's which would result in no-upgrade policies even in the face of security patches because other software depended on bugs in a specific version.

So I'd say no, simply because there is no reliable way to determine whether the software is still in use. Absence of evidence is not evidence of absence :)

share|improve this answer
    
+1 for last sentence. You can never tell who relies on that software, which is why Microsoft places almost infinate precedence on backwards compatibility. –  Michael K Feb 7 '11 at 15:19

You might as well ask the same question about literature or music. There is surely a lot of "truly abandoned" old software written in the 80's that you're not aware of because, well, nobody uses it or thinks about it anymore. But there's no authority figure that disposes of it, because it's all decentralized. That's just the nature of the web. The only real measure of how successful a piece of software is, is how many people still find a compelling reason to keep using it. When it runs out of supporters, it dies a natural death.

Similarly, we tend to see every 18th century composer as Mozart, and every 16th century playwright as Shakespeare. Sturgeon's Law dictates that 90% of everything both now and then is/was crap, but you are more familiar with the crap that exists now because it hasn't had enough time to experience complete user decay.

share|improve this answer

It's a maintenance concern for the repositories that house the dead code. They consume resources, even if there is no traffic to those projects. A provider has two choices: get rid of it or keep it indefinitely. Some places like SourceForge choose to keep projects until the owner manually removes them. Even then they still have archives.

The best approach I've seen for getting rid of old libraries that are no longer used for anything new is this approach:

  • Deprecate the library--put it in the software equivalent of the "attic". That means that you send a notification message out to the known email distribution lists, and shut those lists down. The "attic" is an HTTP only access location so that any interested users can download a copy as they choose. The pages will all have the "deprecated" disclaimer, and if the project's language supports it the API will all be marked as @deprecated.
  • After a specified period of time in the attic (at least a month, or possibly a year, depending on the policies), remove the library completely.
  • Remove all references to the library on your site.

Usually the dead projects are dead because there is no community around it, no maintainers, no users who care enough to be in the users email distro, no activity on the email distros, etc. The final email blast will get any passive users (the guys who are using the stuff but not contributing in any way) a final chance to get what they will. It also tells them that they have to migrate away from the project or pick it up to maintain for themselves.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.