Re: Perl 6 OO and bless

2006-01-23 Thread Piers Cawley
John Siracusa [EMAIL PROTECTED] writes: On 1/18/06 11:06 PM, Rob Kinyon wrote: Not to mention that 90% of the hacking done in Class:: and Object:: will handled by the fact that Perl6 has actual OO syntax. (Look Ma, no hands!) You won't need Class::MakeMethods because Perl6 will make your

Re: Perl 6 OO and bless

2006-01-20 Thread Rob Kinyon
On 1/19/06, chromatic [EMAIL PROTECTED] wrote: On Thursday 19 January 2006 19:50, Rob Kinyon wrote: Nothing. Just like it's not a problem if Perl6 uses one of the Ruby-specific PMCs for storage. In fact, the alternate $repr idea is specifically to allow for the use of foreign datatypes as

Re: Perl 6 OO and bless

2006-01-20 Thread chromatic
On Friday 20 January 2006 07:14, Rob Kinyon wrote: I think this entire issue is rising out of the fact that very very few people in this discussion are familiar with the design of the MOP. Stevan and a few others are the primary movers and I'm lucky enough to have been Stevan's sounding board

Re: Perl 6 OO and bless

2006-01-20 Thread chromatic
On Thursday 19 January 2006 21:53, Stevan Little wrote: Okay, so when you say alternate storage then you mean that a class like this: class Foo { has $.bar; method new ($class, %params) { $class.bless('p5Hash', %params); } method baz { $.bar += 1;

Perl 6 OO and bless

2006-01-20 Thread Stevan Little
On Thursday 19 January 2006 21:53, Stevan Little wrote: With p5, you /can/ get to the underlying data structure. This is a break which will hamper the backwards compatibility effort I think. With Perl 5, you can *appear* to get to the underlying data structure. Yet tie() is basically free

Re: Perl 6 OO and bless

2006-01-19 Thread Juerd
Rob Kinyon skribis 2006-01-18 20:57 (-0500): Well, for one thing, you can't write OO code in P5. Nonsense. OO isn't a set of features, and OO isn't syntax. Granted, syntax can really help to understand OO, and a set of features is nice, because it avoids having to re-invent wheels. But OO is

Re: Perl 6 OO and bless

2006-01-19 Thread Rob Kinyon
On 1/19/06, Juerd [EMAIL PROTECTED] wrote: Rob Kinyon skribis 2006-01-18 20:57 (-0500): Well, for one thing, you can't write OO code in P5. Nonsense. OO isn't a set of features, and OO isn't syntax. Granted, syntax can really help to understand OO, and a set of features is nice, because it

Re: Perl 6 OO and bless

2006-01-19 Thread Juerd
Rob Kinyon skribis 2006-01-19 9:15 (-0500): OOP is all about black-box abstraction. This is probably the fundament of our disagreement. OO is about objects, which CAN BE but DO NOT HAVE TO BE black-box/opaque. It is customary, and good style, to treat objects as black boxes, but their actual

Re: Perl 6 OO and bless

2006-01-19 Thread Stevan Little
On 1/18/06, chromatic [EMAIL PROTECTED] wrote: On Wednesday 18 January 2006 18:54, Stevan Little wrote: Or are you thinking that a Perl 6 value should be blessed into a Perl 5 package? That's closer to what I had in mind. I think there is a real serious issue here since the hash the Perl

Re: Perl 6 OO and bless

2006-01-19 Thread Austin Hastings
Rob Kinyon wrote: OOP is all about black-box abstraction. To that end, three items have been identified as being mostly necessary to achieve that: 1) Polymorphism - aka Liskov substitutability 2) Inheritance - aka specialization 3) Encapsulation P5 excels at #1, does #2 ok, and

Re: Perl 6 OO and bless

2006-01-19 Thread chromatic
On Wednesday 18 January 2006 20:02, Rob Kinyon wrote: On 1/18/06, chromatic [EMAIL PROTECTED] wrote: Answer me this then -- under your scheme, can I subclass a Perl 5 class with Perl 6 code, instantiate the subclass, and use that object in Perl 5 code as if the subclass were Perl 5 code,

Re: Perl 6 OO and bless

2006-01-19 Thread Luke Palmer
On 1/19/06, Rob Kinyon [EMAIL PROTECTED] wrote: OOP is all about black-box abstraction. To that end, three items have been identified as being mostly necessary to achieve that: 1) Polymorphism - aka Liskov substitutability 2) Inheritance - aka specialization 3) Encapsulation P5

Re: Perl 6 OO and bless

2006-01-19 Thread Rob Kinyon
On 1/19/06, chromatic [EMAIL PROTECTED] wrote: On Wednesday 18 January 2006 20:02, Rob Kinyon wrote: On 1/18/06, chromatic [EMAIL PROTECTED] wrote: Answer me this then -- under your scheme, can I subclass a Perl 5 class with Perl 6 code, instantiate the subclass, and use that object in

Re: Perl 6 OO and bless

2006-01-19 Thread chromatic
On Thursday 19 January 2006 19:50, Rob Kinyon wrote: Nothing. Just like it's not a problem if Perl6 uses one of the Ruby-specific PMCs for storage. In fact, the alternate $repr idea is specifically to allow for the use of foreign datatypes as storage. Luke's excellent example is to use a

Re: Perl 6 OO and bless

2006-01-19 Thread Stevan Little
On 1/19/06, chromatic [EMAIL PROTECTED] wrote: Next question. If Ponie and Perl 6 are both running on Parrot, and if Ponie has PMCs that represent Perl 5 data containers, such as p5hash, p5array, p5symbol, and so on, what's the problem with having a Perl 6 object that uses one of those

Re: Perl 6 OO and bless

2006-01-19 Thread Juerd
Rob Kinyon skribis 2006-01-19 22:50 (-0500): There's already a mechanism in the P6 OO system for specifying the internal representation of the instance. Now there's the actual problem in its baremost form: indeed the *P6* OO system has that, but the *P5* OO system (excuse me for calling it

Perl 6 OO and bless

2006-01-18 Thread Stevan Little
Hello All, In reading over the Synopsis again in hopes of finding more information regarding the different repr types (see the warnocked post entitled Construction and Initialization of repr types other than P6opaque), I stumbled onto some issues with the Perl 6 OO model and bless

Re: Perl 6 OO and bless

2006-01-18 Thread chromatic
On Wednesday 18 January 2006 14:13, Stevan Little wrote: Do we really still need to retain the old Perl 5 version of bless? What purpose does it serve that p6opaque does not do in a better/ faster/cleaner way? Interoperability with Perl 5 code. Now if you want to write a p6opaque - Perl 5

Re: Perl 6 OO and bless

2006-01-18 Thread Rob Kinyon
On 1/18/06, chromatic [EMAIL PROTECTED] wrote: On Wednesday 18 January 2006 14:13, Stevan Little wrote: Do we really still need to retain the old Perl 5 version of bless? What purpose does it serve that p6opaque does not do in a better/ faster/cleaner way? Interoperability with Perl 5

Re: Perl 6 OO and bless

2006-01-18 Thread Stevan Little
On 1/18/06, chromatic [EMAIL PROTECTED] wrote: On Wednesday 18 January 2006 14:13, Stevan Little wrote: Do we really still need to retain the old Perl 5 version of bless? What purpose does it serve that p6opaque does not do in a better/ faster/cleaner way? Interoperability with Perl 5 code.

Re: Perl 6 OO and bless

2006-01-18 Thread chromatic
On Wednesday 18 January 2006 17:57, Rob Kinyon wrote: Well, for one thing, you can't write OO code in P5. I'll play your semantic game if you play my what-if game. I have a fair bit of Perl 5 code. Ponie works. I want to migrate my Perl 5 code to Perl 6 slowly. Everything new is Perl 6

Re: Perl 6 OO and bless

2006-01-18 Thread Rob Kinyon
On 1/18/06, chromatic [EMAIL PROTECTED] wrote: On Wednesday 18 January 2006 17:57, Rob Kinyon wrote: Well, for one thing, you can't write OO code in P5. I'll play your semantic game if you play my what-if game. I have a fair bit of Perl 5 code. Ponie works. I want to migrate my Perl 5

Re: Perl 6 OO and bless

2006-01-18 Thread chromatic
On Wednesday 18 January 2006 18:54, Stevan Little wrote: Are you thinking that one would be able to bless a Perl 5 reference into a Perl 6 package? Not really, but depending on the what Perl 6 bless() does it might work. I would argue then that we really don't need Perl 6 bless for this,

Re: Perl 6 OO and bless

2006-01-18 Thread chromatic
On Wednesday 18 January 2006 19:11, Rob Kinyon wrote: As for how that will be handled, I would think that it would be as follows: - in Perl6, objects created in another language will be treated as p6opaque (unless some other unbox is a more suitable $repr). ... and I specify this exactly

Re: Perl 6 OO and bless

2006-01-18 Thread Rob Kinyon
On 1/18/06, chromatic [EMAIL PROTECTED] wrote: On Wednesday 18 January 2006 19:11, Rob Kinyon wrote: As for how that will be handled, I would think that it would be as follows: - in Perl6, objects created in another language will be treated as p6opaque (unless some other unbox is a

Re: Perl 6 OO and bless

2006-01-18 Thread Rob Kinyon
On 1/18/06, chromatic [EMAIL PROTECTED] wrote: 1) by default, your object is opaque 2) if you don't want this, you can always use bless() For interoperability with Perl 5 classes, I don't want to use an opaque object. Ergo, I want to use bless() (or something, but does that explain why I

Re: Perl 6 OO and bless

2006-01-18 Thread chromatic
On Wednesday 18 January 2006 19:39, Rob Kinyon wrote: No, you want to specify the $repr in CREATE(). But, p6hash will still not be the same as a ref to an HV. Frankly, I think you're better off letting Parrot mediate things the same way it would mediate Ruby and Perl6 or Perl5 and Python.

Re: Perl 6 OO and bless

2006-01-18 Thread Trey Harris
Excuse my ignorance of the finer points, but I thought the reason for bless's continued existence was so that the same sort of brilliant OO experimentation that Damian and others have done with pure Perl 5 can continue to be done in pure Perl 6 without having to hack p6opaque? Trey

Re: Perl 6 OO and bless

2006-01-18 Thread Rob Kinyon
On 1/18/06, chromatic [EMAIL PROTECTED] wrote: On Wednesday 18 January 2006 19:39, Rob Kinyon wrote: No, you want to specify the $repr in CREATE(). But, p6hash will still not be the same as a ref to an HV. Frankly, I think you're better off letting Parrot mediate things the same way it

Re: Perl 6 OO and bless

2006-01-18 Thread Rob Kinyon
On 1/18/06, Trey Harris [EMAIL PROTECTED] wrote: Excuse my ignorance of the finer points, but I thought the reason for bless's continued existence was so that the same sort of brilliant OO experimentation that Damian and others have done with pure Perl 5 can continue to be done in pure Perl 6

Re: Perl 6 OO and bless

2006-01-18 Thread John Siracusa
On 1/18/06 11:06 PM, Rob Kinyon wrote: Not to mention that 90% of the hacking done in Class:: and Object:: will handled by the fact that Perl6 has actual OO syntax. (Look Ma, no hands!) You won't need Class::MakeMethods because Perl6 will make your accessors for you. There's more to life than

Re: Perl 6 OO and bless

2006-01-18 Thread Stevan Little
On Jan 18, 2006, at 10:41 PM, Trey Harris wrote: Excuse my ignorance of the finer points, but I thought the reason for bless's continued existence was so that the same sort of brilliant OO experimentation that Damian and others have done with pure Perl 5 can continue to be done in pure