This is one of the areas that prototype-based languages simplifies although access issues might trouble class lovers. I do miss NewtonScript for some things. Example: I create an object called Polygon with the intent to use it as a prototype. I assign the variable sides with a value of 10. So, anything with a parent pointer of Polygon gets 10. I then create Triangle from Polygon and assign sides = 3. It doesn't affec…
Ruby, Smalltalk and Class Variables
11–15 of 15 posts
Re: Ruby, Smalltalk and Class Variables
#12Re: Ruby, Smalltalk and Class Variables
#13This is one of the areas that prototype-based languages simplifies although access issues might trouble class lovers. I do miss NewtonScript for some things. Example: I create an object called Polygon with the intent to use it as a prototype. I assign the variable sides with a value of 10. So, anything with a parent pointer of Polygon gets 10. I then create Triangle from Polygon and assign sides = 3. It doesn't affec…
Making that simple is not necessarily limited to prototype-based languages. Another (as good as) dead language of Apple's design, Dylan, is class-based, but has a 'each-subclass' modifier that makes a slot magically appear new in each subclass. You would have to design your polygon class for that, though; it is not something that triangle could magically add.
Re: Ruby, Smalltalk and Class Variables
#14ref: stvn == "Stevan Little" who is the creator of Moose (https://metacpan.org/module/Moose) & and it's MOP underpinnings (https://metacpan.org/module/Class::MOP)
Re: Ruby, Smalltalk and Class Variables
#15This is one of the areas that prototype-based languages simplifies although access issues might trouble class lovers. I do miss NewtonScript for some things. Example: I create an object called Polygon with the intent to use it as a prototype. I assign the variable sides with a value of 10. So, anything with a parent pointer of Polygon gets 10. I then create Triangle from Polygon and assign sides = 3. It doesn't affec…
Polygon := Object clone do( sides := 10 )
Triangle := Polygon clone
Triangle sides println # => 10
Triangle sides := 3
Triangle sides println # => 3
Polygon sides println # => 10