2. Getting Started with Cuis Smalltalk
"Yay, Juan. You GO, guy! ...a great example of malleable software (and a clever mind) at
work." Dan Ingalls
"I like it... It's nice and clean and simple and pretty. Nice stuff!" Alan Kay
"I think you have a very elegant design aesthetic." John Maloney
"Cuis represents the best of Squeak: Elegant simplicity, high quality, and a sense of
vision... I really do appreciate Cuis."
"It has a clean, crisp feel and is a pleasure to use." David T. Lewis
"It's one of the smallest, definitely the fastest, and probably the best structured (Squeak)
kernel that has been built." Andreas Raab
"If you would like to see Morphic done beautifully, ...check out Cuis. ...I simply cannot
rave enough about how wonderful an experience it's been to work with." Casey
Ransberger
3. Getting Started with Cuis Smalltalk
Who I'm?
Germán S. Arduino
● Software Developer and Researcher
● Focused in Information Security and Special Projects
● Founder and Owner of Arduino Software
● Chief of R&D at Grupo Sancor Seguros
● Long time Smalltalker and loving it more each day
●
About.me/garduino
●
4. Getting Started with Cuis Smalltalk
What is Cuis Smalltalk?
A complete development environment written in itself
● A pure Object Oriented language
● A Smalltalk-80 environment derived from Squeak
● Simple, small, clean
● Open source, free and multiplatform
● Developed in Argentina by Juan Vuletich
●
http://www.jvuletich.org/aboutMe.html
5. Getting Started with Cuis Smalltalk
How Cuis is different?
●
Active attitude towards system complexity
●
Code Quality
●
Simplicity
●
Code Management
6. Getting Started with Cuis Smalltalk
How Cuis is different?
●
Cuis evolves in a controlled way. I can follow it!
2/3 mails / day are an average that permit me to keep updated with the Cuis
progress and sometimes contribute!
7. Getting Started with Cuis Smalltalk
How Cuis is different?
●
Cuis evolves in a controlled way. I can follow it!
2/3 mails / day are an average that permit me to keep updated with the Cuis
progress and sometimes contribute!
●
Compact
Below 500 Classes, 100KLoC, 8MB base image (3,6MB after #reduceCuis)
A comparison of number of classes:
eToys 5.0: 2236 Squeak 4.4: 2511 Pharo 2.0: 3226 Cuis 4.2: 496
8. Getting Started with Cuis Smalltalk
Some of the main ideas and goals for Cuis:
●
●
●
●
Close to the ideas in Smalltalk-80 and "Design
Principles Behind Smalltalk"
Includes only kernel functionality + dev tools
Includes a greatly simplified and enhanced Morphic as
the main UI
Reasonably stable. Smalltalk kernel should not
change much
9. Getting Started with Cuis Smalltalk
Some of the main ideas and goals for Cuis:
●
Full support of Closures
●
It works with Cog or Stack VM
10. Getting Started with Cuis Smalltalk
What is the audience?
●
Smalltalkers who want a simple and consistent
system they can really master
●
●
●
Teachers and students 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
11. Getting Started with Cuis Smalltalk
What is the audience?
●
●
People wanting a reasonable kernel on which to build
optional packages
MicroISV programmers (See my talk “Smalltalk and
MicroISV's”:
http://www.slideshare.net/garduino1/smalltalk-andmicroisvs)
12. Packages in Cuis
●
●
The packages implementation in Cuis 4 is based in
PackageInfo
It uses Package names to prefix Classes and Methods
categories
●
More details in http://wiki.squeak.org/squeak/3329
●
Extension is .pck.st
13. Code Management in Cuis
Packages
●
Code that is not part of the core image should be
stored in packages (Examples: Applications,
Frameworks, Libraries)
Cuis Code
●
Patches, fixes, code that is meant to be part of Cuis
and that do not belong to any package is
automatically stored in Change Sets
14. Packages Dependency
●
Packages implement provides / requires
●
Packages can specify dependencies on features
●
Include version / version.revision
●
Automatically numbered by Cuis
When a package is installed, its requirements are
loaded in proper order
●
A package may be installed using the FileList or
from a workspace with
●
Feature require: 'Swazoo'
18. ChangeSets (Cuis core code)
●
Manages only code of Cuis Core image
●
Code not in packages is captured into changesets
●
Named in the form:
1827-CPUWatcherFix-GermanArduino-2013Sep19-09h20m-gsa.1.cs.st
●
●
Managed automatically, not need of make them
'current' or 'active' (“make the changes goes to me”)
Load changeset with 'FileIn' or 'Install'
21. Work in Progress
Morphic 3 *
OpenShift
UI
Comanche
Iliad
Zinc
* Morphic 3 References
http://www.jvuletich.org/Morphic3/Morphic3-200911.html
http://www.jvuletich.org/Morphic3/Morphic3-201006.html
http://www.fast.org.ar/smalltalks2009/videos/Cuis+and+Morphic+3
22. Community
English Mailing List cuis@jvuletich.org
●
Spanish talks about Cuis also in
squeakros@gruposyahoo.com.ar
● Cuis Web Site http://www.cuis-smalltalk.org
● Juan's Place: http://www.jvuletich.org
● GitHub Home of Cuis:
https://github.com/Cuis-Smalltalk/Cuis-Smalltalk-Dev
●