3 ms·
Regarding "What achievement can Perl 6 claim?" At least one is 6Model itself -- a generic object semantics and API which has been back ported to Perl 5, has be
by jedharris 13y ago
Regarding "What achievement can Perl 6 claim?"
At least one is 6Model itself -- a generic object semantics and API which has been back ported to Perl 5, has been ported to the JVM (with a lot of optimization still pending) and as we see here is a reasonable design for part of a VM API.
As far as I know 6Model is the only candidate around for a low level object model that is flexible enough to implement the object semantics in most languages, low level enough to be be efficiently implemented in most VMs, etc.
- jedharris 13y agoIf anyone is curious look at https://github.com/jnthn/6model/blob/master/overview.pod https://github.com/jnthn/6model/blob/master/overview.pod There may be more comprehensive / current documentation out there but I don't know where.
- chromatic 13y agoa generic object semantics and API which has been back ported to Perl 5 Do you mean Moose or the abandoned Perl 5 MOP experiment?
- jedharris 13y agoBoth, I guess, though claiming Moose is better PR.
- jedharris 13y agoI don't know enough history here. The current Moose docs say "Moose is built on top of Class::MOP" so maybe there was a different MOP effort that succeeded? That MOP is probably closer to 6Model than Moose itself.
- chromatic 13y agoMoose and Class::MOP predate 6Model. As far as I remember and can verify, Moose 1.0 was out (spring 2010) before 6Model even existed or had a name (late 2010). Moose did take inspiration from the object model designed for Perl 6, but it grew out of attempts to implement that object model in Pugs, not Rakudo. You might even say that it was the first full implementation of the Perl 6 object model.
- jedharris 13y agoThanks for the history. Sounds right. So 6Model and Moose are siblings, rather than parent / child. I think my original point, though, holds up: One of the actual delivered achievements of the Perl 6 project is a sophisticated flexible object model, now in production outside of Perl 6, and also the basis of deeper (re)design within Perl 6.