SlideShare a Scribd company logo
1 of 23
Cuis Smalltalk
Past, Present and What’s next
Hernán A. Wilkinson - @hernanwilkinson
10Pines founder – Professor at UBA
agile software development & services
Juan Vuletich - @juanvuletich
LabWare
Cuis Spirit
Some typical problems of the software world
● A system you don't understand is a system you can't help evolve
● Accidental complexity makes it harder to understand
● Code bloat makes it impossible to understand!
● Just implementing what you need might mean not understanding the rest
We can do better!
● A system can be as easy to understand as a well written book
● Accidental complexity can be kept to a minimum
● Code bloat can be avoided if you care
● Understanding where your work fits in a larger whole allows for consistency
● The system can help you understand
Not just technical but also human
Cuis Community
➔ Students per Semester: around 120
◆ Got +10 contributions this semester, from refactorings to bug fixing
➔ Active List members: A few dozen
➔ Package Authors: Around 20, over 100 packages
➔ The rest of the Smalltalk Community:
◆ People developing VMs for Smalltalk test their work on Cuis
◆ People using other dialects share discussion, fixes and enhancements with Cuis
◆ People using tools/packages developed in Cuis
➔ The “Wise Elders”: Smalltalk creators and pioneers love Cuis!
➔ Total: We estimate around 200 people use Cuis on a regular basis
We want everyone to feel safe,
to feel appreciated and
have a good time with Cuis
Active Projects
New Refactorings
(Thank you Nahuel Garbezza & Fernando Gasperi & students)
TDD Guru
(Thank you Matias Dinota)
Cuis University
Denotative Objects
LiveTyping
CUIS CI
(Thank you Gastón Caruso, Facu Gelatti, Nico Papagna & Ludat)
Other Research Projects
➔Generics for LiveTyping (Ana Felisatti & Mariano De Sousa)
➔Annotate closure types (Ines Sosa)
➔LiveTyping on JIT VM (Federico Grosso)
➔Type Checking improvements (Julian Luini)
➔Cuis OO Protector - COOP (Gaston Testay-Martin Gonzalez)
Vector Graphics Engine
● Both for Text and Graphics
● Unprecedented quality
● 100% Smalltalk
● High Performance OpenCL version will replace BitBlt
● Currently used for TrueType glyph rasterization
TrueType Fonts
● Entirely portable
● Doesn't use FreeType, host OS support or FFI
● 100% Smalltalk
● High quality (higher than FreeType, ClearType or Quartz)
● High performance
● Uses the Vector Graphics Engine
OpenCL
● OpenCL is the open standard alternative to CUDA
● Used for high performance computing on GPU and CPU
● OpenCL code embedded in Smalltalk code
● Immediate feedback, no external compile
● Used for satellite image processing & vector graphics engine
Alternative Graphics Backends
● Cairo (Mariano Montone)
○ https://github.com/Cuis-Smalltalk/Cairo
● OpenGL (Phil Bellalouna)
○ https://github.com/pbella/Cuis-OpenGL
What’s Next?
What’s next
� Image modularization to be able to use GitHub as real source code
repo
�Changes model improvements
�Make LiveTyping part of Cuis by default
�More Refactorings! (Simple and Complex ones)
�New VM with Boris JIT, Pocho’s PowerLand & LiveTyping
❓Compiler improvement based on LiveTyping to generate and
initialize the PIC at compile time!!
❓Image Bootstraping
Conclusion
Conclusion
✌Cuis is a Smalltalk that it is fulfilling its purpose
�It is a nice place to collaborate and learn
�Ample room for improvement and tools re-thinking
�It is an open and friendly community
Thanks!

More Related Content

What's hot

Mathematics and development of fast TLS handshakes
Mathematics and development of fast TLS handshakesMathematics and development of fast TLS handshakes
Mathematics and development of fast TLS handshakesAlexander Krizhanovsky
 
Systems Analysis and Design 8th Edition Kendall Solutions Manual
Systems Analysis and Design 8th Edition Kendall Solutions ManualSystems Analysis and Design 8th Edition Kendall Solutions Manual
Systems Analysis and Design 8th Edition Kendall Solutions ManualKadenCohen
 
Systems Analysis And Design 2
Systems Analysis And Design 2Systems Analysis And Design 2
Systems Analysis And Design 2MISY
 
SRS(software requirement specification)
SRS(software requirement specification)SRS(software requirement specification)
SRS(software requirement specification)Akash Kumar Dhameja
 
3 Tier Architecture
3  Tier Architecture3  Tier Architecture
3 Tier ArchitectureWebx
 
Chapter 13 silbershatz operating systems
Chapter 13 silbershatz operating systemsChapter 13 silbershatz operating systems
Chapter 13 silbershatz operating systemsGiulianoRanauro
 
SharePoint Information Architecture Best Practices
SharePoint Information Architecture Best PracticesSharePoint Information Architecture Best Practices
SharePoint Information Architecture Best PracticesStephanie Lemieux
 
Constraint propagation
Constraint propagationConstraint propagation
Constraint propagationPeet Denny
 
System Design and Analysis 1
System Design and Analysis 1System Design and Analysis 1
System Design and Analysis 1Boeun Tim
 
Personas, scenarios, user stories
Personas, scenarios, user storiesPersonas, scenarios, user stories
Personas, scenarios, user storiesInteractionDesign
 
System Development Life Cycle (SDLC)
System Development Life Cycle (SDLC)System Development Life Cycle (SDLC)
System Development Life Cycle (SDLC)Showkot Usman
 
Chapter07 determining system requirements
Chapter07 determining system requirementsChapter07 determining system requirements
Chapter07 determining system requirementsDhani Ahmad
 
Software requirements engineering problems and challenges erp implementation ...
Software requirements engineering problems and challenges erp implementation ...Software requirements engineering problems and challenges erp implementation ...
Software requirements engineering problems and challenges erp implementation ...Dr. Hamdan Al-Sabri
 

What's hot (20)

Mathematics and development of fast TLS handshakes
Mathematics and development of fast TLS handshakesMathematics and development of fast TLS handshakes
Mathematics and development of fast TLS handshakes
 
Expert Systems
Expert SystemsExpert Systems
Expert Systems
 
Systems Analysis and Design 8th Edition Kendall Solutions Manual
Systems Analysis and Design 8th Edition Kendall Solutions ManualSystems Analysis and Design 8th Edition Kendall Solutions Manual
Systems Analysis and Design 8th Edition Kendall Solutions Manual
 
Systems Analysis And Design 2
Systems Analysis And Design 2Systems Analysis And Design 2
Systems Analysis And Design 2
 
Srs
SrsSrs
Srs
 
SRS(software requirement specification)
SRS(software requirement specification)SRS(software requirement specification)
SRS(software requirement specification)
 
3 Tier Architecture
3  Tier Architecture3  Tier Architecture
3 Tier Architecture
 
Chapter 13 silbershatz operating systems
Chapter 13 silbershatz operating systemsChapter 13 silbershatz operating systems
Chapter 13 silbershatz operating systems
 
SharePoint Information Architecture Best Practices
SharePoint Information Architecture Best PracticesSharePoint Information Architecture Best Practices
SharePoint Information Architecture Best Practices
 
System development life cycle
System development life cycleSystem development life cycle
System development life cycle
 
Requirements Engineering - Goals
Requirements Engineering - GoalsRequirements Engineering - Goals
Requirements Engineering - Goals
 
3 analysis and design overview
3 analysis and design overview3 analysis and design overview
3 analysis and design overview
 
Systems concept
Systems conceptSystems concept
Systems concept
 
Constraint propagation
Constraint propagationConstraint propagation
Constraint propagation
 
System Design and Analysis 1
System Design and Analysis 1System Design and Analysis 1
System Design and Analysis 1
 
Personas, scenarios, user stories
Personas, scenarios, user storiesPersonas, scenarios, user stories
Personas, scenarios, user stories
 
System Development Life Cycle (SDLC)
System Development Life Cycle (SDLC)System Development Life Cycle (SDLC)
System Development Life Cycle (SDLC)
 
Slides chapter 9
Slides chapter 9Slides chapter 9
Slides chapter 9
 
Chapter07 determining system requirements
Chapter07 determining system requirementsChapter07 determining system requirements
Chapter07 determining system requirements
 
Software requirements engineering problems and challenges erp implementation ...
Software requirements engineering problems and challenges erp implementation ...Software requirements engineering problems and challenges erp implementation ...
Software requirements engineering problems and challenges erp implementation ...
 

Similar to Cuis Smalltalk Past, Present and What’s Next

PuppetConf 2016: Successful Puppet Implementation in Large Organizations – Ja...
PuppetConf 2016: Successful Puppet Implementation in Large Organizations – Ja...PuppetConf 2016: Successful Puppet Implementation in Large Organizations – Ja...
PuppetConf 2016: Successful Puppet Implementation in Large Organizations – Ja...Puppet
 
Drupal and Devops , the Survey Results
Drupal and Devops , the Survey ResultsDrupal and Devops , the Survey Results
Drupal and Devops , the Survey ResultsKris Buytaert
 
My Linux Job: 21 Linux Pros Tell Us What They Do
My Linux Job: 21 Linux Pros Tell Us What They DoMy Linux Job: 21 Linux Pros Tell Us What They Do
My Linux Job: 21 Linux Pros Tell Us What They DoLibby Clark
 
Devops Devops Devops, at Froscon
Devops Devops Devops, at FrosconDevops Devops Devops, at Froscon
Devops Devops Devops, at FrosconKris Buytaert
 
Get Started with Flux
Get Started with FluxGet Started with Flux
Get Started with FluxWeaveworks
 
Introduction to DevOps
Introduction to DevOpsIntroduction to DevOps
Introduction to DevOpsJulien Pivotto
 
Demystifying Digital Scholarship Workshop 6 Slides
Demystifying Digital Scholarship Workshop 6 SlidesDemystifying Digital Scholarship Workshop 6 Slides
Demystifying Digital Scholarship Workshop 6 SlidesPaige Morgan
 
Devops, the future is here, it's just not evenly distributed yet.
Devops, the future is here, it's just not evenly distributed yet.Devops, the future is here, it's just not evenly distributed yet.
Devops, the future is here, it's just not evenly distributed yet.Kris Buytaert
 
Continuous Infrastructure First
Continuous Infrastructure FirstContinuous Infrastructure First
Continuous Infrastructure FirstKris Buytaert
 
Building and Deploying MediaSalsa, an Open Source DAM as Saas platform
Building and Deploying MediaSalsa, an Open Source DAM as Saas platformBuilding and Deploying MediaSalsa, an Open Source DAM as Saas platform
Building and Deploying MediaSalsa, an Open Source DAM as Saas platformKris Buytaert
 
Lessons Learned from Xen [LFNW 2013]
Lessons Learned from Xen [LFNW 2013]Lessons Learned from Xen [LFNW 2013]
Lessons Learned from Xen [LFNW 2013]Russell Pavlicek
 
You Don't Need to be a Developer to Contribute
You Don't Need to be a Developer to ContributeYou Don't Need to be a Developer to Contribute
You Don't Need to be a Developer to ContributeNathan Handler
 
building intelligent systems with large scale deep learning
building intelligent systems with large scale deep learningbuilding intelligent systems with large scale deep learning
building intelligent systems with large scale deep learningmustafa sarac
 
Devops at Startup Weekend BXL
Devops at Startup Weekend BXLDevops at Startup Weekend BXL
Devops at Startup Weekend BXLKris Buytaert
 
web-rtc presentation on TNC 2013, Technical Advisory Committee meeting
web-rtc presentation on TNC 2013, Technical Advisory Committee meetingweb-rtc presentation on TNC 2013, Technical Advisory Committee meeting
web-rtc presentation on TNC 2013, Technical Advisory Committee meetingJan Meijer
 
Learning to Translate with Joey NMT
Learning to Translate with Joey NMTLearning to Translate with Joey NMT
Learning to Translate with Joey NMTJulia Kreutzer
 

Similar to Cuis Smalltalk Past, Present and What’s Next (20)

PuppetConf 2016: Successful Puppet Implementation in Large Organizations – Ja...
PuppetConf 2016: Successful Puppet Implementation in Large Organizations – Ja...PuppetConf 2016: Successful Puppet Implementation in Large Organizations – Ja...
PuppetConf 2016: Successful Puppet Implementation in Large Organizations – Ja...
 
Drupal and Devops , the Survey Results
Drupal and Devops , the Survey ResultsDrupal and Devops , the Survey Results
Drupal and Devops , the Survey Results
 
My Linux Job: 21 Linux Pros Tell Us What They Do
My Linux Job: 21 Linux Pros Tell Us What They DoMy Linux Job: 21 Linux Pros Tell Us What They Do
My Linux Job: 21 Linux Pros Tell Us What They Do
 
Devops Devops Devops, at Froscon
Devops Devops Devops, at FrosconDevops Devops Devops, at Froscon
Devops Devops Devops, at Froscon
 
Get Started with Flux
Get Started with FluxGet Started with Flux
Get Started with Flux
 
Introduction to DevOps
Introduction to DevOpsIntroduction to DevOps
Introduction to DevOps
 
Devops For Drupal
Devops  For DrupalDevops  For Drupal
Devops For Drupal
 
Demystifying Digital Scholarship Workshop 6 Slides
Demystifying Digital Scholarship Workshop 6 SlidesDemystifying Digital Scholarship Workshop 6 Slides
Demystifying Digital Scholarship Workshop 6 Slides
 
Devops, the future is here, it's just not evenly distributed yet.
Devops, the future is here, it's just not evenly distributed yet.Devops, the future is here, it's just not evenly distributed yet.
Devops, the future is here, it's just not evenly distributed yet.
 
Neodev
NeodevNeodev
Neodev
 
GitOps , done Right
GitOps , done RightGitOps , done Right
GitOps , done Right
 
Continuous Infrastructure First
Continuous Infrastructure FirstContinuous Infrastructure First
Continuous Infrastructure First
 
Building and Deploying MediaSalsa, an Open Source DAM as Saas platform
Building and Deploying MediaSalsa, an Open Source DAM as Saas platformBuilding and Deploying MediaSalsa, an Open Source DAM as Saas platform
Building and Deploying MediaSalsa, an Open Source DAM as Saas platform
 
OLITA Digital Odyssey Presentation on Open Source (with Randy Metcalfe)
OLITA Digital Odyssey Presentation on Open Source (with Randy Metcalfe)OLITA Digital Odyssey Presentation on Open Source (with Randy Metcalfe)
OLITA Digital Odyssey Presentation on Open Source (with Randy Metcalfe)
 
Lessons Learned from Xen [LFNW 2013]
Lessons Learned from Xen [LFNW 2013]Lessons Learned from Xen [LFNW 2013]
Lessons Learned from Xen [LFNW 2013]
 
You Don't Need to be a Developer to Contribute
You Don't Need to be a Developer to ContributeYou Don't Need to be a Developer to Contribute
You Don't Need to be a Developer to Contribute
 
building intelligent systems with large scale deep learning
building intelligent systems with large scale deep learningbuilding intelligent systems with large scale deep learning
building intelligent systems with large scale deep learning
 
Devops at Startup Weekend BXL
Devops at Startup Weekend BXLDevops at Startup Weekend BXL
Devops at Startup Weekend BXL
 
web-rtc presentation on TNC 2013, Technical Advisory Committee meeting
web-rtc presentation on TNC 2013, Technical Advisory Committee meetingweb-rtc presentation on TNC 2013, Technical Advisory Committee meeting
web-rtc presentation on TNC 2013, Technical Advisory Committee meeting
 
Learning to Translate with Joey NMT
Learning to Translate with Joey NMTLearning to Translate with Joey NMT
Learning to Translate with Joey NMT
 

More from Hernan Wilkinson

Hacia una síntesis de diseño a partir de entender qué es modelar con software
Hacia una síntesis de diseño a partir de entender qué es modelar con softwareHacia una síntesis de diseño a partir de entender qué es modelar con software
Hacia una síntesis de diseño a partir de entender qué es modelar con softwareHernan Wilkinson
 
Live Typing - California Smalltalkers
Live Typing - California SmalltalkersLive Typing - California Smalltalkers
Live Typing - California SmalltalkersHernan Wilkinson
 
Buenos Aires vs. (London vs. Chicago) Agiles 2020
Buenos Aires vs. (London vs. Chicago) Agiles 2020Buenos Aires vs. (London vs. Chicago) Agiles 2020
Buenos Aires vs. (London vs. Chicago) Agiles 2020Hernan Wilkinson
 
LiveTyping - Anotación automática de tipos para lenguajes dinámicos
LiveTyping - Anotación automática de tipos para lenguajes dinámicosLiveTyping - Anotación automática de tipos para lenguajes dinámicos
LiveTyping - Anotación automática de tipos para lenguajes dinámicosHernan Wilkinson
 
LiveTyping: Update and What is next
LiveTyping: Update and What is nextLiveTyping: Update and What is next
LiveTyping: Update and What is nextHernan Wilkinson
 
Live Typing - Automatic Type Annotation that improves the Programming eXperie...
Live Typing- Automatic Type Annotation that improves the Programming eXperie...Live Typing- Automatic Type Annotation that improves the Programming eXperie...
Live Typing - Automatic Type Annotation that improves the Programming eXperie...Hernan Wilkinson
 
El Desarrollo de Software como debería Ser - PyConAr 2018
El Desarrollo de Software como debería Ser - PyConAr 2018El Desarrollo de Software como debería Ser - PyConAr 2018
El Desarrollo de Software como debería Ser - PyConAr 2018Hernan Wilkinson
 
Lessons Learned Implementing Refactorings
Lessons Learned Implementing RefactoringsLessons Learned Implementing Refactorings
Lessons Learned Implementing RefactoringsHernan Wilkinson
 
El Desarrollo de Software como debería Ser - Nerdear.la 2018
El Desarrollo de Software como debería Ser - Nerdear.la 2018El Desarrollo de Software como debería Ser - Nerdear.la 2018
El Desarrollo de Software como debería Ser - Nerdear.la 2018Hernan Wilkinson
 
El Desarrollo de Software como debería Ser
El Desarrollo de Software como debería SerEl Desarrollo de Software como debería Ser
El Desarrollo de Software como debería SerHernan Wilkinson
 
Go/Ruby/Java: What's next?
Go/Ruby/Java: What's next?Go/Ruby/Java: What's next?
Go/Ruby/Java: What's next?Hernan Wilkinson
 
Exceptions: Why, When, How and Where!
Exceptions: Why, When, How and Where!Exceptions: Why, When, How and Where!
Exceptions: Why, When, How and Where!Hernan Wilkinson
 
Augmenting Smalltalk Syntax
Augmenting Smalltalk SyntaxAugmenting Smalltalk Syntax
Augmenting Smalltalk SyntaxHernan Wilkinson
 
Growing an open participative horizontal and based on trust company
Growing an open participative horizontal and based on trust companyGrowing an open participative horizontal and based on trust company
Growing an open participative horizontal and based on trust companyHernan Wilkinson
 
Como escribir buenos tests al hacer TDD
Como escribir buenos tests al hacer TDDComo escribir buenos tests al hacer TDD
Como escribir buenos tests al hacer TDDHernan Wilkinson
 
Desarrollando sistemas con metodologías y técnicas agiles
Desarrollando sistemas con metodologías y técnicas agilesDesarrollando sistemas con metodologías y técnicas agiles
Desarrollando sistemas con metodologías y técnicas agilesHernan Wilkinson
 

More from Hernan Wilkinson (20)

Hacia una síntesis de diseño a partir de entender qué es modelar con software
Hacia una síntesis de diseño a partir de entender qué es modelar con softwareHacia una síntesis de diseño a partir de entender qué es modelar con software
Hacia una síntesis de diseño a partir de entender qué es modelar con software
 
Live Typing - California Smalltalkers
Live Typing - California SmalltalkersLive Typing - California Smalltalkers
Live Typing - California Smalltalkers
 
Buenos Aires vs. (London vs. Chicago) Agiles 2020
Buenos Aires vs. (London vs. Chicago) Agiles 2020Buenos Aires vs. (London vs. Chicago) Agiles 2020
Buenos Aires vs. (London vs. Chicago) Agiles 2020
 
LiveTyping - Anotación automática de tipos para lenguajes dinámicos
LiveTyping - Anotación automática de tipos para lenguajes dinámicosLiveTyping - Anotación automática de tipos para lenguajes dinámicos
LiveTyping - Anotación automática de tipos para lenguajes dinámicos
 
LiveTyping: Update and What is next
LiveTyping: Update and What is nextLiveTyping: Update and What is next
LiveTyping: Update and What is next
 
Live Typing - Automatic Type Annotation that improves the Programming eXperie...
Live Typing- Automatic Type Annotation that improves the Programming eXperie...Live Typing- Automatic Type Annotation that improves the Programming eXperie...
Live Typing - Automatic Type Annotation that improves the Programming eXperie...
 
El Desarrollo de Software como debería Ser - PyConAr 2018
El Desarrollo de Software como debería Ser - PyConAr 2018El Desarrollo de Software como debería Ser - PyConAr 2018
El Desarrollo de Software como debería Ser - PyConAr 2018
 
Lessons Learned Implementing Refactorings
Lessons Learned Implementing RefactoringsLessons Learned Implementing Refactorings
Lessons Learned Implementing Refactorings
 
Dynamic Type Information
Dynamic Type InformationDynamic Type Information
Dynamic Type Information
 
El Desarrollo de Software como debería Ser - Nerdear.la 2018
El Desarrollo de Software como debería Ser - Nerdear.la 2018El Desarrollo de Software como debería Ser - Nerdear.la 2018
El Desarrollo de Software como debería Ser - Nerdear.la 2018
 
El Desarrollo de Software como debería Ser
El Desarrollo de Software como debería SerEl Desarrollo de Software como debería Ser
El Desarrollo de Software como debería Ser
 
TDD & Refactoring
TDD & RefactoringTDD & Refactoring
TDD & Refactoring
 
Go/Ruby/Java: What's next?
Go/Ruby/Java: What's next?Go/Ruby/Java: What's next?
Go/Ruby/Java: What's next?
 
Exceptions: Why, When, How and Where!
Exceptions: Why, When, How and Where!Exceptions: Why, When, How and Where!
Exceptions: Why, When, How and Where!
 
CuisUniversity
CuisUniversityCuisUniversity
CuisUniversity
 
Oop is not Dead
Oop is not DeadOop is not Dead
Oop is not Dead
 
Augmenting Smalltalk Syntax
Augmenting Smalltalk SyntaxAugmenting Smalltalk Syntax
Augmenting Smalltalk Syntax
 
Growing an open participative horizontal and based on trust company
Growing an open participative horizontal and based on trust companyGrowing an open participative horizontal and based on trust company
Growing an open participative horizontal and based on trust company
 
Como escribir buenos tests al hacer TDD
Como escribir buenos tests al hacer TDDComo escribir buenos tests al hacer TDD
Como escribir buenos tests al hacer TDD
 
Desarrollando sistemas con metodologías y técnicas agiles
Desarrollando sistemas con metodologías y técnicas agilesDesarrollando sistemas con metodologías y técnicas agiles
Desarrollando sistemas con metodologías y técnicas agiles
 

Recently uploaded

Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfkalichargn70th171
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionSolGuruz
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...harshavardhanraghave
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsAlberto González Trastoy
 
Test Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and BackendTest Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and BackendArshad QA
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about usDynamic Netsoft
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsAndolasoft Inc
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerThousandEyes
 
Active Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdfActive Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdfCionsystems
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsJhone kinadey
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxbodapatigopi8531
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...kellynguyen01
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)OPEN KNOWLEDGE GmbH
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...OnePlan Solutions
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxComplianceQuest1
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationkaushalgiri8080
 

Recently uploaded (20)

Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with Precision
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
Test Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and BackendTest Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and Backend
 
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about us
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.js
 
Exploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the ProcessExploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the Process
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
 
Active Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdfActive Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdf
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanation
 

Cuis Smalltalk Past, Present and What’s Next

  • 1. Cuis Smalltalk Past, Present and What’s next Hernán A. Wilkinson - @hernanwilkinson 10Pines founder – Professor at UBA agile software development & services Juan Vuletich - @juanvuletich LabWare
  • 2. Cuis Spirit Some typical problems of the software world ● A system you don't understand is a system you can't help evolve ● Accidental complexity makes it harder to understand ● Code bloat makes it impossible to understand! ● Just implementing what you need might mean not understanding the rest We can do better! ● A system can be as easy to understand as a well written book ● Accidental complexity can be kept to a minimum ● Code bloat can be avoided if you care ● Understanding where your work fits in a larger whole allows for consistency ● The system can help you understand
  • 3. Not just technical but also human
  • 4. Cuis Community ➔ Students per Semester: around 120 ◆ Got +10 contributions this semester, from refactorings to bug fixing ➔ Active List members: A few dozen ➔ Package Authors: Around 20, over 100 packages ➔ The rest of the Smalltalk Community: ◆ People developing VMs for Smalltalk test their work on Cuis ◆ People using other dialects share discussion, fixes and enhancements with Cuis ◆ People using tools/packages developed in Cuis ➔ The “Wise Elders”: Smalltalk creators and pioneers love Cuis! ➔ Total: We estimate around 200 people use Cuis on a regular basis
  • 5. We want everyone to feel safe, to feel appreciated and have a good time with Cuis
  • 7. New Refactorings (Thank you Nahuel Garbezza & Fernando Gasperi & students)
  • 8. TDD Guru (Thank you Matias Dinota)
  • 12. CUIS CI (Thank you Gastón Caruso, Facu Gelatti, Nico Papagna & Ludat)
  • 13. Other Research Projects ➔Generics for LiveTyping (Ana Felisatti & Mariano De Sousa) ➔Annotate closure types (Ines Sosa) ➔LiveTyping on JIT VM (Federico Grosso) ➔Type Checking improvements (Julian Luini) ➔Cuis OO Protector - COOP (Gaston Testay-Martin Gonzalez)
  • 14. Vector Graphics Engine ● Both for Text and Graphics ● Unprecedented quality ● 100% Smalltalk ● High Performance OpenCL version will replace BitBlt ● Currently used for TrueType glyph rasterization
  • 15. TrueType Fonts ● Entirely portable ● Doesn't use FreeType, host OS support or FFI ● 100% Smalltalk ● High quality (higher than FreeType, ClearType or Quartz) ● High performance ● Uses the Vector Graphics Engine
  • 16. OpenCL ● OpenCL is the open standard alternative to CUDA ● Used for high performance computing on GPU and CPU ● OpenCL code embedded in Smalltalk code ● Immediate feedback, no external compile ● Used for satellite image processing & vector graphics engine
  • 17. Alternative Graphics Backends ● Cairo (Mariano Montone) ○ https://github.com/Cuis-Smalltalk/Cairo ● OpenGL (Phil Bellalouna) ○ https://github.com/pbella/Cuis-OpenGL
  • 19. What’s next � Image modularization to be able to use GitHub as real source code repo �Changes model improvements �Make LiveTyping part of Cuis by default �More Refactorings! (Simple and Complex ones) �New VM with Boris JIT, Pocho’s PowerLand & LiveTyping ❓Compiler improvement based on LiveTyping to generate and initialize the PIC at compile time!! ❓Image Bootstraping
  • 21. Conclusion ✌Cuis is a Smalltalk that it is fulfilling its purpose �It is a nice place to collaborate and learn �Ample room for improvement and tools re-thinking �It is an open and friendly community
  • 22.