News for hackers. Stuff that matters.
Re:Ruby, Smalltalk and Class Variables by protomyth on Monday December 17, 2012 @01:06PM (#4933448)
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 affect Polygon (which has its own variable), but anything that has a parent pointer of Triangles get the 3.

Re:Ruby, Smalltalk and Class Variables by draegtun on Tuesday December 18, 2012 @04:20AM (#4936702)
Io (http://iolanguage.org/) shares the same differential inheritance has NewtonScript:

  Polygon  := Object clone do( sides := 10 )
  Triangle := Polygon clone
  
  Triangle sides println    # => 10
  Triangle sides := 3
  Triangle sides println    # => 3
  Polygon sides println     # => 10
Re:Ruby, Smalltalk and Class Variables by Someone on Monday December 17, 2012 @05:03PM (#4934667)
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 by protomyth on Tuesday December 18, 2012 @02:26AM (#4936465)
It is too bad someone hasn't gone back a released a retooled, s-expr version of Dylan. It was an interesting language. People should read the manual (infix) just to see how they did macros.