Greetings All,
By your leave, I have a few basic questions I'd like to ask: 1. I downloaded a package called lively-fx.12.02.08 from your downloads page. I don't understand anything about how subversion works, so maybe I did something wrong. As far as I can understand this is a webpage. I should be able to drag index.xhtml to a browser icon from the folder on the desktop and get the same result as the Start The Very Latest Version link on the homepage. Or I could double click index.html, click "here" and see the gui. Am I confused about that? You'd deploy this in the server the same way as any index.html file. You'd just ensure all the <def></def> files in the <svg></svg> were immediately available. No? 2. What are these ".jar" files for? Those are Java binaries, I'm guessing, and this is an all JavaScript project. Isn't it? 3. You used classical inheritance with subclass() and extend() to implement Morphic, right? That means you're bringing Morphic to SVG is from Squeak and not from Self. Is that correct? For some reason I thought I'd see the true way to use prototypical inheritance in Lively Kernel, as I had it in my mind that Self + JavaScript = Lively Kernel. The Google Talks video was very useful. 4. Douglas Crockford has had an influence on how people use JavaScript. Learning about Self I see that the versatility of that language comes@a price. It's simple code. And I like the wholeness of it enough to explore it further, but it seems to use a smaller unit of composition than the class. The slot is a sort of mobile method, it seems to me. My point is that I think people find this language a bit confusing, Self and JS both, because the unit of construction, the granularity of the language, is much smaller than people are used to. They implement classical inheritance everywhere to use a larger unit of construction, I think. What have you taken from Mr. Crockford's use of JavaScript, and why didn't you use prototypical inheritance in the JavaScript? 5. How did you develop this? I mean, I'd like to have some Self or Squeak browsers or tools to manage JavaScript. As you can tell, I'm very interested in prototypical inheritance. It would be nice, when using JavaScript, to have a browser window to see a chain from top to bottom. Did you use such a tool? I can't see writing Core.js, which prints out to 124- pages, as one file you worked on in vi or BBEdit. You must have had some kind of IDE. Firebug is great, but it couldn't be so useful. .. could it? I'd like to say now that there are probably several material misunderstandings in the questions I've asked, and I apologize for mistaking things that are perhaps obvious to some. But as I said to Elliot Miranda on his blog: "Well, if you're here..." Chris Cunnington -------------- next part -------------- An HTML attachment was scrubbed... URL: http://livelykernel.sunlabs.com/pipermail/general/attachments/20090804/2d8abeea/attachment.html |
Chris,
I can't answer the Lively-Kernel-specific questions, but I've got a couple of thoughts about the more general prototype-based-system ones. (We could take this discussion over to http://groups.yahoo.com/group/self-interest/ if it's not appropriate here.) > 3. You used classical inheritance with subclass() and extend() to implement > Morphic, right? That means you're bringing Morphic to SVG is from Squeak and > not from Self. Is that correct? For some reason I thought I'd see the true > way to use prototypical inheritance in Lively Kernel, as I had it in my mind > that Self + JavaScript = Lively Kernel. Even in Self, we use a class-like pattern a lot of the time (see http://selflanguage.org/documentation/published/organizing-programs.html). I'm not very familiar with the Lively Kernel code base, but it doesn't surprise me that it uses a lot of classes. And if I glance through LK, it looks to me like there are a few objects that aren't class instances, which is about what I'd expect. The way I usually think about it, classes are a fine idea; it's just the idea that "every object is an instance of a class" that causes trouble. The value of prototypes isn't that you suddenly organize your entire code base in this whole new completely-different way; it's that the core of the system becomes simpler and more flexible and easier to learn. That flexibility lets you use some fun new organizational patterns, but the good old "class" pattern is still an important one. > Learning about Self I see that the versatility of that language comes@a > price. It's simple code. And I like the wholeness of it enough to explore it > further, but it seems to use a smaller unit of composition than the class. > The slot is a sort of mobile method, it seems to me. My point is that I > think people find this language a bit confusing, Self and JS both, > because the unit of construction, the granularity of the language, is > much smaller than people are used to. I'm not quite sure what you mean. Self's module system uses slot-level granularity because when you're loading a module into the image it's useful to be able to add stuff to existing objects. That's certainly not unique to prototype-based systems - for example, open up a Squeak image and look for method categories with an asterisk in front of their names. (That's the mechanism that Squeak uses to indicate that the methods in that category should belong to a different module than the one the class belongs to.) Lively Kernel seems to be doing something similar - occasionally using Object.extend to add slots to existing objects. Adam |
Free forum by Nabble | Edit this page |