in reply to Re: Moose or Mouse for production use
in thread Moose or Mouse for production use
I've been pondering this question for days whilst following along on this thread, and other recent Moose threads.
Let me say up front that I think Moose is incredibly clever, complete and well supported and maintained code. But here's the question that I've been asking myself for most of the last 3 years, and for which I yet to find a satisfactory answer to when I've looked arounnd.
What, besides declarative syntax and auto-generated accessors--which are both available at far less cost from other modules--does Moose buy the application programmer, that makes it worth the not inconsiderable costs?
For (my) best interest, I'm not looking for a straight list of features--which I have found around. I'm more looking for examples of how people have used those features, to implement something that they would have had to implement anyway, had they used some other OO framework. But which Moose made significantly simpler to implement and/or significantly more effective.
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^3: Moose or Mouse for production use
by stvn (Monsignor) on Apr 02, 2009 at 01:42 UTC | |
What, besides declarative syntax and auto-generated accessors--which are both available at far less cost from other modules--does Moose buy the application programmer, that makes it worth the not inconsiderable costs? Moose is much more than "declarative syntax and auto-generated accessors" it also provides: For (my) best interest, I'm not looking for a straight list of features--which I have found around. Okay, the "list of features" not what you want, here is a "list of benefits" for Moose. I'm more looking for examples of how people have used those features, to implement something that they would have had to implement anyway, had they used some other OO framework. Here are 382 examples :) Honestly, I think perhaps the best way to answer this question is to try out Moose for yourself. You have been dancing around Moose for years now and (as best I know) have not just sat down and tried to solve a problem with it. There is no better way to know if Moose is useful for you then to just give it a try.
-stvn
| [reply] [d/l] [select] |
by BrowserUk (Patriarch) on Apr 02, 2009 at 03:46 UTC | |
Okay stvn, since you've chosen not to answer the question I asked, I'll try to respond to what you have said. You've repeated the features list I've already seen. But, you sound vaguely like Jeremy Clarkson when describing the latest run-of-the-mill family hatchback or people-carrier. He's always sure to mention the 17, strategically placed, one-touch-deploying cup-holders--and the vanity mirror! But you have to catch his tone. Features are all well and good, but unless they implement something for me, that I would have had to implement manually, then the questions become: Do I need that feature? Or will I benefit from that feature in seriously significant ways? You don't (and never have?) addressed these questions. If, like the cup-holders and vanity mirrors, their cost was insignificant, then fine, I'll take them. But, when the costs are significant--like say, ceramic disk brakes that I'll never need except for track days or the next time James Bond is chasing me down an alpine pass--then given the option, I'm going to decline to pay for that feature. So then we come to your second list. Which I can only describe as 'subjective sales hype'. That doesn't mean that there isn't important (or just good) stuff in there. It just means that when I see an advert for detergent or shampoo that claims "New formula" or "contains Jojoba extract", I don't instantly run out to buy it. I tend to ask: Is that new formula an improvement over the old one? And is it a significantly better formula than the supermarket's cheaper, 'own brand'? Or: Does the inclusion of Jojoba extract get my hair cleaner? Or improve its health in some significant way? Now let me take your "benefits" one at a time: The 382 examples are all well and good, but they do not tell me how the Moose solution stacks up against an equivalent non-Moose solution. Most importantly, do they make good use of some Moose-only feature that significantly simplified their implementation? Or significantly enhanced their function or usability? And to that end, a pointer to single example of some reasonably substantial class--preferably written by someone with a reasonable amount of non-Moose, Perl OO, and who is not one of the Moose cabal--would be far, far more impressive than either the sales pitch or the numbers game. Especially if they could be persuaded to write a "wart's and all" comparison of their experiences. Honestly, I think perhaps the best way to answer this question is to try out Moose for yourself. Actually I have had a few goes, that I can categorise them in two ways: And I guess that last point is my point. What is it (pragmatically speaking) that they are seeing that I am not? They cannot all be writing performance-irrelevant shopping carts and whatnot. Or working for big government where they can just throw hardware at the issue. And not all of them can be fashionistas. So, somewhere amongst them, there must be one or two that have chosen to use Moose, rather than one of the 'cheaper' or less 'of-the-moment' equivalents, because they see real, practical, hardnosed, unavailable-anywhere-else benefits. And that all I'm asking for. Some reference to some blog or write up that describes the experience of using Moose, for a real project, that goes beyond the "It's real cool!" level. In all our discussions, I've tried very hard to be non-negative regarding Moose. I really want to like it. But so far, maybe it's just the kind of code I find myself needing to write, I haven't seen the killer feature that balances the equation. And I've failed to find anyone else that describes one either. Maybe I'm just looking in all the wrong places. Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
"Science is about questioning the status quo. Questioning authority".
In the absence of evidence, opinion is indistinguishable from prejudice.
| [reply] |
by tilly (Archbishop) on Apr 02, 2009 at 05:16 UTC | |
This gives you a sense of how migrating to Moose worked out for a good programmer on a realistically complex code base. Better yet, he describes exactly why it was helpful for him, and you get to see both the positives and negatives with a timeline to indicate how much of an investment this was. Speaking personally my reaction was, "I'd rather work on a small code base without all of that complexity." But if I had to work in a larger code base, I'd definitely investigate whether Moose could clean things up. | [reply] |
by BrowserUk (Patriarch) on Apr 02, 2009 at 07:42 UTC | |
by stvn (Monsignor) on Apr 02, 2009 at 06:07 UTC | |
It is way to late here (2 a.m. EST) to respond to you in detail, but let me just respond to one of your final points that struck a chord. But so far, maybe it just the kind of code I find myself needing to write, I haven't seen the killer feature that balances the equation. I think that is the key, the type of code you write is not a place where Moose would help. I get the impression (based on this and your other posts) you mostly write a combination of "limited shelf life" scripts and "CPU-intensive" programs, neither of which Moose (or even OO for that matter) really is useful for. Where Moose really has benefits is when programming larger OO applications such as "performance-irrelevant shopping carts and whatnot", which is also where OO in general is most useful (and why people don't write shell scripts in Java). Honestly, there is nothing that you can do with Moose that you can't also do without Moose, on some level it is about "how you get there". Sometimes it is nice to have "one-touch-deploying cup-holders" and "vanity mirrors" and also to know that even if your just driving the kids to soccer practice you have "ceramic disk brakes" to protect you and your family. And yes, I am implying that some day Moose will save your life !!! Install it now and Save 50%!! It slices, it dices, it can even cut at Tin Can!! Yes, that's right, act now ... get them while supplies last ... operators are standing by ... once in a lifetime offer ...
-stvn
| [reply] |