We have been discussing here for long time that the meta-model approach
of Moose is not that much adapted to the problems of reverse engineering.
Because we need to model detailed informations on the programs being
modeled, Famix has many entities that are language specific.
Up to now we manage because Moose "core" deals with only two languages:
Java and Smalltalk
But if we wanted to deal with other languages C#, PHP, Python,
Java-script, Cobol, Pascal, Lisp, ... we would have to add entities
and/or constructs specific to each language and the tools would become
less and less generic.
More recently, it occurred to me that this is very similar to the kind
of issues one has to deal with in a statically typed language (Java is
evil :-) ).
So basically Famix introduced static typing in Moose.
If this analysis is correct, the questions would be:
- was it necessary to go that way? why?
- is there another way to do it? more in tune with the smalltalk way of
life?
nicolas