Traits approaching mainstream Squeak

Dean_Swan at Mitel.COM Dean_Swan at Mitel.COM
Wed Aug 31 23:16:48 UTC 2005


Hi Jimmie,

Wow!  Talk about an effective argument.  I digest this into:
 "You said.... and Traits supports this, so it is good."  It's nice
(and sobering) to know that people actually read my blather.


And regarding the bit about brittleness, I agree that in general,
smaller is better, but sometimes in a world with hundreds of
people working on the project it is better to "make your own"
than to use the one provided in the common library.  Really, we
do have a common library and there are some people always working
on it and it is always a source of headaches (at least from my
perspective), and invariably, "my own" is smaller and simpler
than the Swiss Army Knife the library guys are trying to provide
as a one size fits all solution.

I know I have seemed to be very opposed to Traits, but I am not so
opposed to the concept as I am to the runtime cost of accessors.

If I could wish for only one single improvement to Squeak, it would
be better send performance.  I've looked at this problem on and off
for a while now, but as for you, Squeak is mostly a personal thing
for me (DSP and media streaming for VoIP is the day job), and I
haven't yet come up with anything better than what Squeak currently
has.  My best ideas just take too much memory to be acceptable (to me).

It still bothers me that we have telephones now with megabytes of
RAM in them.  There's more computer in the phone on my desk now than
there was in the computer on my desk not so many years ago.

Anyway, Thank You.

        -Dean






Jimmie Houchin <jhouchin at cableone.net>
Sent by: squeak-dev-bounces at lists.squeakfoundation.org
08/31/2005 03:25 PM
Please respond to The general-purpose Squeak developers list

 
        To:     The general-purpose Squeak developers list 
<squeak-dev at lists.squeakfoundation.org>
        cc: 
        Subject:        Re: Traits approaching mainstream Squeak


Dean_Swan at Mitel.COM wrote:
[snip]
> The other idea that I was trying to get across is that code reuse is a 
> double-edged sword.  While it can reduce maintenance effort, and improve 

> the overall quality of a code base, it also makes the codebase more 
> brittle by introducing heavily loaded single points of failure.

This doesn't make sense to me.
Increases quality and makes more brittle.

I would think that better quality code...
More readable, understandable code...
Potentially smaller set of code...

Would lead to more robust and less brittle.

Now as to single point of failure. Uh, maybe.
But find and fix and it then should be fixed.
And again leading to more robust.

[snip]
> So I guess I'm still looking for somebody to show me the "good-ness" of 
> Traits, because so far it looks interesting, but like a lot of work for 
> a small increase in code reuse and a (hopefully) small decrease in 
> performance, and we've been seeing a "small" decrease in performance 
> with each successive version of Squeak for way too long now.  This is 
> (of course), only my opinion.  I could certainly be in the minority 
here.
> 
> Traits shows clear value in refactoring, but refactoring is "code 
> cleaning", and it doesn't happen much in the real world.  In fact, it is 

> sometimes "forbidden" because it is seen as a high risk to touch code 
> that is "field proven".
[snip]

Now, I have no real world (commercial) development experience. I play 
with Squeak as my preferred environment for my projects. So with that 
disclaimer, take what I say for what you paid. :)

Squeak has had 20-30... years of single inheritance experience in it. 
How much of Squeak's code is older than your project?
How much of Squeak's code is older than developers on your project?
(Rhetorical Qs)

The point is that Squeak is a long lived, malleable, living program. 
Much is spoken of the cruftiness or uncleanness or parts of Squeak. This 
is despite the fact or due to the fact that it is so long lived. In this 
place and this situation, improved refactorability would be a great 
asset. It seems to me that is greatly desired by the users and 
developers of Squeak that it be refactored so that the original vision 
as expressed by Dan Ingalls and as stated by you here in this message:
http://lists.squeakfoundation.org/pipermail/squeak-dev/2000-April/000775.html

"""
      I personally am opposed to gratuitous creation of new classes.  I 
think it is contrary to one of Dan Ingalls' original design principles 
of making the whole system simple enough to be understood by a single 
person.  Squeak already defines about 1200 different classes in the base 
image, which I think is an awful lot of different "kinds of things" to 
understand.
"""

I don't know, but maybe Traits can help with the problem you describe 
above. Maybe in introducing the flexibility of Traits we can reduce some 
bloat without reducing features and functionality.

I can only speak from my experience. But I constantly refactor my code.
Why, because I seldom get it right the first time. I write the code and 
then run the code. Frequently it doesn't behave as I thought in my mind. 
Why, because my understanding of the problem was incomplete. As my 
understanding grows, I change, modify and refactor my code. That may or 
may not be very professional, I can't say. But I don't think it is too 
uncommon. Squeak makes such a process less painful. Traits may further 
aid such processes.

As for C++, it isn't Squeak. It isn't alive. Its frozen.
C++ seems to me in its adding of flexibility added complexity.
Here Traits seek to add flexibility while increasing simplicity.

I can't speak for your project. But it doesn't seem like simplicity, 
agility, or understandability of the system is a priority. Hopefully it 
is so for Squeak. And thus I speak my case as I understand it for Traits.

I would think that many, many, many commercial projects would benefit 
greatly by many of these practices which simplify and refactor code. 
Code seems to often live longer than expected and often having 
unexpected consequences. Refactoring and having clean code is of great 
value. Or at least it should be.

I like Squeak because it is a living, organic system. I have used too 
much dead software. Software that was fixed, frozen and unmalleable. 
Incapable of doing what I wanted because the program had no vision. Oh 
that all my software was in something like Squeak.

Enough ramblings. My apologies for the run-on-ramblings. ;)

Jimmie



-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20050831/ab9d54a1/attachment.htm


More information about the Squeak-dev mailing list