Cuis Smalltalk
Script error: No such module "Draft topics". Script error: No such module "AfC topic".
Paradigm | Object-oriented, Class-based, reflective |
---|---|
Developer | Cuis Community, project lead: Juan Vuletich |
First appeared | 2004 |
Stable release | 7.0
/ May 31, 2024 |
Preview release | 7.1 rolling release
|
Typing discipline | Duck, dynamic, strong typing |
Implementation language | Smalltalk |
Platform | Multiplatform |
OS | Windows, Linux, MacOS, others |
License | MIT license |
Website | cuis |
Influenced by | |
Smalltalk (Squeak Pharo) | |
Influenced | |
Squeak Pharo "Haver". |
Search Cuis Smalltalk on Amazon.
Cuis is an open source, multiplatform, Smalltalk-80 system.
Introduction[edit]
Cuis Smalltalk implements a full IDE with many tools for live, reflective Metaprogramming, code refactoring, unit testing, test-driven development, and performance profiling, with syntax highlighting and command-line completion.
Cuis adheres closely to Dan Ingalls' Design Principles Behind Smalltalk.[1]. For example, Personal Mastery states that “If a system is to serve the creative spirit, it must be entirely comprehensible to a single individual”. Thus, Cuis began as a project to reduce the size of the Squeak 3.7 development image, by removing non-essential dependencies, simplifying its design, and improving the Morphic Direct manipulation interface[2].
Notable Features[edit]
The Cuis learning strategy is to have a small kernel of code for a user to master and then to be able to learn and understand each added feature by using tools to look at the code differences each feature implements. Maintaining a small core is aided by a composition strategy of packaged features which specify their requirements. These requirements are checked transitively when packages are loaded and any missing but required packages are automatically loaded in the proper order [3][4].
Cuis graphic rendering is unusual in that it does not rely on external libraries like Cairo or FreeType but instead implements its own antialiased rendering engine written in Smalltalk which uses a sampling algorithm based on Digital Signal Processing [5]
The Morphic graphical user interface has been reengineered to render antialiased scalable vector graphics [6] with zoomable graphic elements [7].
TrueType fonts are supported, also implemented and rendered in Smalltalk.
Unicode is used for all text strings and symbols [8], again without reliance on external libraries.
The continual pruning of any unneeded code in the base development image, even as new features were added, has led over time to a significant divergence from siblings Squeak and Pharo, a measure of which is the number of classes in the base development image. A comparison of Smalltalk implementations sharing the OpenSmalltalk virtual machine[9]: Cuis 7.0 (675 Classes), Squeak 6.0 (2832 Classes), Pharo 11.0 (9986 Classes).
Usage[edit]
- Interactive Geometry: GNU Dr. Geo has been reimplemented in Cuis [10].
- Computer Algebra [11]
- Music composition, processing, performance, and analysis [12]
- Rich Text Editing with Styles [13]
- Ray Tracing [14]
- Arithmetic with measures and units [15]
Education[edit]
- Cuis University [16] is an environment created especially for teaching software design, object oriented programming, and software engineering based on Cuis Smalltalk. Cuis University adds packaged tools for Code Refactoring[17], including automatic refactorings [18], Live Typing[19] and Test Driven Development [20]
- Dr Geo is also used in the classroom.
Extensions[edit]
- Haver On Cuis: A Cuis based Smalltalk with Namespaces and Modules [21]
History[edit]
Version | Release date | Major features |
---|---|---|
Cuis 0 | September, 2004 | Etoys code removed from Morphic UI |
Cuis 1.0 | April 26, 2007 | High Quality Fonts (later adapted by Squeak & Pharo) |
Cuis 2.0 | Jan 4, 2010 | BlockClosures |
Cuis 3.0 | January 14, 2011 | Modern Themes; Simplified UI Layout Algorithm |
Cuis 4.0 | April 21, 2012 | Name Completion; Syntax Highlighting; Named Features as Code Packages autoload with requirements checking |
Cuis 5.0 | November 11, 2016 | Support original and new 32 bit and 64 bit object image formats |
Cuis 6.0 | December 31, 2021 | TrueType Fonts, Zoomeable Morphic UI, SVG Morphs, VectorGraphics Engine, All text now Unicode (UTF-8) |
Cuis 7.0 | May 31, 2024 | New release process. Stable Releases. Dynamic Compiled Libraries, Bootstrap of minimal images. Immediate Unicode Characters |
See also[edit]
- "Special Issue on Smalltalk". Byte. McGraw-Hill. 6 (8). August 1981. Retrieved 2013-10-18.
- Ingalls, Dan (August 1981). "Design Principles Behind Smalltalk". Byte. McGraw-Hill. 6 (8). Retrieved 2011-11-11.
External links[edit]
- Cuis Web Site
- Cuis Smalltalk Development (on GitHub)
- Cuis Tutorials
- Latest Stable Release (on GitHub)
- A sampling of Cuis package/feature repositories
- OpenSmalltalk cross-platform virtual machine for Squeak, Pharo, Cuis, and Newspeak
References[edit]
- ↑ Ingalls, Dan (August 1981). "Design Principles Behind Smalltalk".
- ↑ Vuletich, Juan. "A Short History of Cuis". GitHub.
- ↑ Fernandes, Hilaire; Dickey, Ken; Vuletich, Juan (February 16, 2023). "The Cuis Book".
- ↑ "The Cuis Book" (PDF). GitHub.
- ↑ Vuletich, Juan. "Prefiltering Antialiasing for General Vector Graphics".
- ↑ Vuletich, Juan. "Vector Graphics In Cuis Smalltalk" (PDF). GitHub.
- ↑ Vuletich, Juan. "The Smalltalk With Zoomable Vector Graphics" (PDF). GitHub.
- ↑ Vuletich, Juan. "Unicode support in Cuis Smalltalk".
- ↑ Miranda, Eliot; Béra, Clément; Gonzalez Boix, Elisa; Ingalls, Dan (2018). "Two decades of smalltalk VM development: live VM development through simulation tools" (PDF). Proceedings of the 10th ACM SIGPLAN International Workshop on Virtual Machines and Intermediate Languages (PDF). ACM Digital Library. pp. 57–66. doi:10.1145/3281287.3281295. ISBN 9781450360715. Archived from the original on 2022-10-09. Retrieved 2020-11-09. Unknown parameter
|url-status=
ignored (help); Unknown parameter|s2cid=
ignored (help) Search this book on - ↑ Fernandes, Hilaire. "Workshop: Develop end user GUI application with Cuis".
- ↑ Notarfrancesco, Luciano. "Arrows: a Computer Algebra System in Smalltalk".
- ↑ Pope, Stephen. "Siren music framework". GitHub.
- ↑ Pieber, Bernhard. "StyledTextEditor - Rich Text Editing with Style". GitHub.
- ↑ Notarfrancesco, Luciano. "Ray Tracer". GitHub.
- ↑
Wilkinson, Hernán; Prieto, Máximo; Rome, Luciano (2005). "Arithmetic with measurements on dynamically-typed object-oriented languages". Companion to the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications. pp. 292–300. doi:10.1145/1094855.1094964. ISBN 1-59593-193-7. Unknown parameter
|s2cid=
ignored (help) Search this book on - ↑ "Cuis University". GitHub.
- ↑ Garbezza (2020), Nahuel. "Mejorando el ambiente de programación Cuis Smalltalk con refactorings esenciales" (PDF).
- ↑ Balboa, Fernando. "Implementación de refactorings automáticos en lenguajes con LiveTyping" (PDF).
- ↑ Wilkinson, Hernan (April 2019). VM support for live typing: automatic type annotation for dynamically typed languages. pp. 1–3. doi:10.1145/3328433.3328443. ISBN 978-1-4503-6257-3. Unknown parameter
|s2cid=
ignored (help) Search this book on - ↑ Fuentes, Gerardo. "Análisis de la evolución del aprendizaje y uso de TDD" (PDF).
- ↑ "Haver: Cuis with namespaces and modules".
This article "Cuis Smalltalk" is from Wikipedia. The list of its authors can be seen in its historical and/or the page Edithistory:Cuis Smalltalk. Articles copied from Draft Namespace on Wikipedia could be seen on the Draft Namespace of Wikipedia and not main one.