Active development of Cuis Smalltalk
Smalltalk
Permalink
Failed to load latest commit information.
AdditionalFontData 32 new mathematical symbols, can also be binary selectors. Fixes to M… Dec 3, 2015
CompatibilityPackages Move Character #value #value: #asInteger to SqueakCompatibility.pck.st Sep 6, 2016
CoreUpdates Test running helpers. Thanks Hernan. Feb 24, 2017
Documentation Updated 32 bit images, updated docs to last update number. Feb 20, 2017
Experimental Very early pre-alpha sneak preview of Morphic 3 Sep 15, 2014
Packages Test running helpers. Thanks Hernan. Feb 24, 2017
PreviousUpdates minor tweaks May 26, 2016
SpurConversionSnapshots Profiler fixes. Thanks Andrés Valloud. Progress Bar fixes. Misc fixes… Nov 1, 2016
SqueakSpurVMMakerImage Conversion of Cuis to Spur image format Aug 18, 2016
Cuis5.0-3045-spur-64.changes Minor fixes. Updated Spur64 image. Feb 20, 2017
Cuis5.0-3045-spur-64.image Minor fixes. Updated Spur64 image. Feb 20, 2017
Cuis5.0-3045-spur.changes Updated 32 bit images, updated docs to last update number. Feb 20, 2017
Cuis5.0-3045-spur.image Updated 32 bit images, updated docs to last update number. Feb 20, 2017
Cuis5.0-3045.changes Updated 32 bit images, updated docs to last update number. Feb 20, 2017
Cuis5.0-3045.image Updated 32 bit images, updated docs to last update number. Feb 20, 2017
CuisV5.sources Cuis 5.0 Nov 7, 2016
LICENSE Left arrow assignment by default. Tweaks to documentation, etc. Jan 1, 2016
README.md Rework a bit README.md Nov 24, 2016
squeak.conf Add squeak.conf file for Linux Jan 2, 2017

README.md

Cuis

Cuis is a free Smalltalk-80 environment originally derived from Squeak with a specific set of goals: being simple and powerful. It is also portable to any platform, fast and efficient. This means it is a great tool for running on any hardware, ranging from RasPis and the like and phones, up to server racks, and everything in between, including regular laptops and PCs.

Cuis is

  • Small
  • Clean
  • Appropriable

Like Squeak, Cuis is also:

  • Open Source
  • Self contained
  • Multiplatform

Like other Smalltalk-80 environments (including Squeak, Pharo and others), Cuis is also:

  • A complete development environment written in itself
  • A pure, dynamic Object Oriented language

What sets Cuis appart from the rest of the Squeak family is that it takes an active attitude towards system complexity:

Unbound complexity growth, together with develpment strategies focused only in the short term, are the worst long term enemies of all software systems. As systems grow older, they usually become more complex. New features are added as layers on top of whatever is below, sometimes without really understanding it, and almost always without modifying it. Complexity and size grow without control. Evolution slows down. Understanding the system becomes harder every day. Bugs are harder to fix. Codebases become huge for no clear reason. At some point, the system can't evolve anymore and becomes "legacy code".

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 with it. Dan Ingalls says all this in "Design Principles Behind Smalltalk". Even if you have already done so, please go and read it again!

This presentation by Rich Hickey, "Simple made Easy" is also an excellent reflection on these values.

We follow a set of ideas that started with Jean Piaget's Constructivism, and later explored in Seymour Papert's Mathland. These lead to Alan Kay's Learning Research Group's Personal Computer for Children of All Ages, Personal Dynamic Media, i.e. the Dynabook and then to Smalltalk-80. To us, a Smalltalk system is a Dynabook. A place to experiment and learn, and a medium to express the knlowledge we acquire. We understand software development as the activity of learning and documenting knowledge, for us and others to use, and also to be run on a computer. The fact that the computer run is useful, is a consequence of the knowldege being sound and relevant. (Just making it run is not the important part!)

Cuis Smalltalk is our attempt at this. Furthermore, we believe we are doing something else that no other Smalltalk, commercial or open source, does. We attempt to give the true Smalltalk-80 experience, and keep Smalltalk-80 not as legacy software to be run in an emulator, but as a live, evolving system. We feel we are the real keepers of Smalltalk-80, and enablers of the Dynabook experience.

Cuis is continuously evolving towards simplicity. Each release is better (i.e. simpler) than the previous one. At the same time, features are enhanced, and any reported bugs fixed. We also adopt recent enhancements from Squeak.

Setting up Cuis in your machine

If you are not familiar with Git, follow the instructions in Getting started using GUI or Getting started using commandline .

If you are familiar with Git, it might be best to follow Getting started using Git Bash .

Getting Started

If you are learning Smalltalk, the Cuis community can help you. Check the "Learning Cuis Smalltalk" repository. It includes several great tutorials. Also, the TerseGuide.pck.st package (in the /Packages folder in this repo) is useful both as a guide and a reference.

Additionally, there are many tutorials and references for Smalltalk in the web. They apply quite well to Cuis, especially those written originally for Smalltalk-80 or Squeak. These books "Smalltalk-80 the language and its implementation" and "Inside Smalltalk volume I" are great introductory texts, and they are also the reference for the language and basic class library. Both are freely available.

The user interface enables you to access most of the code and conduct Smalltalk experiments on your own. You can review its features at "Quick Tour of the UI".

Contributing to Cuis

Cuis is maintained on https://github.com/Cuis-Smalltalk.

Please read Code Management in Cuis, about developing packages for Cuis, and Using Git and GitHub to host and manage Cuis code. While Cuis should work equally well with any file-based DVCS, we encourage the use of Git and GitHub.

In any case, we also accept contributions as ChangeSet files in email. Any contribution must be under the MIT license.

To contribute code, please use an image with all included packages already loaded, using updated versions, especially, of any affected packages. This will ensure we don't break them while we evolve Cuis. Here is a Smalltalk script to load all packages currently included:

Feature require: 'Core-Packages'

Cuis is distributed subject to the MIT License. See the LICENSE file. Any contribution submitted for incorporation into or for distribution with Cuis shall be presumed subject to the same license.