On Fri, Oct 12, 2012 at 10:45 AM, Stéphane Ducasse
<stephane.duca...@inria.fr> wrote:
> Pavel
>
> do you know VW spec, it is an array of symbol and spec is the same.
> We should change the api at some point.
>
> The point is that you do not code it by hand but that tools generate them.
> Now we are not to the point where a tools can generate them.
>
> But for us the OB is not the way to go because it is not flexible at all.

OmniBrowser is not perfect. On the other hand I know about five
different UI frameworks that can display it (Morphic, Seaside,
SeasideXUL, Mars and Phobos). When I firstly heard about Spec, I
expected that the easy "portability" will be one of the main trait. To
create new platform for OmniBrowser is quite easy and as the result
you have almost complete Smalltalk IDE. Current Nautilus would not be
able to work on any UI different from Morphic even in case that Spec
would have full support there.

With OmniBrowser or Glamour you create very high-level description of
the tools. It limits flexibility. But Spec is too low-level, it really
looks more like a layer that should make Morphic more friendly than
universal UI description of the tools.
SpecLayout seems to be more promising and I'm glad that Ben is working
on it. In some aspects it resembles Seaside/Phobos UI descriptions and
it would be really great if it would find some inspiration in that
world.
I am not impartial but I think that component based XUL subset with
Seaside-style description would promise good mix of readability,
flexibility, abstraction and portability.

One way or another, if we want usable result, such layer should be
designed and created for several different UIs at once - including the
mobile ones.

Cheers,
-- Pavel



> Stef
>
>
>> Unfortunately it is not only about a layer between Morphic and Spec.
>> Whole Spec design is greatly conforming to Morphic. Check out Spec
>> definitions, they look almost like transcription of Morphic calls
>>
>> MethodToolbar class >> defaultSpec
>>       <spec>
>>       ^ { #Panel.
>>                       #changeTableLayout.
>>                       #listDirection:.                #rightToLeft.
>>                       #addMorph:. {#model.    #browseModel.}.
>>                       #addMorph:. {#model.    #sendersModel.}.
>>                       #addMorph:. {#model.    #implementorsModel.}.
>>                       #addMorph:. {#model.    #versionModel.  }.
>>                       #addMorph:. {#model.    #dropListModel.}.
>>                       #hResizing:.    #spaceFill.
>>                       #vResizing:.    #shrinkWrap.    }
>>
>> Of course these methods are implemented only in Morphic classes. Whole
>> layout management is directly taken from Morphic. And the Spec
>> definitions are unclear and hard to read. They are composed almost
>> solely from symbols so it is hard to work with and analyze them with
>> our development tools. We have such beautiful metalanguage where to
>> create DSL is so easy...
>>
>> In comparison with OmniBrowser the Spec is big step back. Sorry, I do
>> not want to be ugly but I started this impression when I was working
>> on Periscope and since that time it is deeper and deeper.
>>
>> Cheers,
>> -- Pavel
>>
>>
>>
>>
>>
>> On Thu, Oct 11, 2012 at 10:21 PM, Igor Stasenko <siguc...@gmail.com> wrote:
>>> On 11 October 2012 20:52, Benjamin <benjamin.vanryseghem.ph...@gmail.com> 
>>> wrote:
>>>> This method is actually the only one from ComposableModel with direct 
>>>> Morphic binding :)
>>>>
>>>>
>>>> I am still trying to move that away, but I needed the rebuild to work
>>>>
>>> i think you can introduce own protocol (and put it as extension to
>>> morphic, if you want to)
>>> so, instead of saying
>>>
>>> widget removeAllMorphs
>>>
>>> you will use own extension method ,like:
>>>
>>> widget specRemoveAllChilds
>>>
>>> etc (spec here is namespacing prefix for a method, to indicate that it
>>> belongs to spec package
>>> and to indicate that it is a contract implied between spec and widget)
>>>
>>>> Ben
>>>>
>>>> On Oct 11, 2012, at 8:49 PM, Pavel Krivanek wrote:
>>>>
>>>>> Hi Ben,
>>>>>
>>>>> I really would like to write Spec binding for Phobos (Esteban will
>>>>> want to do it for Mars etc.). But, how to say that, Spec was not
>>>>> written with UI Independence in mind :-) Very basic example of that
>>>>> fact:
>>>>>
>>>>> ComposableModel>>buildWithSpec: aSpec
>>>>>      "Build the widget using the spec name provided as argument"
>>>>>      | widget |
>>>>>
>>>>>      (self spec notNil and: [ self needRebuild not ])
>>>>>              ifTrue: [ | old |
>>>>>                      self needRebuild: true.
>>>>>                      old := self widget.
>>>>>                      old removeAllMorphs.
>>>>>                      self ensureExtentFor: old.
>>>>>                      widget := SpecInterpreter buildMorphFor: self 
>>>>> withSpec: aSpec.
>>>>>                      widget submorphs do:[ :e |  old addMorphBack: e ].
>>>>>                      self spec instance: old.
>>>>>                      ^ old ]
>>>>>              ifFalse: [ widget := SpecInterpreter buildMorphFor: self 
>>>>> withSpec: aSpec. ].
>>>>>
>>>>>      self ensureExtentFor: widget.
>>>>>
>>>>>      ^ widget
>>>>>
>>>>> Can you please do at least basic steps in the architecture of Spec to
>>>>> make it more independent on Morphic?
>>>>>
>>>>> Cheers,
>>>>> -- Pavel
>>>>>
>>>>> On Wed, Oct 10, 2012 at 12:10 AM, Benjamin
>>>>> <benjamin.vanryseghem.ph...@gmail.com> wrote:
>>>>>> It was part of my battle plan to rule the world ;)
>>>>>>
>>>>>> We wanted with Nico to part it to Amber to get the Javascript part for 
>>>>>> free, then generate some XUL :)
>>>>>>
>>>>>> Anyway, really cool job, and impressive as well :)
>>>>>>
>>>>>> Ben
>>>>>>
>>>>>> On Oct 9, 2012, at 11:07 PM, Stéphane Ducasse wrote:
>>>>>>
>>>>>>> It looks really nice.
>>>>>>> I imagine that Spec could generate XUL too.
>>>>>>>
>>>>>>> Stef
>>>>>>> On Oct 9, 2012, at 9:48 PM, Pavel Krivanek wrote:
>>>>>>>
>>>>>>>> Hi all,
>>>>>>>>
>>>>>>>> I would like to introduce you Phobos - the XULRunner based Smalltalk
>>>>>>>> framework for development of native GUI with standard look&feel for
>>>>>>>> Linux, Mac OS X and Windows.
>>>>>>>>
>>>>>>>> It is based on Zinc, WebSockets and Seaside continuations. For more
>>>>>>>> information including more screenshots see the project page:
>>>>>>>>
>>>>>>>> http://code.google.com/p/phobos-framework/
>>>>>>>>
>>>>>>>> You should pay attentions to FAQ too:
>>>>>>>> http://code.google.com/p/phobos-framework/wiki/FAQ
>>>>>>>>
>>>>>>>> Phobos has Seaside-like components and rendering style, can combine
>>>>>>>> XUL with HTML or SVG, supports printing etc.
>>>>>>>>
>>>>>>>> Cheers,
>>>>>>>> -- Pavel
>>>>>>>> <01.png>
>>>>>>>
>>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>
>>>>
>>>
>>>
>>>
>>> --
>>> Best regards,
>>> Igor Stasenko.
>>>
>>
>
>

Reply via email to