January 2010
The Cuis ProjectCuis is a free Smalltalk-80 environment derived from Squeak (www.squeak.org). Main project web is at www.jvuletich.org/Cuis/Index.html
Our
passion is about finding the essence of ideas. In this regard we feel
close to Alan Kay's "Fundamentals of new Computing" ideas. But this
Cuis is not a research project. We want a working system now, and we
are distilling the essence of Smalltalk-80 in Squeak drop by drop.
The
main objective of Cuis is to avoid unneeded complexity. Why? Because
complexity puts a limit to the level of understanding of the system a
person might reach, and therefore limits the things that can be done.
Dan Ingalls says all this in "Design Principles Behind Smalltalk". If
you want to understand what is Smalltalk all about, read it: http://www.soe.ucsc.edu/classes/cmps112/Spring03/readings/Ingalls81.html .
Some of the main ideas and objectives for Cuis are:
Close to the ideas in Smalltalk-80 and "Design Principles Behind Smalltalk". Include only kernel functionality. Included stuff should be in very good shape. Include a greatly simplified version of Morphic as the main UI. Easy to fix and extend. Cuis is yours to extend it to suit your needs. Stable. Smalltalk kernel should not change much. Compatible to a reasonable degree with packages intended for other Squeak distributions. Lead by Juan Vuletich (jmv) after these principles.
What is the audience? Cuis should be the Smalltalk of choice to:Smalltalkers who want a simpler system. Teachers teaching Smalltalk. People learning Smalltalk. Developers working for devices with little memory or CPU power. People wanting to experiment with new directions in language design, UI frameworks, etc. People wanting a reasonable kernel on which to build optional packages. People wanting a nice looking, portable ide.
What Cuis does includes and what it does not.
Cuis
includes a basic Smalltalk-80 system, updated for the capabilities of
contemporary hardware. The User Interface is a derivative of the
Morphic framework in Squeak, with a strong enphasis on simplification
and performance. Cuis does not include features that are: a) Optional in nature (i.e. application specific) b) Too complex (i.e. their complexity outweighs their usefulness) c) Not stable For
instance, Cuis does not include a package manager. The usual way
of managing code in Cuis is with the ChangeSorter and ChangeSets. This
is because the standard package manager in the Squeak world, Monticello
falls in b (too complex) and c (not stable). Cuis also doesn't
include Unicode support. The handling of Unicode characters and strings
in Squeak falls in b (too complex), as the whole system is affected and
c (not stable), as bugs are still arising, even after being used for
many years. Besides, as the basic Character and String were not
modified, but new classes for WideCharacter and WideString were
introduced, we can also consider it falls under a (optional in nature).
Optional packages and Modularity
Cuis is meant to be consistent, well designed and understandable.
As
dependences and complexity grow exponentially with the size of a
system, Cuis needs to be small. Being small and easy to understand
means you can do more with it.
There
is a lot to do with a
Smalltalk system, as Squeak and the packages available for it show us.
Too much to be understood by a single person. Therefore, it is better
not to try to control all of it. Optional packages for Cuis will form an
ecosystem not driven as a whole by anybody. This is the way we believe
that Alan's Biology metaphor applies to modularity in Smalltalk. There
will be optional packages available for Cuis, if people start building
or using them. We don't want to control that process.
Compatibility
We
believe that back compatibility goes against progress. We choose
progress. We also believe that compatibility requires extra complexity,
of the non-essential kind. We choose simplicity. This means that there
are no guarantees of compatibility between Cuis and anything else,
including the various releases and derivatives of Squeak, or even other
releases of Cuis itself. If
you do a significant amount of work on some Cuis release, and later you
want to update, you can use the separate changesets provided for every
Cuis release. You need to check carefully each one as you load them,
and learn how it affects your own code.
Community
We
want to share fixes, enhancements, packages, and discussion with Squeak
and other Squeak distributions. We are part of the Squeak community. We
believe that the Squeak community is the natural place for people using
the various Squeak distributions and derivatives.
License
Cuis
is distributed subject to the MIT License, as in
http://www.opensource.org/licenses/mit-license.php . Any contribution
submitted for incorporation into or for distribution with Cuis shall be
presumed subject to the same license. Portions of Cuis are: Copyright (c) Xerox Corp. 1981, 1982 Copyright (c) Apple Computer, Inc. 1985-1996 Copyright (c) Contributors to Squeak and Cuis projects. 1997-2009
|