Want to take your software engineering career to the next level? Join the mailing list for career tips & advice Click here

Cuis-Smalltalk-Dev

Active development of Cuis Smalltalk

Subscribe to updates I use Cuis-Smalltalk-Dev


Statistics on Cuis-Smalltalk-Dev

Number of watchers on Github 136
Number of open issues 22
Average time to close an issue 30 days
Main language Smalltalk
Average time to merge a PR 7 days
Open pull requests 4+
Closed pull requests 20+
Last commit over 2 years ago
Repo Created about 7 years ago
Repo Last Updated over 2 years ago
Size 388 MB
Organization / Authorcuis-smalltalk
Contributors8
Page Updated
Do you use Cuis-Smalltalk-Dev? Leave a review!
View open issues (22)
View Cuis-Smalltalk-Dev activity
View on github
Book a Mock Interview With Me (Silicon Valley Engineering Leader, 100s of interviews conducted)
Software engineers: It's time to get promoted. Starting NOW! Subscribe to my mailing list and I will equip you with tools, tips and actionable advice to grow in your career.
Evaluating Cuis-Smalltalk-Dev for your project? Score Explanation
Commits Score (?)
Issues & PR Score (?)

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 cloud servers, 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

Cuis shares the OpenSmalltalk Virtual Machine with Squeak, Pharo and Newspeak. What sets Cuis apart from the other members of the Squeak family is the focus on Smalltalk-80 and an active attitude towards system complexity:

Unbound complexity growth, together with development 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 were further developed 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 to Smalltalk-80. To us, a Smalltalk system is a Dynabook. A place to experiment and learn, and a medium to express and register 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 work is not the important part!)

Cuis Smalltalk is our attempt at this challenge. 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 historic significance, but as a live, evolving system. We feel we are the keepers of the Smalltalk-80 heritage, 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 and share our work with the wider Squeak and Smalltalk community.

Setting up Cuis in your machine

Just follow Setting up and starting Cuis Smalltalk .

Learning about Cuis Smalltalk

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/Cuis-Smalltalk-Dev.

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.

Cuis-Smalltalk-Dev open issues Ask a question     (View All Issues)
  • about 4 years Use EdDSA digital signatures
  • over 4 years the new mailing list archive isn't linked on the cuis homepage
  • almost 5 years DOC: Review and update notes on Unicode support
  • almost 5 years DOC: Explain name
  • almost 5 years DOC: Add note about Sound
  • almost 5 years DOC: Update notes on differences between Squeak/Pharo and Cuis Morphic
  • almost 5 years DOC: Add notes to learn about Layouts in Cuis
  • almost 5 years DOC: Add note about FileMan adoption
  • almost 5 years DOC: Add notes about changes to core and external DWM window manager
  • about 5 years Make list headers in CodePackageListWindow adjust to Morph height (discovered when using Large Fonts) Raw
  • about 5 years Documentation: clarify matrix coordinates issue.
  • about 5 years Documentation: assignment substitution? Underscore?
  • about 5 years Documentation: Changes in Morph step behaviour between Cuis 4.0 and Cuis 4.2
  • over 5 years Add to documentation -- notes about preferences
  • over 5 years NotesOnCuis.md -- add note about #copy
  • over 5 years NotesOnCuis.md --- New image format: Cog format
  • over 5 years NotesOnMorphic.md -- add remark about the use of #show: deep in Morphic logic
  • over 5 years NotesOnMorphic.md --- TextModelMorph documentation
  • over 5 years NotesOnMorphic.md -- #step vs. #stepAt:
  • over 5 years aDictionary asSet
  • about 6 years question about proportionalWidth/proportionalHeight sizing difference in horizontal layout
  • about 7 years Expected failures in SUnit
Cuis-Smalltalk-Dev open pull requests (View All Pulls)
  • BlockContext removal.
  • Character performance improvements
  • Adapt Point immutable changes to backtick (i.e. `0@0`) syntax
  • Added Float32Color3, to take advantage of existing FloatArray primitives
Cuis-Smalltalk-Dev list of languages used
Other projects in Smalltalk
Powered by Autocode - Instant Webhooks, Scripts and APIs
Autocode logo wordmark