[Pharo-project] A new GUI visual designer
goran at krampe.se
Wed Feb 16 00:17:02 CET 2011
On 02/14/2011 09:59 AM, Sven Van Caekenberghe wrote:
> On 14 Feb 2011, at 00:18, Göran Krampe wrote:
>> Ok, sooo... not sure if I made the Pros/Cons clear enough to be understood here. Anyway, in my quest earlier to build Deltas and Deltastreams I ended up investigating "formats" and then I created Tirade:
>> (sorry for lack of nice CSS there)
>> NOTE: Since those articles I have simplified it a bit - I scratched the complicated "stack" logic around figuring out the receiver.
>> Anyway, Tirade is in short a very long cascade that only allows arguments in literal forms. So basically Tirade doesn't serialize objects - it serializes a *sequence of messages*. And then when we "deserialize it" we replay those messages onto a receiver.
>> Thus, in syntax it is very Squeakish - it even uses the same number parser etc as the Compiler does. But it is a very restricted subset of Smalltalk which makes it fast and secure.
>> So, given the Pros/Cons above, let's see how Tirade would fit:
>> * Easy to read and edit: yes, it looks like Smalltalk, but without a receiver to the left.
>> * Easy to store in a method: yes, quite simple, the easiest way may be to save it as "Smalltalk" like this:
>> tiradeOn: recorder
>> "Create Tirade by sending messages to a Tirade recorder."
>> recorder message1; message2; message3
>> In that way you can still use senders/implementors etc of the message selectors.
>> * Easy to store outside of the language: yes, trivial, and fast to write and read
>> * Very resilient against framework/library changes if we use a declarative style.
> Tirade looks cool, very nice idea, simple and powerful. Nice name too.
> Some questions:
> - don't you need a more formal (BNF) spec (I like the drawings on the http://json.org/ site) ?
Sure! :) But it was still evolving, although slowly, when I got
distracted by other things. So I hadn't come to the "let's put it in BNF
> - there does not seem to be a way to deal with non-ascii strings like 'Göran', shouldn't there be something like JSON escapes ?
Ehm... my memory is weak here - I actually don't know what the code does
- but I agree with people saying UTF8.
> - should there not be some kind of convention to note the expected reader (in a comment as meta data maybe)
Sure, might be nice! :) Or one could say that in order to work nicely
with "known readers" the first message could be:
...there are endless ways to do that.
> - has this since 2009 been used anywhere ?
I am using it in Deltastreams (although that project is not usable yet
and has been dormant) and a collegue actually used it in one of his
little projects - other than that I have no idea.
> - how about inter Smalltalk interoperability ?
Sure, one might investigate that. If so then I think that number parsing
is the most brittle part. The code is very small and I wrote it using
vanilla Squeak I think so porting would probably be quite simple.
PS. You could use Tirade for simple inter-Smalltalk communication too -
since over a Socket it would constitute an RPC mechanism.
More information about the Pharo-project