On 27-06-2011 14:28:34 +0200, Dirkjan Ochtman wrote: > So I know a bunch of people have already looked at it, and I'd like to > know: what do you find better about the Ruby approach compared to the > Python approach? Is it just the size of python.eclass, or are there a > number of other issues?
Part of the eclass problem is IMO coding style. Change it to use normally-sized variable names, and to respect 80-columns width, and it already becomes much more consumable. The whole comparison of Python vs Ruby vs Java and perhaps the outlook to Perl is kind of hard. What the python eclass accomplishes is very neat. What probably started as a way to be able to have both python 2.x and 3.x installed side by side (because the latter is not really compatible with the former) got IMO out of hand by supporting any python version to coexist with another. I guess many people developing with Python actually love this feature, and in itself, I believe it has use that cannot be ignored any more now. The way in which this feature was implemented -- sometimes it more felt as pushed through the throat -- is more of the rebelious kind than the smooth path for ebuild developers. It would be nice when a similar technique could be implemented only once, in a consistent way. In a way, multilib-portage can be considered equal to one of the objectives of the python (and ruby) eclass: multiple times compiling and installing for different ABIs. All in all, I don't fancy a rewrite from scratch, since it all works at the moment, and doing so takes another large bit of work. Instead, aligning the work with others to create a similar approach in ebuilds (for ebuild developers) would be favourable to me. And perhaps that should mean that variables which contain versions with some syntax that specify ranges and more should just go, to be replaced by something which is much less powerful in expressiveness, but much easier to understand in the general picture, such as the USE-flags from the ruby eclass. Just my €0.02 -- Fabian Groffen Gentoo on a different level