[Pharo-project] A radical proposal (to cut down dead code)
Casimiro de Almeida Barreto
casimiro.barreto at gmail.com
Tue May 31 23:42:19 CEST 2011
Em 31-05-2011 16:12, Igor Stasenko escreveu:
> On 31 May 2011 21:44, laurent laffont <laurent.laffont at gmail.com> wrote:
>> Another idea (don't know how hard it is) is to have test coverage + comment
>> coverage in Hudson.
>> Then we can start to consider that dead code = code with no test or no
> Laurent, have you tried to run lint rule checker in pharo image?
> I tried once and if i remember correctly, there are like 30000 notices.
> Now, what you think, is it possible for any human to visit all of them
> step by step
> analyze and then fix the code? It is enormous amount of data (and most
> of it is just white noise,
> or insignificant detail). Now how to filter that noise and address the
> only things which you should take care of?
Here comes the importance of having a foundation or any other kind of
entity enabled to run for financial resources necessary to keep people,
doing these "insane tasks" :) as well as physical resources (computers
with versions of OS, etc)...
> And since we're continuting development, every time you doing an
> update, this stuff should be revisited,
> compared and cross-checked again. And we don't have such facility:
> take image A and B, and compare their lint output.
Here comes the importance of agreeing about a closed (in terms of scope)
and reduced (in terms of size (ie, # of classes and messages)) core that
can be frozen while cleaning is done. Otherwise it's like manufacturing
an airplane while it's flying from factory to owner... which increases
the "insanity factor" several orders of magnitude.
> I imagine this would require a quite sophisticated database , with UI
> on top of that, which will allow you to navigate
> through these notices mark them as invalid, or fixed etc etc..
> What i mean that automated tools is cool. But they cannot solve all
> our problems: every such issue should be analyzed and considered by
> Because we're still not yet at the point, where system can reason
> about itself and automatically improve itself without need of our
> attention :)
> If this day will come, then it will be the end of humanity (at least
> in its current form - homo sapiens sapiens ;)
Additionally, one issue with metacello is that it incorporates both
infra-structure stuff and things that are more like end-user
applications. It's not a tradition to keep things orthogonal: there is
code that inserts/deletes/modifies things in places that should
constitute foundations. For instance, some time ago there was discussion
about ad-hoc (thus mostly undocumented) methods/messages in places like
OrderedCollection... What's the sense in this state of affairs? IMHO
it's an ad-hoc situation and cleaning process must fix & transform it
into a sustainable situation. That's overcoming past.
More information about the Pharo-project