[Cuis] What gets included in the image vs. external packages
Juan Vuletich
juan at jvuletich.org
Fri May 25 09:05:31 CDT 2012
Hi Folks,
Casey ransberger wrote:
> Inline.
>
> On May 23, 2012, at 7:40 PM, "Phil (list)" <pbpublist at gmail.com> wrote:
>
>
>> Lots of great discussion happening re: several things that will make Cuis even better.
>>
>
> It's been wonderful. Thanks to all present.
>
Indeed. Thank you all!
>> However, it begs the question: what's the dividing line of what gets included in the base Cuis image vs. what should be external (possibly preloaded) packages?
>>
>
> Juan is the dividing line in my view. After Juan, the rest of us. For now, at least, he's a benevolent dictator and he's good at it, because he listens, he's patient, he's passionate about what he's doing, he works hard and with enthusiasm to help with the projects we do in Cuis, and he's flexible.
>
Thanks for the nice words, Casey.
> Or: once you grok the design principles behind Cuis (the most important parts of which can be found on the web site,) it starts to be easy to know what goes into core and what doesn't. Does a solution provide valuable new functionality in an elegant way? Or does it simplify many other parts of the system, making the whole easier to understand and thus make use of?
>
> If we can make a study of these (and other) questions an intrinsic part of our culture, we will need only a group of core developers who understand the ideals and ethics behind what we're doing. As our community grows, this will become increasingly important (IMHO,) as the integration workload will only grow.
>
Please forgive me for this rather off topic rant.
In the years I have been working on Cuis I never did marketing about it.
I tried the Smalltalk community to be aware of it, but I never tried
(too hard) to convince anyone. You might ask why. But I do want a
community of Cuis developers (who develop Cuis and/or develop stuff with
Cuis). I want an active, healthy and big community. But I also want a
community of people who think alike. People who want (more or less) the
same from the system. People who understand what makes Cuis different
from the other Smalltalk systems and communities, and appreciate that.
People who can usually agree quickly and easily about what to do.
Phil, what I mean, is that the I hope that the answer to your question,
is that it will come out naturally. Folks, please check (again!)
http://www.jvuletich.org/Cuis/Index.html . Please comment on what you
disagree with, or you feel is missing. Having a concise and easy to
understand project goal is very important for all this.
>> For example, I'm excited about the discussion re: mobile device support but, other than whatever minimal changes might be needed in the image to facilitate this support, I'd rather see this sort of thing as an external package(s) rather than baked into the image so that Cuis doesn't wind up having a similar set of issues as the other Squeak distros.
>>
>
> Find a way to do it in one beautiful class. Then we can easily convince everyone that it should be in the core;
Yes, something like that :) . These are some possible reasons to
integrate something in the image:
- It belongs in the image conceptually, i.e. it makes sense to integrate it.
- It requires some refactoring of image code.
- It requires method overrides (method overrides are EVIL, the
alternative is to refactor code to avoid them).
- It is a very small amount of code, that doesn't add too much
complexity, but it simplifies and eases some bigger external package.
And these are some possible reasons to keep something as external packages:
- The developer(s) want to keep it outside, to have full control.
- It is application specific. The Smalltalk system (and dev tools) don't
really need it.
- There are many alternatives implementations of the functionality, and
it is better to let the developer pick one.
- It maintained elsewhere (for example, for Squeak, Pharo or some other
Smalltalk system), or it is multi-dialect. Avoid code duplication!
- It is so complex that the complexity outweighs the usefulness for most
people.
- It is in alpha state, not stable enough for regular use. (This is to
avoid integrating half baked and later abandoned code).
- It includes a lot of code that is bad or poorly understood and not
maintained.
Well, this is what I can think of right now. Maybe you can suggest
additions / corrections. After a little discussion, this could go to the
Cuis web page.
>> Maybe it makes sense for the 'default' version of Cuis to have many of these goodies installed, but if they were installed as packages it sure seems like it would be easier to get back to a base/core image for those who either need to go in another direction or just want a core image to play with. I'm curious as to what the thinking is on this front...
I generally prefer a small image that can load goodies to a big image
that can unload them. The reason is that once you load something in the
image, nothing prevents other parts of the image to develop a dependency
on it.
>> We've talked about shipping different versions of the image; perhaps a core image and a "full" image, but since everyone here is a developer at this point, I think it's still healthy for us to build our images ourselves: we'll find more bugs that way and it's DIY punk-rock. But that's just my opinion, and counter arguments are (of course!) quite welcome.
>>
I agree. Besides, to have several images, we'd need several image
maintainers. It only makes sense for a quite bigger community
>> Thanks,
>> Phil
>> _______________________________________________
>> Cuis mailing list
>> Cuis at jvuletich.org
>> http://jvuletich.org/mailman/listinfo/cuis_jvuletich.org
>>
Cheers,
Juan Vuletich
More information about the Cuis
mailing list