[squeak-dev] [Pharo-dev] Unicode Support

Louis LaBrunda Lou at Keystone-Software.com
Sat Dec 12 19:57:08 UTC 2015


Hi Eliot,

>Hi Louis,
>_,,,^..^,,,_ (phone)
>> On Dec 12, 2015, at 5:19 AM, Louis LaBrunda <Lou at Keystone-Software.com> wrote:
>> 
>> Hi Guys,
>> 
>> +0.95  I certainly agree we shouldn't write code now that we may need in
>> the future but it doesn't hurt to look a little ahead and plan a bit.  If
>> the people defining database tables thought a little ahead and didn't try
>> to save two characters per date by leaving off the century there never
>> would have been a Y2K scare.
>> 
>> Lou
>
>I am /not/ saying one shouldn't look forward; I am /not/ saying cut corners or do weak design.

I'm sure you not.  And I didn't mean to imply otherwise.  And I don't
disagree with anything you've said.  I just wanted to be sure everyone
understood there is a difference between not implementing what isn't needed
now and looking ahead enough to allow easy changes in the future.  Your
example designing in support for 64-bits from the start is spot on.

>I am saying don't implement what you're not necessarily going to use.

>The y2k bug is either bad design or a space optimisation, depending on your point of view, but it isn't an example of requirements driving design.  The requirement is to represent dates; the step to use 2 digits for the year is a subsequent step.

Just a little history because I'm old enough to remember when disk space
was limited and at a premium (I think IBM 3330 were about 200MB).  The
choice to leave off the century (back then dates and times were often
stored as strings) was a space saving effort.  It was a bad choice, if it
was a conscious one.  I'm not sure it was a conscious choice, as many
programmers didn't look very far ahead even to see the approaching century.

>Here's perhaps a better example. I've just spent two years working on Spur, the VM & object representation under Squeak 5 and Pharo 5.  I designed in support for 64-bits from the start.  Because I looked forward, this year the 64-bit version was relatively straight-forward to add.  I /could/ have designed the system to support 128 bits on the assumption that some time 64-bits will be superseded by 128 bits. There there was a requirement for 64 bits.  There is no requirement for 128 bits.  Had I aimed for 128 bits the system would be a mess; too big, slow, more complex to try and get it to work in 32- & 64-bits.
>
>Even further back I designed into the Cogit (the VM's JIT compiler) a split between the generic code generator and an object-representation-specific code generator that generates all code to do with object representation, such as testing for tagged typed, fetching inst vars or allocating new objects, because I knew I wanted to replace the object representation as soon as possible.  Had I not done so, adding Spur would have taken much more work; I would have had to engineer the split by refactoring instead of by design.
>
>So being driven by requirements doesn't mean not looking to the future, it means implementing what you need and what you /know/ you're going to need, not what "would be nice to have" or what "sounds like a really cool idea".
>
>_,,,^..^,,,_ (phone)
>
>> On Sat, 12 Dec 2015 10:09:24 +0100, Stéphane Rollandin
>> <lecteur at zogotounga.net> wrote:
>> 
>>> Eliot Miranda:
>>> 
>>>> But I'd let requirements drive design, not feature dreams.
>>> 
>>> ...
>>> 
>>>> Be guided by what you need now, not by what you think you'll need further
>>>> down the road.
>>> 
>>> 
>>> These two sentences should be written in human sized gold letters in 
>>> your bathroom, people ! Wisdom !
>>> 
>>> I mean, +1
>>> 
>>> 
>>> Stef
>> -- 
>> Louis LaBrunda
>> Keystone Software Corp.
>> SkypeMe callto://PhotonDemon
>> 
>> 
>
-- 
Louis LaBrunda
Keystone Software Corp.
SkypeMe callto://PhotonDemon



More information about the Squeak-dev mailing list