One of the goal of Spec is to be portable.

But sadly, I am not an engineer working full time of Spec.
Right now I have priorities which slow down Spec improvements.

But the infrastructure for having Spec portable is not so far


Ben



On Oct 12, 2012, at 11:28 PM, Pavel Krivanek wrote:

> On Fri, Oct 12, 2012 at 10:45 AM, Stéphane Ducasse
> <[email protected]> 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 <[email protected]> wrote:
>>>> On 11 October 2012 20:52, Benjamin <[email protected]> 
>>>> 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
>>>>>> <[email protected]> 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