I have some comments and questions inline. Again to clarify: I want to understand what people are thinking about Spec so I appreciate your feedback and I want to keep on asking until I think I really understand.
On Dec 19, 2014, at 13:24, kilon alios <kilon.alios@gmail.com> wrote:
Well Spec from what I understand requires a model for each thing you add to it which makes classes bigger and unecessary complex.
The models are the classes of the user interface. Each thing you add is a widget (more or less), and called a model. I do not understand how this differs from Morphic in that if you want to add e.g. a button you need to add the button morph. Can you help me understand?
I also dont like the name defaultSpec which for me mean nothing and creates confusion. Other classes I see use name defaultSpec2 which makes even less sense.
OK the name could be better chosen. BTW, you donât need to call it like this, you can just use a pragma instead. This is why some methods are called defaultSpec2 (also a bad name)
Generally speaking Spec is a library that I find very hard to figure out from example and reading the code compared to Morphic.
Yes, it is absolutely not designed to be learned by example. I agree with that. If you want to learn by example you should follow the examples in the doc, not browse the code. I understand that not everbody is OK with that.
Also a shortcoming of spec is that is not designed to be custom gui friendly from what I see since it seems to just wrap morphs if you want custom element guis.
100% agree. This is not the focus of Spec.
Also I dont understand why we need initialise and instiate , looks to me like Spec requires too many definitions to add stuff together which is an area that Morphic excel AFAIK where in example of Morphic all you have to do is addMorph: in Spec it appears to me there so many steps.
If I want to add a button then I should using a single line of code.
I donât understand. As you said before, GUI stuff is complex. So I donât see how you can do everything in 1 line of code. For example, how can I add an âOKâ button to a window, in a specific location, with a specific action to be taken in 1 simple line? How can I do that in Morphic?
Generally speaking my Nireas class is an extremely simple GUI that is uneccessary complex. Sure I could brake the GUI to smaller Spec widgets but for me that makes no sense for such a small GUI. I cant see with all this overhead how Spec would be useful for me for very complex guis I want to create in the long run when Morphic design is so clear to me.
I think this is a matter of taste so I cannot really comment here except on that I respect that your taste is different from mine :-)
Another thing to note here is that I have read the Spec documentation again and again and it has been a seriously struggle to make sense of Spec because of this complex and weird design.
Ok this is a serious problem for the documentation. I want everybody to understand it. So can you clarify why this is a struggle so that we can work on that? (We will be reworking the documentation again one of these days)
Morphic on the other hand has been a walk in the park for some guis I created with it because its design is so simple and elegant. I never read docs on Morphic , I just take a look at Morph examples and immediately understand how things work. Saying that I had issues understanding how treemorph worked and cant say I liked the code.
OK taste again.
That also may have to do with how I work which is that I was raised with legos so I love to assemble things together instead of abstracting them away which I think is what Spec tries to do. So Morphic definitely fits my way of thinking better.
I think I can safely bet that I have been playing with Lego for longer than you and that my collection is bigger :-) And I donât agree with your observation. The huge Lego creations are possible when you build smaller units that are than plugged together in well-thought out ways. The easy example are the new 1930-style buildings that you build floor by floor ... ---> Save our in-boxes! http://emailcharter.org <--- Johan Fabry - http://pleiad.cl/~jfabry PLEIAD lab - Computer Science Department (DCC) - University of Chile