getting started with cuis smalltalk

25
Getting Started with Cuis Smalltalk

Upload: german-arduino

Post on 22-Nov-2014

1.484 views

Category:

Technology


1 download

DESCRIPTION

My talk in Smalltalks2013, UTN Rosario, October 31, 2013.

TRANSCRIPT

Page 1: Getting Started with Cuis Smalltalk

Getting Started with Cuis Smalltalk

Page 2: Getting Started with Cuis Smalltalk

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

Page 3: Getting Started with Cuis Smalltalk

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

Page 4: Getting Started with Cuis Smalltalk

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

Page 5: Getting Started with Cuis Smalltalk

Getting Started with Cuis Smalltalk

How Cuis is different?

● Active attitude towards system complexity

● Code Quality

● Simplicity

● Code Management

Page 6: Getting Started with Cuis Smalltalk

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!

Page 7: Getting Started with Cuis Smalltalk

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!

● CompactBelow 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

Page 8: Getting Started with Cuis Smalltalk

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

Page 9: Getting Started with Cuis Smalltalk

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

Page 10: Getting Started with Cuis Smalltalk

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

Page 11: Getting Started with Cuis Smalltalk

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-and-microisvs)

Page 12: Getting Started with Cuis Smalltalk

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

Page 13: Getting Started with Cuis Smalltalk

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

Page 14: Getting Started with Cuis Smalltalk

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'

Page 15: Getting Started with Cuis Smalltalk

Code Management in Cuis

Page 16: Getting Started with Cuis Smalltalk

Code Management in Cuis

Page 17: Getting Started with Cuis Smalltalk

Code Management in Cuis

Page 18: Getting Started with Cuis Smalltalk

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'

Page 19: Getting Started with Cuis Smalltalk

Demo Time

Page 20: Getting Started with Cuis Smalltalk

Packages availables

Aida Web Swazoo Sport Yaxo

JSON RegEx Artefact WebClient

Crypto-NaCl Cryptography FFI Linear-Algebra

Styled Text Editor

Signal Processing

Network SandstoneDB

Simple Logger SQLite PetitParser Cypress

ContentPack Solitaire Interlingua Dict Ropes

Page 21: Getting Started with Cuis Smalltalk

Work in Progress

* Morphic 3 Referenceshttp://www.jvuletich.org/Morphic3/Morphic3-200911.htmlhttp://www.jvuletich.org/Morphic3/Morphic3-201006.htmlhttp://www.fast.org.ar/smalltalks2009/videos/Cuis+and+Morphic+3

Morphic 3 * OpenShift Comanche Iliad

UI Zinc

Page 22: Getting Started with Cuis Smalltalk

Community

● English Mailing List [email protected]● Spanish talks about Cuis also in

[email protected]● 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

Page 23: Getting Started with Cuis Smalltalk

Community

● Author/Admin: Juan Vuletich● Contributors:

Bernhard Pieber Germán Arduino

Casey Ransberger Hannes Hirzel

Ken Dickey *** Your name here ***

Page 24: Getting Started with Cuis Smalltalk

Final Words

Questions?

Page 25: Getting Started with Cuis Smalltalk

Final Words

Thanks You!