« Great Interview about the Latest Catalyst Release | Main | Catalyst - Web Framework »

04/24/2009

Comments

Feed You can follow this conversation by subscribing to the comment feed for this post.

Hans

John-But what _specifically_ do you like about Moose? You are quite emphatic how much you like it, but that does not really tell me anything.Also, how is Moose performance? Perl is quite slow if you are calling very small functions (manual inlining is sometimes necessary, ugh). And perl is also slow if you are handling a lot (100000 and more) of small objects. Doubling that overhead by going through an additional OO layer sounds bad to me.Thank you!Hans

John Napiorkowski

I wasn't really intending this to be a feature list of great stuff about Moose, it was more aimed as a meditation. I would say the number one reason I like Moose is that it makes using Objects in Perl very easy and it gets out of the way. For example, the way Moose does Attributes is really great. Unlike Java, which I like from a completeness and overall expressiveness view, which requires a lot of boilerplate code to get even simple things done, Moose and the Moose tool chain (like MooseX::Types and related) is very quick to roll out your ideas.I guess I'll write a new blog next, "Top 10 things great about Moose" and I'll make that more feature oriented. Until then I recommend the Moose project homepage which maintains tutorials and links to presentations that review Moose and discuss some of the features.For the speed issue, I know there are companies using Moose in production on websites getting 10-15 million pages views a day. So Moose can scale. I really can't speak to Perl being slow overall though, since for me it's fast enough and the scaling options are good. If you need a dead fast language, OCAML is rumored to be super fast.Without more context I really can't say more. For me, reducing complexity, and giving me a lot of open sourc code as well as a large community is more important than dead speed in a single process on a single box. Your needs may be different. For example, I wouldn't use Perl for realtime stuff, or for things like launching the Space Shuttle or writing heart monitoring software.

Hans

Thanks, John. I just saw you posted the "Top 10". Looking forward to reading it.As for performance: my perl-based software manages complex structured documents. They model as trees of 100s of thousands of nodes of different types. Kinda like how you'd model very large XML. Traversing these documents in pure perl is rather slow. I'm looking forward to a parrot JIT based backend. Simple objects might actually be fast then. Alternatively, an XS based backend has big problems with deployment....CheersHans

John Napiorkowski

Editorial note: I deleted a recent comment by "http://sandy183.vox.com/" since it contained an advertisement for a sexual therapy. I have nothing against it overall, but I object to someone misusing this conversation thread in that matter. I will quote the semi relevant part of the comment:[quote] Hey Also, how is Moose performance? Perl is quite slow if you are calling
very small functions (manual inlining is sometimes necessary, ugh) [/quote]There are numerous blogs concerning this topic. For myself, I find Moose performance to be more than good enough and the speed penalty over Mooseless Perl is small enough that give how much better Moose makes my Perl programming on every benchmark available (better code, less errors, more readable and maintainable, amazing community support, etc.) I have no reason to worry about the performance price.Your needs may differ. I heard Erlang is a very fast language, if crazy speed is a core requirement you may wish to take a look.

The comments to this entry are closed.