New to Croquet

Previous Topic Next Topic
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view

New to Croquet

Alex Abate Biral
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
        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.