Greetings, people.
I have just yesterday discovered this wonderful new tool. While I have known smalltalk and squeak for almost an year, I never before downloaded croquet. However, I am full of questions about croquet, and I hope that this is the right place to be asking them. First I would like to ask if croquet will always remain in smalltalk, and follow its philosophy. Smalltalk has become my favorite language since I was introduce to it. Its idea that everything is an object makes code much easier to follow. Another question is about its parts. From what I understand, Croquet is being created with help from other projects's code, like Tweak. I wanted to know if the croquet version of these parts will ever be released alone for squeak. Since the Croquet's version of Tweak is the only one still maintained, I hope that its parts will eventually become stand alone packages. Also, I have a few specific questions about Tweak. I am sorry if this is the wrong place to ask them. If that is so, please point me to the right list. Tweak presents some "language extensions" to smalltalk. For example, by adding <on: somethingOrOther>, the method will be invoked whenever the somethingOrOther event happens. I actually find it nice, as it is clear that the method should be invoked in these situations as soon as you begin to read it. However, it seems to break a bit how smalltalk is supposed to work. Everything else in smalltalk is a message sent to an object, with very few exceptions. Why not make this too a message sent to an object. The new syntax of putting it between <> could continue, but instead of <on: somethingOrOther>, you would have <SomeFacadeObject on: somethingOrOther>. From what I understood, triggered methods work by having the methods that use them gain a property. I don't know the best way this could be reworked so the message inside the <>. Maybe there is a good reason for the code being the way it is, but I think that by keeping everything as message passing, the system becomes easier to browse. Another thing I am not very comfortable with in tweak is the way fields are declared. I think it would be better if they were declared in their own specific messages. So, instead of: CProtoObject subclass: #CObject instanceVariableNames: 'myProperties myScripts myEventMap name value components' classVariableNames: '' poolDictionaries: '' category: 'Tweak-Core-Object' you would get: CProtoObject subclass: #CObject instanceVariableNames: 'myProperties myScripts myEventMap' regularFieldNames: 'name value' virtualFieldNames: 'components' classVariableNames: '' poolDictionaries: '' category: 'Tweak-Core-Object' Sorry if these questions have already been addressed, but if so I couldn't find them. Thanks in advance for reading this through. |
Free forum by Nabble | Edit this page |