[Seaside][VW] Portability

Michel Bany m.bany at wanadoo.fr
Sun Nov 20 16:07:31 CET 2005


Avi Bryant a écrit :

>
> On Nov 19, 2005, at 9:57 AM, Esteban A. Maringolo wrote:
>
>>
>> Another thing that by now didn't generate any "issues" is the
>> Chronology library, but I would be happy if the core and many other
>> popular classes/components are decoupled from the library.
>> I used the VW version of Seaside more than the Squeak one, and found
>> perturbing the existance of two distinct Date classes. Namespaces
>> elegantly permit that kind of coexistance, but I feel a "code smell"
>> around of that, and I always prefer to use the native base classes.
>
>
> I agree - can someone point out what parts of the core/libraries are  
> dependent on Chronology?
> I'll do what I can to remove the  dependencies, or move stuff into the 
> Squeak-only
> section if that's  not feasible.
>
I also agree that this smells. I remember having spent many hours trying 
to unify the Squeak and VW
Date/Time classes. As this is not my role (any volunteer ?), I finally 
gave up. I agreed with myself that
we have name clashes between two different sets of classes. So I 
combined elegance and code-smell,
and used namespaces to resolve these name clashes.  Just notice, no name 
clash between VW's Timestamp
and Squeak's TimeStamp :-)

Seaside core itself is dependent on the Duration class, for instance in 
WACookie, WADateSelector, #timeInputWithValue:callback: and may be a few 
other areas that I did not notice. Of course if
all of Seaside Chronology dependencies were either eliminated or were 
moved to SeasidePlatformSupport
things would get easier, however ...

There is another idea behind adding the Chronology classes to VW. Having 
the Chronology classes
available makes it possible to port other things that are dependent on 
Chronology. As an example,
I could borrow some of the ShoreComponents  for one of my projects 
(#weeksDo:...)

A final note : if you prefer to use the native base classes, you can 
easily switch from using the Squeak classes
to using the VW classes. Just change the superclasses of Seaside.Date 
and Seaside.Time.

Michel.







More information about the Seaside mailing list