KirinDave: have you figured out the differential inheritance? quag: I sorta grasp it. quag: Further information/explanation would always be appreciated. ok I think about it in terms of elephants :) if you are trying to describe a particular elephant to someone and you both know dumbo, you'll describe the new elephant to them with reference to dumbo you would say, he's like dumbo except his ears are smaller and his legs are longer and he is older and he can't fly the new object is described in terms of how it differs from an existing object Ahh That's a very good example. :) if a third elephant had to be described, it could be described in reference to either of the other two or in fact in reference to both of the other two if you don't mention an attribute specifically then it 'defaults' to the property of the 'prototype' the nice thing about describing objects in this way is you don't have to have a canonical elephant which all other elephants are described in terms of for some groups of things there is very little in common for example, there are few properties which all birds share How is this different from C++'s class declarations? so creating a hierarchy of birds and types of birds is hard but describing birds in terms of other birds is easy KirinDave: with C++ you still have types and instances with differential inheritance you only have instances (objects) so instead of saying one type is like another type, you are saying one object is like another object for example you could "BashRcFile := File clone setPath("~/.bashrc")" now you could use BashRcFile as a 'proto'/type/class or you could use it as an instance/object Ahh I see. That is a key difference the ideas behind differential inheritance are well documented in the AI field they used similar ideas for data representation 20-30 years ago Hmm that it where I first came across the idea it is also why we call fields slots I'll pull out my textbook when I get home and see what it has to say about that. Thanks quag, that helps a lot. Io makes much more sense when you think about it that way but it is cool that people can get away without understanding that for quite some time yeah, we need a whole section on this in the book if you understand differential inheritance and how it is implemented in Io, messages and how they are evaluated and coros you get Io wow,t ath's a good example oh, and how to write C extensions a class hierarchies are "is a" relationship if you get those four things you are set :) s I should really write up a series of articles on those topics yes you should it seems like prototype based languages are "kinda like ... but" languages erm, relationahips srbaker: not quite, there are prototype languages which don't use differential inheritance actually most don't I think Io and newtonscript are the only two huh the 'clone' word is a little misleading it just looks so natural in io. because clone implies a deep copy that is, the two objects from that point on a completely independent which is not how our clone works it means as you learn more about Dumbo, you also learn more about other elephants yay! dumbo! quag, does that make Io a frame-based language? :-) newtonscript was awesome