Draft:Cuis Smalltalk
Submission declined on 11 June 2024 by SafariScribe (talk). This submission is not adequately supported by reliable sources. Reliable sources are required so that information can be verified. If you need help with referencing, please see Referencing for beginners and Citing sources.
Where to get help
How to improve a draft
You can also browse Wikipedia:Featured articles and Wikipedia:Good articles to find examples of Wikipedia's best writing on topics similar to your proposed article. Improving your odds of a speedy review To improve your odds of a faster review, tag your draft with relevant WikiProject tags using the button below. This will let reviewers know a new draft has been submitted in their area of interest. For instance, if you wrote about a female astronomer, you would want to add the Biography, Astronomy, and Women scientists tags. Editor resources
|
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". |
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. 6 (8). McGraw-Hill. August 1981. Retrieved October 18, 2013.
- Ingalls, Dan (August 1981). "Design Principles Behind Smalltalk". Byte. 6 (8). McGraw-Hill. Retrieved November 11, 2011.
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". 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. S2CID 53116661. Archived (PDF) from the original on October 9, 2022. Retrieved November 9, 2020.
- ^ 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. S2CID 5999157.
- ^ "Cuis University". GitHub.
- ^ Garbezza (2020), Nahuel. "Mejorando el ambiente de programación Cuis Smalltalk con refactorings esenciales" (PDF).
{{cite web}}
: CS1 maint: numeric names: authors list (link) - ^ 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. S2CID 201666445.
- ^ Fuentes, Gerardo. "Análisis de la evolución del aprendizaje y uso de TDD" (PDF).
- ^ "Haver: Cuis with namespaces and modules".