Hi,

Since I'm speaking generally, rather than responding, I hope top posting is 
considered acceptable.

Things I'd like to see done differently (not exactly things I don't like, but 
just irritate me)

1) See Moose more as a way to hook up a bunch of suger, like MX:Declare, 
advanced types and exceptions, possible event multi methods and the stuff in 
Moose::Autobox.

2) So more deep stuff moved to MOP, like Roles (not sure if this is possible, 
but you said anything :) )

3) Type constraints decoupled from Moose and some things changed under the hood 
to make it easier to improve error messages for things like MX:T:Structured and 
other changes so that slurpy in MX:T:Structured doesn't have to be an evil 
hack.  A stand alone type constraint system that makes it easier for me to 
complete the dependent and faceted type stuff sitting inthe repo for like a 
year would be nice.  And of course a sweet MooseX::Declare style syntax.  Then 
we can end the stringy types versus MooseX::Types style types issue for good.

4) Lispy conditionals (I know it's been said before, but I think we are closer 
now to making this workable)



----- Original Message ----
> From: Yuval Kogman <nothingm...@woobling.org>
> To: moose@perl.org
> Sent: Tue, November 10, 2009 2:49:44 PM
> Subject: Time for a rewrite
> 
> Just kidding ;-)
> 
> But there is some truth:
> 
> 1. MooseX::Declare has gained us a lot of insight on what we can do
> substantially better
> 2. We learned how to structure extensibility with traits
> 3. we got a bunch of stuff wrong (ranging from slightly annoying to "oops,
> sorry")
> 4. we have probably gotten things wrong that we don't know about
> 
> Fortunately the MOP api is designed to be extensible, the only unanswered
> question is what defaults to we ship.
> 
> I think it's time to start thinking about how to get Perl's 'use 5.010' for
> Moose, in one form or another.
> 
> Fortunately, Perl kinda sorts this out for us:
> 
>     use Moose 0.92 qw(foo bar);
> 
> This will:
> 
> 1. require Moose
> 2. call Moose->VERSION(0.92) from the POV of the caller
> 3. call Moose->import(qw(foo bar))
> 
> In terms of infrastructure I think that doesn't take much else,
> Moose::VERSION will simply init_meta slightly differently, and the import
> routine can act accordingly (it is already capable of detecting
> pre-initialized metaclasses).
> 
> I think if we structure Moose's features in a more plugin like architecture,
> where the metaclass instance can augment or replace the Moose::Exporter
> stuff to some extent, it should be trivial to make a future and backwards
> compatible way to keep things clean.
> 
> Using a metaclass centered approach we can just let polymorphism ensure we
> have all our opportunities open.
> 
> So anyway, I'll reply to myself with what I dislike about Moose in its
> current form, and I hope you do the same



      

Reply via email to