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@cableone.net Sent by: squeak-dev-bounces@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@lists.squeakfoundation.org cc: Subject: Re: Traits approaching mainstream Squeak
Dean_Swan@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.htm...
""" 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
Dean_Swan@Mitel.COM wrote:
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.
Thanks. I am always somewhat tentative in replying to a professional in their area of expertise. Especially when I lack in that area. :)
[snip
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).
Squeak is mostly a personal thing for me also. But I am hoping to have a commercial website out in the near future using Squeak.
I too would love to see Squeak perform better. But there are times I am amazed at how well Squeak stacks up and wish that a fraction of the energy (misplaced I think) in other projects was directed toward Squeak. (Oh too strike it rich and be a benefactor! :)
When I look at the memory consumption and performance of things like Mozilla, Firefox, Thunderbird, most any email client or web browser. Or most even any desktop app, especially those with non-native UI toolkits such as wxWidgets, ... And then I open up my fully bloated, got lots of workspaces, browsers, etc... open Squeak, and see how well its doing comparitively.
If we can keep Squeak from bloating more, and rather improve image size, memory consumption and speed. Woohoo. The world will probably go by bloating up, while Squeak can advantage itself to the ever increasing performance and memory availability of even the smallest of systems like your phone. :)
With things like Exupery, Spoon, Morphic cleaning, Tweak, possibly Traits, et al. I think the future is very bright. Hang in there.
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.
Yup. When am I going to be able to remove all the games, organizers, etc. from my cell phone that I don't use and install Squeak. :) Oh well, my phone doesn't provide me with an interface that I even care to type text messages let alone do much else. But who knows what interfaces will be available in the future that Squeak can take advantage of.
Anyway, Thank You.
Your welcome. Nice dialogue.
Jimmie
squeak-dev@lists.squeakfoundation.org