
Historia
Conceptos
Relevancia
Influencia
Curiosidad

(programación orientada a objetos)
Un lenguaje orientado a objetos puro
a.k.a. "Todo es un objeto"
At Utah sometime after November 1966 when, influenced by Sketchpad, Simula, the design for the ARPAnet, the Burroughs B5000, and my background in Biology and Mathematics, I thought of an architecture for programming. It was probably in 1967 when someone asked me what I was doing, and I said:
"It's object-oriented programming".


exampleWithNumber: x
"A method that illustrates every part of Smalltalk method syntax
except primitives. It has unary, binary, and keyword messages,
declares arguments and temporaries, accesses a global variable
(but not and instance variable), uses literals (array, character,
symbol, string, integer, float), uses the pseudo variables
true false, nil, self, and super, and has sequence, assignment,
return and cascade. It has both zero argument and one argument blocks."
|y|
true & false not & (nil isNil) ifFalse: [self halt].
y := self size + super size.
#($a #a "a" 1 1.0) do: [:each |
Transcript
show: (each class name);
show: ' '].
^ x < y3 + 4
aCollection add: anObject
aDevice statusOf: #console at: DateAndTime now
Workstation withName: aString
Toda interacción se realiza mediante el envío de mensajes:
[ "booleanExpression" ] whileTrue: [ ... ]
a < b ifTrue: [...] ifFalse: [...]
aCollection do: [:each | ... ]
aCollection ifEmpty: [ ... ]

true y false son instancias únicas de las clases True y False
ifTrue: trueBlock ifFalse: falseBlock
^trueBlock valueifTrue: trueBlock ifFalse: falseBlock
^falseBlock valueTrue
False
Virtual Machine
Image
Simple things should be simple, complex things should be possible — Alan Kay



(one-liners & snippets)
The best way to predict the future is to invent it— Alan Kay
Slides: