| |
September 2010
Cuis
Smalltalk
Cuis is a free Smalltalk-80 environment derived from Squeak (www.squeak.org).
Main project web is at www.jvuletich.org/Cuis/Index.html
. Its main features are being simple and powerful. It
is also completely portable, fast and efficient, meaning it can be a
great tool for running smart phones and pdas, even on a CEO's business phone. Scroll down for more information on Cuis, along with its release notes.
Funding
Cuis is free software, and receives no funding. You can help
me keep developing it with your donation.
Release notes
New in Cuis 2.7
- Morphic. New LayoutSpec mechanism. Simpler and nicer.
- Morphic Simplification: Layout, Extensions, etc
- Various fixes to the Text subsystem (Empty lines, Clipboard, Blinking Cursor)
- Compiler / Decompiler / Debugger update to Squeak's
- Numerics update to Squeak's (thanks Nicolas!), including tests. Misc additional tweaks and enh
- Various fixes and enh to FileList (ascending/descending sort, formatting of columns, hiding hidden files)
- Enhancements to PrettyPrint. PrettyPrinted code looks much better now.
- Fixes to MessageNames, senders of specialSelectors (#ifNil, etc)
- Style enh. Cleaning of 'asSortedCollection sort', etc.
- Updates and Enhancements from Squeak (Inspectors, SocketStream, Socket, Zip, Rectangle, Duration, Time)
- Minor tweaks from Squeak
- Better handling of EndiannessCache (could be great for Squeak too)
New in Cuis 2.6- Loaded BlockContext code again. Still needed for debugging.
- Tweaks to decompiler, to avoid test failures.
- Tests updates from Squeak
- FFT now uses the fast primitive by default
- A few updates from Squeak
- Several minor fixes and enhancements
New in Cuis 2.5- Compatibility with the Cog VM
- Fix the sequence of click - wait - double click in text editors (old Squeak bug)
- Fix formatting bugs in a trailing empty line in text editors (old Squeak bug)
- A few updates from Squeak
- Several minor fixes and enhancements
New in Cuis 2.4
- Adaptive Morphic CPU usage. Saves a lot of CPU on servers running many images.
- Compiler update with Eliot's fixes
- Configurable underscore meaning (from Squeak)
- Enable / disable Shout in Workspaces
- Big speedup of BW PNG
- Many minor fixes and cleanup
New in Cuis 2.3
- Fixes for internalized sources
- Decompiler fixes by nice
- Various code cosmetics fixes
- Enhancements to prettyPrint by cmm
- A fix to WeakRegistry by ul
- Added BitBltTests to allow knowing if the
VM is updated
- A serious simplification of Morphic
geometry, removing DisplayTransform
- InteractiveErrorCorrection fixes by cao
and jmv
- Lots of minor fixes
New in Cuis 2.2
- Better default and min
annotationPaneHeight
- A fix for ScannerTest
- Simplification of MessageTally
- Removal of MethodFinder, ImageSegment,
OldSocket, GIFReadWriter, LimitingLineStreamWrapper
- Memory and code size savings in MenuIcon
and MenuMorph
- Minor fixes and enhancements to
DifferenceFinder, Shout, Streams, #isXXX methods, CodeHolder,
ByteArray, Semaphore
- Removal of unused methods and forms
New in Cuis 2.1
- Support for the Unary numeral system, as
suggested by Dan Ingalls here.
- A new code differ that shows differences
in words and not lines, by Leandro Caniglia
- Closure measurements (based on work by
Eliot Miranda) are shown in the annotation pane for any method
- Removal of 43 isXXX methods, replaced by
the general #is: method
- Misc. fixes and enhancements from Squeak
and/or Pharo
New in Cuis 2.0
- Cuis
is now closure-enabled. Cuis is ready to run on the Cog VM (when
available). Cuis 2.0 requires a closures-enabled VM to run.
The Cuis Project
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
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 emphasis on simplification
and performance.
Cuis does not include features that are either:
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-2010
|
|