On Apr 14, 2013, at 7:22 PM, Kenneth Payne <voxkmp@gmail.com> wrote:
As a newcomer to smalltalk and Pharo I must say I love it - but I'm a little mystified by Spec.
Just as I've got my head around Polymorph and can build an interface with UITheme builder, the paradigm has changed and Spec is the new standard way to create a UI.
I read on a post that Polymorph is a UI framework but Spec is a UI description framework. But Spec isn't just a description like a XML representation of a UI - it brings new UI objects to the party - ButtonModel, LabelModel etc. But none of these have the rich properties of the corresponding Morphic objects. A ButtonModel looks nothing like a button, for example, and the LabelModel has nothing to set a font for the label. And it's not a description it's just more code.
The only way I can see to create a rich interface using Spec is to create the interface using Morphs (and composite Morphs) and then using Spec mainly just to assemble and position them.
So can someone wiser than I answer these questions for me:
we have a paper explaining all that but we are waiting it to be accepted.
One, what is the purpose of Spec - what problem is it trying to solve?
reuse of composable widgets.
Two, what advantages are there to building a UI in Spec rather than building it directly in Polymorph?
been able to build the same with another UI framework.
Being able to build a UIPainter
how do you open a uipainter on widget that only have been defined using message?
you develop an interpreter?
Three, why are the objects caled ButtonModel, LableModel etc when they are not models but UI components?
because they represent the logic of reuse and they are not widget.
Four, am I supposed to be assembling morphs using Spec? It works so is it right?
there is a tutorial and a videos
Ben?
About video, I am still processing the tutorial I have presented at Bern, but as soon as I have something, I will publicly announce it
Have fun,
Ben
To sum up, I'm quite sure Spec is an important new feature but at the moment I'm just not getting it.
Can anyone help me on this?