[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