On 27.12.2010 23:17, Angus Croll wrote:
So anyway your later python vs. Js examples would not apply to languages like java
Yes, of course. That what I described as "second-class static classes", where "second-class" term means classes cannot participate as normal data (i.e. be passed as arguments to functions) and "static" -- means, yeah, statics ;). The opposite (well, alternative) thing -- "first-class dynamic classes", where again, "first-class" (and you know it) means an ability to participate as normal data -- that is, we may easily to pass a class as argument to a function, etc in such languages as Ruby, Python CoffeeScript, etc. And "dynamic" -- yep, dynamics (an ability to mutate -- to augment with new properties which will be available via delegation and to remove properties).
One suggestion - it might help to demonstrate the universality of classes if we use the term 'type' (or 'custom type') since such a term is used freely in almost every language
Yes, the term "type" is related with classification. It's funny, but even on the very-very lowest, level the memory (abstractly) is also classified (_typified_) with classification tags. That's how e.g. pointers to `int`, `float`, etc types distinguishes. There are data slots, and a special slot of a type/class which serves as a classification tag.
Also, in the class-based paradigm a type can directly be related with a class (and vice-versa). I.e. when we create a new class -- we define a new _type_ (in C++ and Java). And this can be considered as one of differences from a prototype-based system.
Thank you too, Angus for discussion ;) Dmitry. -- To view archived discussions from the original JSMentors Mailman list: http://www.mail-archive.com/[email protected]/ To search via a non-Google archive, visit here: http://www.mail-archive.com/[email protected]/ To unsubscribe from this group, send email to [email protected]
