Chris Prather recently asked "
who is generally complaining about the slings and arrows of outrageous dependencies", which got me thinking (and I will get back to that thought in a moment).
Next comes
Jonathan Rockway and his
emacs fetish. Jonathan left a
comment on Dave's blog which if you didn't know Jonathan, might be mistaken for an attempt to ignite the eternal Emacs vs. VI flamewar. But if you look beyond the emacs fanboi-ness of the comment you will see that Jonathan is (as usual) really making an excellent point about
Padre, its extensibility as an editor, its dependencies and the choices its authors are making in relation to those things. This got me thinking about what
Moose might be able to bring to the
Parde party, good or bad.
So, now for my thoughts ...
To answer Chris's question, there are at least the two people who commented in the RT bug. The first is Adam Kennedy, who loves all things fast and tiny and has long complained about
Moose's appetite for CPU and memory. And the second is
Mark Stosberg who is a big advocate of
vanilla CGI on which
he and I have long disagreed. It is not surprising that neither of them like
Moose. Are they representative of some kind of majority? Or just religious extremists worshipping at the altar of slim computing? It is hard to say, they both have valid concerns, but history and trends are pretty clear in how bloated software and ever improving hardware are constantly pushing one another forward (Moore's Law FTW).
So,
as I said before, I agree-to-disagree with Adam and on his points, but the more I think about it, I think perhaps he is just knee-jerking here and possibly even using RT in anger. In the RT bug he says
This adds a huge amount of additional dependencies
Now, you might say "Wait a minute, thats a non-trivial amount of additional dependencies", and in fact you would be correct. However, the likelyhood that
Moose is already installed is fairly high and growing by the day as it's
popularity increases and already popular modules like
Catalyst start using it. You see,
Moose is not like other CPAN modules which simply provide a specific feature for a specific need, but instead is a tool to extend the language itself and which you use to create other CPAN modules. Because of this, the chance of having
Moose already installed, either directly or because you install
one of the approximately 600+ modules that use it, is pretty high.
Adam's next point about startup time is valid, this has long been an issue with
Moose. We have made great strides on this issue over the years, but there is still a ways to go. How much this truly affects
Padre though is debatable, as Jonathan Rockway pointed out, how many times a day/week/month are you really going to be starting up your text editor? Is startup time for a featureful IDE with possibly many plugins really that big of a deal? It certainly hasn't seemed to slow down the adoption for things like Eclipse.
And finally, to Adam's last comment ...
If this can't be fixed, we're going to need to remove Array::Compare (and everything that uses it) from Padre
this was actually the part that concerned me most because of what Adam is saying to all the authors of
Padre's
62 non-core dependencies. While I do believe CPAN developers should look downstream before adding dependencies in the spirit of being a good neighbor, I think it is a little unreasonable for those upstream to dictate what is and is not an acceptable dependency.
Sure Dave's
Array::Compare is a straightforward module and the benefits
Moose brought to it were fairly minimal. But there are some pretty complex modules in
Padre's dependency list, many of which could probably benefit greatly from
Moose. And what about
Padre plugins? Are they allowed to use
Moose? What if they become popular plugins and the
Padre folks want to merge them into the core? Do they have to shed the
Moose before being allowed in? Where does this insanity end!?!?!
Because of this, I really think
Moose has proved itself not to be just a fad, especially considering this momentum has been steadily growing over
3 and a half years now. While it might be reasonable of Adam to request upstream deps not use
Moose right now, how much longer before this becomes a real problem for
Padre? Will the culture of
NIH set in? Should
Padre embrace the
Moose future now? Has anyone even benchmarked/profiled how much of an impact
Moose would have on
Padre?
So Internets, what do you think?