[Pharo-project] A radical proposal (to cut down dead code)

Norbert Hartl norbert at hartl.name
Sun May 29 10:37:36 CEST 2011


Am 28.05.2011 um 15:35 schrieb Marcus Denker:

> Hi,
> 
> There is *a lot* of dead code in the image.
> 
> I guess around 1/3 of the code base in Core is just not used at all (especially Morphic).
> 
> One thing I would like to do is to put, at the beginning of a development cycle,
> a call
> 
> 	self doesAnyOneUseThisTaggedIn: 'pharo 1.3'.
> 
> at the beginning of *all* unsent methods. And keep it even in the released image.
> 
> This way we can, within 2-3 interations, remove *a lot* of dead code.
> 
> Methods where people tell us that they need them, we should tag
> with <api> or <public> or something like that.
> 
I like the idea although I think it is dangerous. I think we could provide a layer of backward compatibility. It is dead code so these are things that are there but unused. So removing them does not force any other change. A removal could be done this way:

- create a monticello package "removal20110529"
- Let a tool that identified a bunch of methods change the method category to "*removal20110529"
- store the monticello package
- unload it which will remove the methods.

This way the removals would chronologically stacked in monticello packages. A developer can now go back in time if he has problems until the point the code works again. Furthermore this would be a documentation when we removed which code.

Norbert


More information about the Pharo-project mailing list