SlideShare ist ein Scribd-Unternehmen logo
1 von 35
Downloaden Sie, um offline zu lesen
Take the Smalltalk
Red Pill
DISCOVER A NEW WAY OF PROGRAMMING
Rafael Luque /
Madrid Smalltalk User Group - 25/01/2016
@rafael_luque
What is Smalltalk?
Smalltalk is the software
part of Alan Kay's personal
computing vision.
The Dynabook
Imagine having your own self-contained
knowledge manipulator in a portable
package the size and shape of an
ordinary notebook. How would you use it
if it had enough power to outrace your
senses of sight and hearing, enough
capacity to store for later retrieval
thousands of page-equivalents of
reference materials, poems, letters,
recipes, drawings, animations, musical
scores, waveforms, dynamic simulations,
and anything else you would like to
create, remember, and change?
Interim Dynabooks
We designed and built a number of stand-
alone self-contained Interim Dynabooks
in order to have a solid test-bed for our
ideas. These machines are the
environment for our experimental
communications medium, Smalltalk.
Created at Xerox PARC in
the 70s
Inspirations
Sketchpad by Ivan Sutherland, 1963.
NLS by Doug Engelbart, 1966.
Logo by Seymour Papert, 1968.
Simula by Dahl and Nygaard, 1967.
LISP by John McCarthy, 1958.
A bit of history
60s: Alan Kay develops early concepts
based on Lisp, Simula and Logo.
1969: Smalltalk first coined.
1972: Smalltalk-72 is the first released
version.
1974: Smalltalk-74.
1976: Smalltalk-76.
1980: Smalltalk-80 released. The first
version to external companies.
80s: Digitalk and ParcPlace released
commercial versions.
Design Principles behind
Smalltalk
Personal Mastery
If a system is to serve the creative spirit, it must be entirely
comprehensible to a single individual.
Uniform Metaphor
A language should be designed around a powerful
metaphor that can be uniformly applied in all areas.
Reactive Principle
Every component accessible to the user should be able to
present itself in a meaningful way for observation and
manipulation.
The Language
Pure object language.
Dynamically typed.
Reflective language.
Not only a language, but an integrated environment.
A lot of innovations
IDE concept.
Design patterns.
XUnit.
Refactorings.
Garbage collection.
MVC.
JIT compilation.
It is the first language that was a clear
improvement on a large majority of its
successors.
Implementations
Closed Source:
VisualWorks
GemStone/S
ObjectStudio
VisualAge
Smalltalk X
Open Source:
GNU Smalltalk
Squeak
Pharo
Dolphin
Pharo Smalltalk
Started in 2008 from Squeak.
Pharo 1.0 released in October 2009.
Pharo 5.0: early 2016.
MIT license.
Works on Windows, Mac OS X, Linux, iOS, Android and Pi.
Great community.
Improving steadily.
A brief Pharo tour
Less is more
It seems that perfection is attained not
when there is nothing more to add, but
when there is nothing more to remove.
--- Antoine de Saint Exupéry
No constructors.
No type declarations.
No static methods.
No interfaces.
No visibility modifiers (public, private, package,
protected).
No parameterized types (Java Generics)
No primitive types.
One simple and uniform
model
Everything is an object.
Everything happens by sending messages.
Syntax in a postcard
exampleWithNumber: x
  "A method that illustrates every part of Smalltalk syntax."
  |y|
  true & false not & (nil isNil) ifFalse: [self halt].
  y := self size + super size.
  { 1 . 2 .  #($a #a "a" 1 1.0) }
    do: [:each | Transcript
                   show: (each class name);
                   show: ' '].
  ^ x < y
                   
Image based development
You take the blue pill —the story ends, you
wake up in your bed and believe whatever
you want to believe. You take the red pill —
you stay in Wonderland, and I show you
how deep the rabbit hole goes.
Demo 1
Living objects under your fingers
Demo 2
Fully inspectable and reflective
Demo 3
Very small environment
Demo 4
Turtles all the way down
A new way to understand
programming
Programming like a dialog with your objects.
Programming = explore + change running systems.
Fast feedback loop.
One simple uniform model to access everything.
Not a black box. Fully inspectable and reflective.
The environment is so small that you can understand
and extend everything.
So you are not constrained to a predefined set of tools
(moldable tools).
Why are we using Smalltalk
at OSOCO
We have freedom to choose technologies: "When you
choose technology, you have to ignore what other people
are doing, and consider only what will work the best."
(Beating the Averages, Paul Graham).
Unbeatable simplicity, consistency and
comprehensibility.
Programming live running systems.
Instant feedback.
Productivity.
Build your own domain specific tools.
Enabler for Domain-Driven Design.
The ultimate agile programming environment.
--- Andy Bower
Warning
Smalltalk is dangerous. It is a drug. My
advice to you would be don't try it; it could
ruin your life. Once you take the time to
learn it (to REALLY learn it) you will see that
there is still nothing out there that can
quite touch it.
Sources & References
. Alan Kay.
. Dan Ingalls.
book.
book.
. Tudor Girba.
. Marcus Denker.
. D. Cassou, S. Ducasse, L. Fabresse.
. Paul Graham.
Personal Computing
Design Principles behind Smalltalk
Pharo By Example
Deep into Pharo
Pharo: Playing with live objects
Pharo: Objects at your fingerprints
Pharo MOOC
Beating the averages
Questions?

Weitere ähnliche Inhalte

Ähnlich wie Take the Smalltalk Red Pill

Watching Somebody Else's Computer: Cloud Native Observability
Watching Somebody Else's Computer: Cloud Native ObservabilityWatching Somebody Else's Computer: Cloud Native Observability
Watching Somebody Else's Computer: Cloud Native ObservabilityRonald McCollam
 
BUD17-104: Scripting Languages in IoT: Challenges and Approaches
BUD17-104: Scripting Languages in IoT: Challenges and ApproachesBUD17-104: Scripting Languages in IoT: Challenges and Approaches
BUD17-104: Scripting Languages in IoT: Challenges and ApproachesLinaro
 
The REAL Angular Keynote
The REAL Angular KeynoteThe REAL Angular Keynote
The REAL Angular KeynoteLukas Ruebbelke
 
How to sustain a tool building community-driven effort
How to sustain a tool building community-driven effortHow to sustain a tool building community-driven effort
How to sustain a tool building community-driven effortJordi Cabot
 
Open Source is Not An Alternative, It is The Solution
Open Source is Not An Alternative, It is The SolutionOpen Source is Not An Alternative, It is The Solution
Open Source is Not An Alternative, It is The Solutionwiradikusuma
 
Building an Open Source iOS app: lessons learned
Building an Open Source iOS app: lessons learnedBuilding an Open Source iOS app: lessons learned
Building an Open Source iOS app: lessons learnedWojciech Koszek
 
Visualization of Complex Systems
Visualization of Complex SystemsVisualization of Complex Systems
Visualization of Complex SystemsChris Laffra
 
Linux Sucks
Linux SucksLinux Sucks
Linux Suckspapygeek
 
Culture And Aesthetic Revisited
Culture And Aesthetic RevisitedCulture And Aesthetic Revisited
Culture And Aesthetic RevisitedAdam Keys
 
Sudipta_Mukherjee_Resume_APR_2023.pdf
Sudipta_Mukherjee_Resume_APR_2023.pdfSudipta_Mukherjee_Resume_APR_2023.pdf
Sudipta_Mukherjee_Resume_APR_2023.pdfsudipto801
 
Building in-house R&D to push boundaries of Voice systems
Building in-house R&D to push boundaries of Voice systemsBuilding in-house R&D to push boundaries of Voice systems
Building in-house R&D to push boundaries of Voice systemsAlexandre Nicol
 
Unit 4 Assignment 1 Comparative Study Of Programming...
Unit 4 Assignment 1 Comparative Study Of Programming...Unit 4 Assignment 1 Comparative Study Of Programming...
Unit 4 Assignment 1 Comparative Study Of Programming...Carmen Sanborn
 
Computable content: Notebooks, containers, and data-centric organizational le...
Computable content: Notebooks, containers, and data-centric organizational le...Computable content: Notebooks, containers, and data-centric organizational le...
Computable content: Notebooks, containers, and data-centric organizational le...Domino Data Lab
 
Hanmer Software Patterns Bosc2009
Hanmer Software Patterns Bosc2009Hanmer Software Patterns Bosc2009
Hanmer Software Patterns Bosc2009bosc
 
Kiss the end-user goodbye
Kiss the end-user goodbyeKiss the end-user goodbye
Kiss the end-user goodbyeIvanka Majic
 
Machine learning in cybersecutiry
Machine learning in cybersecutiryMachine learning in cybersecutiry
Machine learning in cybersecutiryVishwas N
 
Design Patterns Course
Design Patterns CourseDesign Patterns Course
Design Patterns CourseAhmed Soliman
 

Ähnlich wie Take the Smalltalk Red Pill (20)

Watching Somebody Else's Computer: Cloud Native Observability
Watching Somebody Else's Computer: Cloud Native ObservabilityWatching Somebody Else's Computer: Cloud Native Observability
Watching Somebody Else's Computer: Cloud Native Observability
 
BUD17-104: Scripting Languages in IoT: Challenges and Approaches
BUD17-104: Scripting Languages in IoT: Challenges and ApproachesBUD17-104: Scripting Languages in IoT: Challenges and Approaches
BUD17-104: Scripting Languages in IoT: Challenges and Approaches
 
Squeak
SqueakSqueak
Squeak
 
Good programming
Good programmingGood programming
Good programming
 
The REAL Angular Keynote
The REAL Angular KeynoteThe REAL Angular Keynote
The REAL Angular Keynote
 
How to sustain a tool building community-driven effort
How to sustain a tool building community-driven effortHow to sustain a tool building community-driven effort
How to sustain a tool building community-driven effort
 
Open Source is Not An Alternative, It is The Solution
Open Source is Not An Alternative, It is The SolutionOpen Source is Not An Alternative, It is The Solution
Open Source is Not An Alternative, It is The Solution
 
Building an Open Source iOS app: lessons learned
Building an Open Source iOS app: lessons learnedBuilding an Open Source iOS app: lessons learned
Building an Open Source iOS app: lessons learned
 
Visualization of Complex Systems
Visualization of Complex SystemsVisualization of Complex Systems
Visualization of Complex Systems
 
Linux Sucks
Linux SucksLinux Sucks
Linux Sucks
 
Culture And Aesthetic Revisited
Culture And Aesthetic RevisitedCulture And Aesthetic Revisited
Culture And Aesthetic Revisited
 
Sudipta_Mukherjee_Resume_APR_2023.pdf
Sudipta_Mukherjee_Resume_APR_2023.pdfSudipta_Mukherjee_Resume_APR_2023.pdf
Sudipta_Mukherjee_Resume_APR_2023.pdf
 
Moore for less
Moore for lessMoore for less
Moore for less
 
Building in-house R&D to push boundaries of Voice systems
Building in-house R&D to push boundaries of Voice systemsBuilding in-house R&D to push boundaries of Voice systems
Building in-house R&D to push boundaries of Voice systems
 
Unit 4 Assignment 1 Comparative Study Of Programming...
Unit 4 Assignment 1 Comparative Study Of Programming...Unit 4 Assignment 1 Comparative Study Of Programming...
Unit 4 Assignment 1 Comparative Study Of Programming...
 
Computable content: Notebooks, containers, and data-centric organizational le...
Computable content: Notebooks, containers, and data-centric organizational le...Computable content: Notebooks, containers, and data-centric organizational le...
Computable content: Notebooks, containers, and data-centric organizational le...
 
Hanmer Software Patterns Bosc2009
Hanmer Software Patterns Bosc2009Hanmer Software Patterns Bosc2009
Hanmer Software Patterns Bosc2009
 
Kiss the end-user goodbye
Kiss the end-user goodbyeKiss the end-user goodbye
Kiss the end-user goodbye
 
Machine learning in cybersecutiry
Machine learning in cybersecutiryMachine learning in cybersecutiry
Machine learning in cybersecutiry
 
Design Patterns Course
Design Patterns CourseDesign Patterns Course
Design Patterns Course
 

Mehr von OSOCO

HackaTrips 2017 Team 10
HackaTrips 2017 Team 10HackaTrips 2017 Team 10
HackaTrips 2017 Team 10OSOCO
 
Dry-wit Overview
Dry-wit OverviewDry-wit Overview
Dry-wit OverviewOSOCO
 
Spring Annotations: Proxy
Spring Annotations: ProxySpring Annotations: Proxy
Spring Annotations: ProxyOSOCO
 
Proactive monitoring with Monit
Proactive monitoring with MonitProactive monitoring with Monit
Proactive monitoring with MonitOSOCO
 
XSS Countermeasures in Grails
XSS Countermeasures in GrailsXSS Countermeasures in Grails
XSS Countermeasures in GrailsOSOCO
 
AWS CloudFormation en 5 Minutos
AWS CloudFormation en 5 MinutosAWS CloudFormation en 5 Minutos
AWS CloudFormation en 5 MinutosOSOCO
 
Understanding Java Dynamic Proxies
Understanding Java Dynamic ProxiesUnderstanding Java Dynamic Proxies
Understanding Java Dynamic ProxiesOSOCO
 
SSH Tunneling Recipes
SSH Tunneling RecipesSSH Tunneling Recipes
SSH Tunneling RecipesOSOCO
 

Mehr von OSOCO (8)

HackaTrips 2017 Team 10
HackaTrips 2017 Team 10HackaTrips 2017 Team 10
HackaTrips 2017 Team 10
 
Dry-wit Overview
Dry-wit OverviewDry-wit Overview
Dry-wit Overview
 
Spring Annotations: Proxy
Spring Annotations: ProxySpring Annotations: Proxy
Spring Annotations: Proxy
 
Proactive monitoring with Monit
Proactive monitoring with MonitProactive monitoring with Monit
Proactive monitoring with Monit
 
XSS Countermeasures in Grails
XSS Countermeasures in GrailsXSS Countermeasures in Grails
XSS Countermeasures in Grails
 
AWS CloudFormation en 5 Minutos
AWS CloudFormation en 5 MinutosAWS CloudFormation en 5 Minutos
AWS CloudFormation en 5 Minutos
 
Understanding Java Dynamic Proxies
Understanding Java Dynamic ProxiesUnderstanding Java Dynamic Proxies
Understanding Java Dynamic Proxies
 
SSH Tunneling Recipes
SSH Tunneling RecipesSSH Tunneling Recipes
SSH Tunneling Recipes
 

Kürzlich hochgeladen

%in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park %in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park masabamasaba
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...masabamasaba
 
Announcing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareAnnouncing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareJim McKeeth
 
WSO2Con204 - Hard Rock Presentation - Keynote
WSO2Con204 - Hard Rock Presentation - KeynoteWSO2Con204 - Hard Rock Presentation - Keynote
WSO2Con204 - Hard Rock Presentation - KeynoteWSO2
 
%in Benoni+277-882-255-28 abortion pills for sale in Benoni
%in Benoni+277-882-255-28 abortion pills for sale in Benoni%in Benoni+277-882-255-28 abortion pills for sale in Benoni
%in Benoni+277-882-255-28 abortion pills for sale in Benonimasabamasaba
 
%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in sowetomasabamasaba
 
%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrandmasabamasaba
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnAmarnathKambale
 
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfonteinmasabamasaba
 
What Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the SituationWhat Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the SituationJuha-Pekka Tolvanen
 
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfonteinmasabamasaba
 
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburgmasabamasaba
 
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...WSO2
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisamasabamasaba
 
WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...
WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...
WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...WSO2
 
WSO2CON 2024 Slides - Open Source to SaaS
WSO2CON 2024 Slides - Open Source to SaaSWSO2CON 2024 Slides - Open Source to SaaS
WSO2CON 2024 Slides - Open Source to SaaSWSO2
 
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...masabamasaba
 
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...WSO2
 

Kürzlich hochgeladen (20)

%in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park %in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
 
Announcing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareAnnouncing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK Software
 
WSO2Con204 - Hard Rock Presentation - Keynote
WSO2Con204 - Hard Rock Presentation - KeynoteWSO2Con204 - Hard Rock Presentation - Keynote
WSO2Con204 - Hard Rock Presentation - Keynote
 
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
 
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
 
%in Benoni+277-882-255-28 abortion pills for sale in Benoni
%in Benoni+277-882-255-28 abortion pills for sale in Benoni%in Benoni+277-882-255-28 abortion pills for sale in Benoni
%in Benoni+277-882-255-28 abortion pills for sale in Benoni
 
%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto
 
%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learn
 
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
 
What Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the SituationWhat Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the Situation
 
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
 
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
 
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...
WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...
WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...
 
WSO2CON 2024 Slides - Open Source to SaaS
WSO2CON 2024 Slides - Open Source to SaaSWSO2CON 2024 Slides - Open Source to SaaS
WSO2CON 2024 Slides - Open Source to SaaS
 
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
 
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
 

Take the Smalltalk Red Pill

  • 1. Take the Smalltalk Red Pill DISCOVER A NEW WAY OF PROGRAMMING Rafael Luque / Madrid Smalltalk User Group - 25/01/2016 @rafael_luque
  • 3. Smalltalk is the software part of Alan Kay's personal computing vision.
  • 4. The Dynabook Imagine having your own self-contained knowledge manipulator in a portable package the size and shape of an ordinary notebook. How would you use it if it had enough power to outrace your senses of sight and hearing, enough capacity to store for later retrieval thousands of page-equivalents of reference materials, poems, letters, recipes, drawings, animations, musical scores, waveforms, dynamic simulations, and anything else you would like to create, remember, and change?
  • 5. Interim Dynabooks We designed and built a number of stand- alone self-contained Interim Dynabooks in order to have a solid test-bed for our ideas. These machines are the environment for our experimental communications medium, Smalltalk.
  • 6. Created at Xerox PARC in the 70s
  • 7. Inspirations Sketchpad by Ivan Sutherland, 1963. NLS by Doug Engelbart, 1966. Logo by Seymour Papert, 1968. Simula by Dahl and Nygaard, 1967. LISP by John McCarthy, 1958.
  • 8. A bit of history 60s: Alan Kay develops early concepts based on Lisp, Simula and Logo. 1969: Smalltalk first coined. 1972: Smalltalk-72 is the first released version. 1974: Smalltalk-74. 1976: Smalltalk-76. 1980: Smalltalk-80 released. The first version to external companies. 80s: Digitalk and ParcPlace released commercial versions.
  • 10. Personal Mastery If a system is to serve the creative spirit, it must be entirely comprehensible to a single individual.
  • 11. Uniform Metaphor A language should be designed around a powerful metaphor that can be uniformly applied in all areas.
  • 12. Reactive Principle Every component accessible to the user should be able to present itself in a meaningful way for observation and manipulation.
  • 13. The Language Pure object language. Dynamically typed. Reflective language. Not only a language, but an integrated environment.
  • 14. A lot of innovations IDE concept. Design patterns. XUnit. Refactorings. Garbage collection. MVC. JIT compilation. It is the first language that was a clear improvement on a large majority of its successors.
  • 17. Started in 2008 from Squeak. Pharo 1.0 released in October 2009. Pharo 5.0: early 2016. MIT license. Works on Windows, Mac OS X, Linux, iOS, Android and Pi. Great community. Improving steadily.
  • 19. Less is more It seems that perfection is attained not when there is nothing more to add, but when there is nothing more to remove. --- Antoine de Saint Exupéry
  • 20. No constructors. No type declarations. No static methods. No interfaces. No visibility modifiers (public, private, package, protected). No parameterized types (Java Generics) No primitive types.
  • 21. One simple and uniform model Everything is an object. Everything happens by sending messages.
  • 22. Syntax in a postcard exampleWithNumber: x   "A method that illustrates every part of Smalltalk syntax."   |y|   true & false not & (nil isNil) ifFalse: [self halt].   y := self size + super size.   { 1 . 2 .  #($a #a "a" 1 1.0) }     do: [:each | Transcript                    show: (each class name);                    show: ' '].   ^ x < y                    
  • 24. You take the blue pill —the story ends, you wake up in your bed and believe whatever you want to believe. You take the red pill — you stay in Wonderland, and I show you how deep the rabbit hole goes.
  • 25. Demo 1 Living objects under your fingers
  • 26. Demo 2 Fully inspectable and reflective
  • 27. Demo 3 Very small environment
  • 28. Demo 4 Turtles all the way down
  • 29. A new way to understand programming
  • 30. Programming like a dialog with your objects. Programming = explore + change running systems. Fast feedback loop. One simple uniform model to access everything. Not a black box. Fully inspectable and reflective. The environment is so small that you can understand and extend everything. So you are not constrained to a predefined set of tools (moldable tools).
  • 31. Why are we using Smalltalk at OSOCO
  • 32. We have freedom to choose technologies: "When you choose technology, you have to ignore what other people are doing, and consider only what will work the best." (Beating the Averages, Paul Graham). Unbeatable simplicity, consistency and comprehensibility. Programming live running systems. Instant feedback. Productivity. Build your own domain specific tools. Enabler for Domain-Driven Design. The ultimate agile programming environment.
  • 33. --- Andy Bower Warning Smalltalk is dangerous. It is a drug. My advice to you would be don't try it; it could ruin your life. Once you take the time to learn it (to REALLY learn it) you will see that there is still nothing out there that can quite touch it.
  • 34. Sources & References . Alan Kay. . Dan Ingalls. book. book. . Tudor Girba. . Marcus Denker. . D. Cassou, S. Ducasse, L. Fabresse. . Paul Graham. Personal Computing Design Principles behind Smalltalk Pharo By Example Deep into Pharo Pharo: Playing with live objects Pharo: Objects at your fingerprints Pharo MOOC Beating the averages