SlideShare una empresa de Scribd logo
Introducción a
Smalltalk y Ambientes
de Objetos
ICES – Sunchales - Noviembre 2013
Introducción a Smalltalk y Ambientes de Objetos
¿Quién Soy?
●

Germán S. Arduino

●

Desarrollador de Software e Investigador

●

Fundador de Arduino Software (http://www.arduinosoftware.com)

●

Creador de PasswordsPro (http://www.passwordspro.com)

●

Jefe de Investigación y Desarrollo Grupo Sancor Seguros

●

About.me/garduino
Orígenes de Smalltalk
El Lugar: (Xerox Parc en Palo Alto, CA, USA)
GUI (iconos, ventanas, mouse)
Editor de Textos WYSIWYG
InterPress (precursor de PostScript)
Red de Area Loca Ethernet
Tecnología de Objetos, Smalltalk, IDE
Orígenes de Smalltalk
Las personas:

Dan Ingalls
Alan Kay
Orígenes de Smalltalk
Las personas:

Adele Goldberg
Ted Kaehler
¿Qué es Smalltalk?
Es un ambiente de objetos computacionales que se
comunican a interactúan mediante el envío de mensajes
(Estos mensajes también son objetos)
¿Qué es Smalltalk?
Es un ambiente de objetos computacionales que se
comunican a interactúan mediante el envío de mensajes
(Estos mensajes también son objetos)
El ambiente Smalltalk tiene un lenguaje de programación que
también se conoce como “Smalltalk”
Características de Smalltalk
●

Un programa Smalltalk consiste únicamente de objetos.
Características de Smalltalk
●

Un programa Smalltalk consiste únicamente de objetos.

●

Los objetos Smalltalk presentan características comunes:
Características de Smalltalk
●

●

Un programa Smalltalk consiste únicamente de objetos.
Los objetos Smalltalk presentan características comunes:
➢ Tienen una memoria propia.
Características de Smalltalk
●

●

Un programa Smalltalk consiste únicamente de objetos.
Los objetos Smalltalk presentan características comunes:
➢ Tienen una memoria propia.
➢ Poseen capacidad para comunicarse con otros objetos.
Características de Smalltalk
●

●

Un programa Smalltalk consiste únicamente de objetos.
Los objetos Smalltalk presentan características comunes:
➢ Tienen una memoria propia.
➢ Poseen capacidad para comunicarse con otros objetos.
➢ Poseen la capacidad de heredar características de objetos
ancestros.
Características de Smalltalk
●

●

Un programa Smalltalk consiste únicamente de objetos.
Los objetos Smalltalk presentan características comunes:
➢ Tienen una memoria propia.
➢ Poseen capacidad para comunicarse con otros objetos.
➢ Poseen la capacidad de heredar características de objetos
ancestros.
➢ Tienen capacidad de procesamiento.
Características de Smalltalk
●

●

Un programa Smalltalk consiste únicamente de objetos.
Los objetos Smalltalk presentan características comunes:
➢ Tienen una memoria propia.
➢ Poseen capacidad para comunicarse con otros objetos.
➢ Poseen la capacidad de heredar características de objetos
ancestros.
➢ Tienen capacidad de procesamiento.
➢ Se comunican entre si por envío de mensajes.
Paradigma Tradicional
Datos
Paradigma Tradicional
Programas

Datos
Paradigma Tradicional
(“¿Orientado a Objetos? ”)
Programas

Datos
Paradigma Tradicional
(“¿Orientado a Objetos? ”)
Programas

Datos

¿Y el encapsulamiento ?
Tecnología de Objetos
(No nos conformamos con que sólo sea “orientado” a objetos)

Foto tomada de: http://solorobotica.blogspot.com.ar/2012/04/s4a-scratch-para-arduino.html
Características de Smalltalk
●

Un mismo objeto puede proveer muchas operaciones.
Características de Smalltalk
●

●

Un mismo objeto puede proveer muchas operaciones.
La definición de cada una de estas operaciones se llama
método (Un método especifica la reacción de un objeto
cuando recibe un mensaje que es dirigido a ese método).
Características de Smalltalk
●

●

●

Un mismo objeto puede proveer muchas operaciones.
La definición de cada una de estas operaciones se llama
método (Un método especifica la reacción de un objeto
cuando recibe un mensaje que es dirigido a ese método).
La colección de métodos de un objeto se llama protocolo
de mensajes o interfaz de mensajes.
Características de Smalltalk
●

●

●

●

Un mismo objeto puede proveer muchas operaciones.
La definición de cada una de estas operaciones se llama
método (Un método especifica la reacción de un objeto
cuando recibe un mensaje que es dirigido a ese método).
La colección de métodos de un objeto se llama protocolo
de mensajes o interfaz de mensajes.
Los mensajes pueden ser parametrizados y los parámetros
también son objetos, así como también la respuesta o
resultado del método será un objeto.
Características de Smalltalk
●

Las características comunes de un objeto se tipifican bajo
una clase de tal forma que los objetos agrupados bajo una
clase se conocen como instancias de ella.
Características de Smalltalk
●

●

Las características comunes de un objeto se tipifican bajo
una clase de tal forma que los objetos agrupados bajo una
clase se conocen como instancias de ella.
Las instancias de una clase se limpian automáticamente
cuando ya no se necesitan, por el recolector de basura
(garbage collector).
Características de Smalltalk
●

●

●

Las características comunes de un objeto se tipifican bajo
una clase de tal forma que los objetos agrupados bajo una
clase se conocen como instancias de ella.
Las instancias de una clase se limpian automáticamente
cuando ya no se necesitan, por el recolector de basura
(garbage collector).
Cada objeto tiene su propio estado local y representa una
instancia diferente de su clase.
Características de Smalltalk
●

Ambiente de Objetos Puros.
Características de Smalltalk
Ambiente de Objetos Puros.
● Tipado Dinámico.
●
Características de Smalltalk
Ambiente de Objetos Puros.
● Tipado Dinámico.
● Interacción entre objetos mediante envío de mensajes.
●
Características de Smalltalk
Ambiente de Objetos Puros.
● Tipado Dinámico.
● Interacción entre objetos mediante envío de mensajes.
● Herencia.
●
Características de Smalltalk
Ambiente de Objetos Puros.
● Tipado Dinámico.
● Interacción entre objetos mediante envío de mensajes.
● Herencia.
● Reflexión Computacional.
●
Características de Smalltalk
Ambiente de Objetos Puros.
● Tipado Dinámico.
● Interacción entre objetos mediante envío de mensajes.
● Herencia.
● Reflexión Computacional.
● Recolección de Basura.
●
Características de Smalltalk
Ambiente de Objetos Puros.
● Tipado Dinámico.
● Interacción entre objetos mediante envío de mensajes.
● Herencia.
● Reflexión Computacional.
● Recolección de Basura.
● Compilación en Tiempo de Ejecución (o interpretado,
dependiendo de la distribución).
●
Características de Smalltalk
Ambiente de Objetos Puros.
● Tipado Dinámico.
● Interacción entre objetos mediante envío de mensajes.
● Herencia.
● Reflexión Computacional.
● Recolección de Basura.
● Compilación en Tiempo de Ejecución (o interpretado,
dependiendo de la distribución).
● Múltiples Implementaciones.
●
Características de Smalltalk
Ambiente de Objetos Puros.
● Tipado Dinámico.
● Interacción entre objetos mediante envío de mensajes.
● Herencia.
● Reflexión Computacional.
● Recolección de Basura.
● Compilación en Tiempo de Ejecución (o interpretado,
dependiendo de la distribución).
● Múltiples Implementaciones.
● Influencia en otros lenguajes (Java, Ruby, Dart).
●
Características de Smalltalk
Ambiente de Objetos Puros.
● Tipado Dinámico.
● Interacción entre objetos mediante envío de mensajes.
● Herencia.
● Reflexión Computacional.
● Recolección de Basura.
● Compilación en Tiempo de Ejecución (o interpretado,
dependiendo de la distribución).
● Múltiples Implementaciones.
● Influencia en otros lenguajes (Java, Ruby, Dart).
● Influencia en las metodologías ágiles (refactorización,
desarrollo incremental, tdd, etc).
●
Características de Smalltalk
Ambiente de Objetos Puros.
● Tipado Dinámico.
● Interacción entre objetos mediante envío de mensajes.
● Herencia.
● Reflexión Computacional.
● Recolección de Basura.
● Compilación en Tiempo de Ejecución (o interpretado,
dependiendo de la distribución).
● Múltiples Implementaciones.
● Influencia en otros lenguajes (Java, Ruby, Dart).
● Influencia en las metodologías ágiles (refactorización,
desarrollo incremental, tdd, etc).
● Metaprogramación.
●
Otra forma de trabajar
● Desarrollo Incremental
● Reparación en vivo
Arquitectura de Smalltalk
●

Máquina Virtual (específica para cada Sistema Operativo)
Arquitectura de Smalltalk
●

●

Máquina Virtual (específica para cada Sistema Operativo)
Archivo .sources (contiene los fuentes del ambiente que
no cambian muy frecuentemente)
Arquitectura de Smalltalk
●

●

●

Máquina Virtual (específica para cada Sistema Operativo)
Archivo .sources (contiene los fuentes del ambiente que
no cambian muy frecuentemente)
Archivo .changes (contiene los cambios que vamos
haciendo sobre los objetos a medida que trabajamos)
Arquitectura de Smalltalk
●

●

●

●

Máquina Virtual (específica para cada Sistema Operativo)
Archivo .sources (contiene los fuentes del ambiente que
no cambian muy frecuentemente)
Archivo .changes (contiene los cambios que vamos
haciendo sobre los objetos, a nivel código fuente, a medida
que trabajamos)
Archivo .image (contiene el estado de todos los objetos en
el sistema, incluidos clases y métodos)
Arquitectura de Smalltalk
●

●

●

●

Máquina Virtual (específica para cada Sistema Operativo)
Archivo .sources (contiene los fuentes del ambiente que
no cambian muy frecuentemente)
Archivo .changes (contiene los cambios que vamos
haciendo sobre los objetos, a nivel código fuente, a medida
que trabajamos)
Archivo .image (contiene el estado de todos los objetos en
el sistema, incluidos clases y métodos)
Image + changes = Una foto del sistema corriendo,
congelado en el tiempo
Smalltalk's Actuales
Comerciales
Cincom Visual Works (http://www.cincomsmalltalk.com/main/products/visualworks/)
● Cincom ObjectStudio (http://www.cincomsmalltalk.com/main/products/objectstudio/)
● VA Smalltalk (http://www.instantiations.com/products/vasmalltalk/index.html)
● GemStone/S (http://gemtalksystems.com/index.php/products/gemstones/)
● Dolphin Smalltalk (http://www.object-arts.com)
● Smalltalk MT (http://www.objectconnect.com)
● Visual Smalltalk
● Smalltalk/V (Smalltalk Express)
●
Smalltalk's Actuales
No Comerciales
Squeak (http://www.squeak.org)
● Pharo (http://www.pharo-project.org)
● Cuis (http://www.cuis-smalltalk.org)
● GNU/ST (http://smalltalk.gnu.org)
● Smalltalk/X (http://www.exept.de/en/products/smalltalkx)
● Amber (http://www.amber-lang.net)
● S8 (http://u8.smalltalking.net)
● Redline Smalltalk (http://www.redline.st)
● Iron Smalltalk (http://ironsmalltalk.codeplex.com)
●
Smalltalk's Actuales
Frameworks y Herramientas
Seaside (http://www.seaside.st)
● Aida Web (http://www.aidaweb.si)
● Iliad (http://www.iliadproject.org)
● Magma (http://wiki.squeak.org/squeak/2665)
● Swazoo (http://www.swazoo.org)
● Moose (http://www.moosetechnology.org)
● Hapa'o (http://objectprofile.com/#/pages/products/hapao/overview.html)
● seaBreeze (http://seabreeze.heeg.de)
● Roassal (http://objectprofile.com/#/pages/products/roassal/overview.html)
● Zinc (http://zn.stfx.eu/zn/index.html)
● Pier (http://www.piercms.com)
● Magritte (http://code.google.com/p/magritte-metamodel/)
● DBXTalk (http://dbxtalk.smallworks.com.ar)
●
Repositorios de Código
●

SqueakMap (http://map.squeak.org)

●

SqueakSource (http://www.squeaksource.org)

●

SqueakSource 3 (http://ss3.gemstone.com)

●

SmalltalkHub (http://www.smalltalkhub.org)

●

GitHub (http://www.github.com)
Asociaciones
●

ESUG (http://www.esug.org)

●

STIC (http://www.stic.st)

●

FAST (http://www.fast.org.ar)
Smalltalks2013 en UTN Rosario
http://www.fast.org.ar/smalltalks2013
Foros y Listas de Correo
●

Cada Smalltalk o Framework mencionado (Ver
http://forum.world.st)

●

ClubSmalltalk (clubsmalltalk@googlegroups.com)

●

Smalltalking (smalltalking@gruposyahoo.com.ar)

●

SqueakRos (squeakRos@gruposyahoo.com.ar)
Bibliografía y Recursos
●

Recopilación Libros Smalltalk (
http://stephane.ducasse.free.fr/FreeBooks.html)

●

Libros y Documentación por producto

●

Tutoriales

●

Listas de Correo

●

Wiki Squeak (http://wiki.squeak.org/squeak)

●

Presentaciones y Videos de las Conferencias
Lecturas Recomendadas
●

●

¿Por qué objetos ?
http://www.smalltalking.net/Papers/why/PorqueObjetos.htm
Principios de Diseño de Smalltalk
http://www.smalltalking.net/Papers/stDesign/stDesign.htm
Introducción a Smalltalk y Ambientes de Objetos

¿ Preguntas ?
Introducción a Smalltalk y Ambientes de Objetos

¡ Muchas Gracias !
Publicidad

Más contenido relacionado

Similar a Smalltalk intro I (20)

Programacion orientada a objetos
Programacion orientada a objetosProgramacion orientada a objetos
Programacion orientada a objetos
betshycastillo
 
Javascript: Particularidades del Lenguaje, DOM, Eventos y AJAX
Javascript: Particularidades del Lenguaje, DOM, Eventos y AJAXJavascript: Particularidades del Lenguaje, DOM, Eventos y AJAX
Javascript: Particularidades del Lenguaje, DOM, Eventos y AJAX
Irontec
 
Java12
Java12Java12
Java12
Luis Gala Nevew
 
Planificación en inteligencia artificial aplicada a la robótica
Planificación en inteligencia artificial aplicada a la robóticaPlanificación en inteligencia artificial aplicada a la robótica
Planificación en inteligencia artificial aplicada a la robótica
Grupo de Investigación SINTELWEB de la Universidad Nacional de Colombia Sede Medellín
 
Presentacion Instructoria Progra3 Utec
Presentacion Instructoria Progra3 UtecPresentacion Instructoria Progra3 Utec
Presentacion Instructoria Progra3 Utec
Balbino Aylagas Badely
 
Karla garcia java 2
Karla garcia java 2Karla garcia java 2
Karla garcia java 2
karlaga2017
 
Karla garcia java 2
Karla garcia java 2Karla garcia java 2
Karla garcia java 2
karlaga2017
 
Paradigmas de programación
Paradigmas de programaciónParadigmas de programación
Paradigmas de programación
María Luisa Velasco
 
1poo
1poo1poo
1poo
Fernanda Perez
 
S01.s1 - Lenguaje Java-1.pdf
S01.s1 - Lenguaje Java-1.pdfS01.s1 - Lenguaje Java-1.pdf
S01.s1 - Lenguaje Java-1.pdf
AnitaMoreyraSalas1
 
UDESA 2010 - Educación y Tecnología - Ciencias de la Educación - Taller 09
UDESA 2010 - Educación y Tecnología - Ciencias de la Educación - Taller 09UDESA 2010 - Educación y Tecnología - Ciencias de la Educación - Taller 09
UDESA 2010 - Educación y Tecnología - Ciencias de la Educación - Taller 09
Ramiro Nahuel Pol
 
Programación orientada a objetos
Programación orientada a objetosProgramación orientada a objetos
Programación orientada a objetos
alexmoncada21
 
Java Basico
Java BasicoJava Basico
Java Basico
Federico Díaz Aguirre
 
Karla garcia java 3
Karla garcia java 3Karla garcia java 3
Karla garcia java 3
karlaga2017
 
Lenguajes de programacion.
Lenguajes de programacion.Lenguajes de programacion.
Lenguajes de programacion.
Edgaar P. Anthony
 
Clase 2 - Introducción a la programación con Python I.pptx
Clase 2 - Introducción a la programación con Python I.pptxClase 2 - Introducción a la programación con Python I.pptx
Clase 2 - Introducción a la programación con Python I.pptx
jgs07
 
Curso node.js
Curso node.js Curso node.js
Curso node.js
Redradix
 
Tema2
Tema2Tema2
Tema2
Pedro Sánchez
 
Arquitectura aplicaciones Patrones de diseño
Arquitectura aplicaciones Patrones de diseñoArquitectura aplicaciones Patrones de diseño
Arquitectura aplicaciones Patrones de diseño
Germania Rodriguez
 
Lenguaje de programación java. Detalles
Lenguaje de programación java. DetallesLenguaje de programación java. Detalles
Lenguaje de programación java. Detalles
Cursando Desarrollo Web
 
Programacion orientada a objetos
Programacion orientada a objetosProgramacion orientada a objetos
Programacion orientada a objetos
betshycastillo
 
Javascript: Particularidades del Lenguaje, DOM, Eventos y AJAX
Javascript: Particularidades del Lenguaje, DOM, Eventos y AJAXJavascript: Particularidades del Lenguaje, DOM, Eventos y AJAX
Javascript: Particularidades del Lenguaje, DOM, Eventos y AJAX
Irontec
 
Presentacion Instructoria Progra3 Utec
Presentacion Instructoria Progra3 UtecPresentacion Instructoria Progra3 Utec
Presentacion Instructoria Progra3 Utec
Balbino Aylagas Badely
 
Karla garcia java 2
Karla garcia java 2Karla garcia java 2
Karla garcia java 2
karlaga2017
 
Karla garcia java 2
Karla garcia java 2Karla garcia java 2
Karla garcia java 2
karlaga2017
 
UDESA 2010 - Educación y Tecnología - Ciencias de la Educación - Taller 09
UDESA 2010 - Educación y Tecnología - Ciencias de la Educación - Taller 09UDESA 2010 - Educación y Tecnología - Ciencias de la Educación - Taller 09
UDESA 2010 - Educación y Tecnología - Ciencias de la Educación - Taller 09
Ramiro Nahuel Pol
 
Programación orientada a objetos
Programación orientada a objetosProgramación orientada a objetos
Programación orientada a objetos
alexmoncada21
 
Karla garcia java 3
Karla garcia java 3Karla garcia java 3
Karla garcia java 3
karlaga2017
 
Clase 2 - Introducción a la programación con Python I.pptx
Clase 2 - Introducción a la programación con Python I.pptxClase 2 - Introducción a la programación con Python I.pptx
Clase 2 - Introducción a la programación con Python I.pptx
jgs07
 
Curso node.js
Curso node.js Curso node.js
Curso node.js
Redradix
 
Arquitectura aplicaciones Patrones de diseño
Arquitectura aplicaciones Patrones de diseñoArquitectura aplicaciones Patrones de diseño
Arquitectura aplicaciones Patrones de diseño
Germania Rodriguez
 
Lenguaje de programación java. Detalles
Lenguaje de programación java. DetallesLenguaje de programación java. Detalles
Lenguaje de programación java. Detalles
Cursando Desarrollo Web
 

Último (20)

SISTEMAS OPERATIVOS, LA MAGIA DE LA TECNOLOGIA
SISTEMAS OPERATIVOS, LA MAGIA DE LA TECNOLOGIASISTEMAS OPERATIVOS, LA MAGIA DE LA TECNOLOGIA
SISTEMAS OPERATIVOS, LA MAGIA DE LA TECNOLOGIA
IVAN CAMPUZANO
 
Plataforma Virtual E-Learning MOODLE.pdf
Plataforma Virtual E-Learning MOODLE.pdfPlataforma Virtual E-Learning MOODLE.pdf
Plataforma Virtual E-Learning MOODLE.pdf
GINGER YULISA ZAMBRANO NOBOA
 
Presentación Proyecto de las Primeras Civilizaciones Mesopotamia – Egipto – ...
Presentación Proyecto de las Primeras Civilizaciones  Mesopotamia – Egipto – ...Presentación Proyecto de las Primeras Civilizaciones  Mesopotamia – Egipto – ...
Presentación Proyecto de las Primeras Civilizaciones Mesopotamia – Egipto – ...
DiosymarSuarez
 
Análisis de pagina web. Caso: D&D Inn Tibana Caracas, Catalonia Hotels & Res...
Análisis de pagina web.  Caso: D&D Inn Tibana Caracas, Catalonia Hotels & Res...Análisis de pagina web.  Caso: D&D Inn Tibana Caracas, Catalonia Hotels & Res...
Análisis de pagina web. Caso: D&D Inn Tibana Caracas, Catalonia Hotels & Res...
alondramedina2025
 
EDICIÓN DE VIDEO. CLASE DE TICS II. UNIREU
EDICIÓN DE VIDEO. CLASE DE TICS II. UNIREUEDICIÓN DE VIDEO. CLASE DE TICS II. UNIREU
EDICIÓN DE VIDEO. CLASE DE TICS II. UNIREU
AndrsCastro58
 
ciberseguridad habilidades Digitales.pdf
ciberseguridad habilidades Digitales.pdfciberseguridad habilidades Digitales.pdf
ciberseguridad habilidades Digitales.pdf
dayanacampos31
 
Cavada PROCESO DE INTEGRACIÓN DE LA COLONIA FLAMENCA 01.pdf
Cavada  PROCESO DE INTEGRACIÓN DE LA COLONIA FLAMENCA 01.pdfCavada  PROCESO DE INTEGRACIÓN DE LA COLONIA FLAMENCA 01.pdf
Cavada PROCESO DE INTEGRACIÓN DE LA COLONIA FLAMENCA 01.pdf
brueghel
 
Diseño de una red de comunicaciones en una vivienda.pptx
Diseño de una red de comunicaciones en una vivienda.pptxDiseño de una red de comunicaciones en una vivienda.pptx
Diseño de una red de comunicaciones en una vivienda.pptx
dvdgrcbd
 
Cavada PROCESO DE INTEGRACIÓN DE LA COLONIA FLAMENCA 02.pdf
Cavada  PROCESO DE INTEGRACIÓN DE LA COLONIA FLAMENCA 02.pdfCavada  PROCESO DE INTEGRACIÓN DE LA COLONIA FLAMENCA 02.pdf
Cavada PROCESO DE INTEGRACIÓN DE LA COLONIA FLAMENCA 02.pdf
brueghel
 
presentacion-baterias-y-acumuladores-redox.pptx
presentacion-baterias-y-acumuladores-redox.pptxpresentacion-baterias-y-acumuladores-redox.pptx
presentacion-baterias-y-acumuladores-redox.pptx
CharlesBergeyre1
 
Presentación de Héctor Orruño para Xeno Visual Studies II
Presentación de Héctor Orruño para Xeno Visual Studies IIPresentación de Héctor Orruño para Xeno Visual Studies II
Presentación de Héctor Orruño para Xeno Visual Studies II
hectororruno
 
presentacion-baterias-y-acumuladores-redox.pptx
presentacion-baterias-y-acumuladores-redox.pptxpresentacion-baterias-y-acumuladores-redox.pptx
presentacion-baterias-y-acumuladores-redox.pptx
CharlesBergeyre1
 
MÓDULO I. (conceptos generales de higiene ocupacional)
MÓDULO I. (conceptos generales de higiene ocupacional)MÓDULO I. (conceptos generales de higiene ocupacional)
MÓDULO I. (conceptos generales de higiene ocupacional)
AimeeCoronel2
 
taller 5 ciberseguridad habilidades digitales
taller 5 ciberseguridad habilidades digitalestaller 5 ciberseguridad habilidades digitales
taller 5 ciberseguridad habilidades digitales
juancardenaslosada
 
Habilidades digitales Taller Ciberseguridad
Habilidades digitales Taller CiberseguridadHabilidades digitales Taller Ciberseguridad
Habilidades digitales Taller Ciberseguridad
juandavidmahechafier
 
Windows 11 25H2 PPTX file: PDF y PPTX.pptx
Windows 11 25H2 PPTX file: PDF y PPTX.pptxWindows 11 25H2 PPTX file: PDF y PPTX.pptx
Windows 11 25H2 PPTX file: PDF y PPTX.pptx
carloscubillos36
 
Redes industriales yde instrumentacion.pptx
Redes industriales yde instrumentacion.pptxRedes industriales yde instrumentacion.pptx
Redes industriales yde instrumentacion.pptx
TeresitaXalapa
 
Windows 12: El futuro PPTX and PDF file.pptx
Windows 12: El futuro PPTX and PDF file.pptxWindows 12: El futuro PPTX and PDF file.pptx
Windows 12: El futuro PPTX and PDF file.pptx
carloscubillos36
 
listado lideres funcionales para la formacion del coimite de riesgos.pptx
listado lideres funcionales para la formacion del coimite de riesgos.pptxlistado lideres funcionales para la formacion del coimite de riesgos.pptx
listado lideres funcionales para la formacion del coimite de riesgos.pptx
hirsoporteti
 
Recurso educativo digital videos educativos
Recurso educativo digital  videos educativosRecurso educativo digital  videos educativos
Recurso educativo digital videos educativos
KARLAKARINABALDARRAG
 
SISTEMAS OPERATIVOS, LA MAGIA DE LA TECNOLOGIA
SISTEMAS OPERATIVOS, LA MAGIA DE LA TECNOLOGIASISTEMAS OPERATIVOS, LA MAGIA DE LA TECNOLOGIA
SISTEMAS OPERATIVOS, LA MAGIA DE LA TECNOLOGIA
IVAN CAMPUZANO
 
Presentación Proyecto de las Primeras Civilizaciones Mesopotamia – Egipto – ...
Presentación Proyecto de las Primeras Civilizaciones  Mesopotamia – Egipto – ...Presentación Proyecto de las Primeras Civilizaciones  Mesopotamia – Egipto – ...
Presentación Proyecto de las Primeras Civilizaciones Mesopotamia – Egipto – ...
DiosymarSuarez
 
Análisis de pagina web. Caso: D&D Inn Tibana Caracas, Catalonia Hotels & Res...
Análisis de pagina web.  Caso: D&D Inn Tibana Caracas, Catalonia Hotels & Res...Análisis de pagina web.  Caso: D&D Inn Tibana Caracas, Catalonia Hotels & Res...
Análisis de pagina web. Caso: D&D Inn Tibana Caracas, Catalonia Hotels & Res...
alondramedina2025
 
EDICIÓN DE VIDEO. CLASE DE TICS II. UNIREU
EDICIÓN DE VIDEO. CLASE DE TICS II. UNIREUEDICIÓN DE VIDEO. CLASE DE TICS II. UNIREU
EDICIÓN DE VIDEO. CLASE DE TICS II. UNIREU
AndrsCastro58
 
ciberseguridad habilidades Digitales.pdf
ciberseguridad habilidades Digitales.pdfciberseguridad habilidades Digitales.pdf
ciberseguridad habilidades Digitales.pdf
dayanacampos31
 
Cavada PROCESO DE INTEGRACIÓN DE LA COLONIA FLAMENCA 01.pdf
Cavada  PROCESO DE INTEGRACIÓN DE LA COLONIA FLAMENCA 01.pdfCavada  PROCESO DE INTEGRACIÓN DE LA COLONIA FLAMENCA 01.pdf
Cavada PROCESO DE INTEGRACIÓN DE LA COLONIA FLAMENCA 01.pdf
brueghel
 
Diseño de una red de comunicaciones en una vivienda.pptx
Diseño de una red de comunicaciones en una vivienda.pptxDiseño de una red de comunicaciones en una vivienda.pptx
Diseño de una red de comunicaciones en una vivienda.pptx
dvdgrcbd
 
Cavada PROCESO DE INTEGRACIÓN DE LA COLONIA FLAMENCA 02.pdf
Cavada  PROCESO DE INTEGRACIÓN DE LA COLONIA FLAMENCA 02.pdfCavada  PROCESO DE INTEGRACIÓN DE LA COLONIA FLAMENCA 02.pdf
Cavada PROCESO DE INTEGRACIÓN DE LA COLONIA FLAMENCA 02.pdf
brueghel
 
presentacion-baterias-y-acumuladores-redox.pptx
presentacion-baterias-y-acumuladores-redox.pptxpresentacion-baterias-y-acumuladores-redox.pptx
presentacion-baterias-y-acumuladores-redox.pptx
CharlesBergeyre1
 
Presentación de Héctor Orruño para Xeno Visual Studies II
Presentación de Héctor Orruño para Xeno Visual Studies IIPresentación de Héctor Orruño para Xeno Visual Studies II
Presentación de Héctor Orruño para Xeno Visual Studies II
hectororruno
 
presentacion-baterias-y-acumuladores-redox.pptx
presentacion-baterias-y-acumuladores-redox.pptxpresentacion-baterias-y-acumuladores-redox.pptx
presentacion-baterias-y-acumuladores-redox.pptx
CharlesBergeyre1
 
MÓDULO I. (conceptos generales de higiene ocupacional)
MÓDULO I. (conceptos generales de higiene ocupacional)MÓDULO I. (conceptos generales de higiene ocupacional)
MÓDULO I. (conceptos generales de higiene ocupacional)
AimeeCoronel2
 
taller 5 ciberseguridad habilidades digitales
taller 5 ciberseguridad habilidades digitalestaller 5 ciberseguridad habilidades digitales
taller 5 ciberseguridad habilidades digitales
juancardenaslosada
 
Habilidades digitales Taller Ciberseguridad
Habilidades digitales Taller CiberseguridadHabilidades digitales Taller Ciberseguridad
Habilidades digitales Taller Ciberseguridad
juandavidmahechafier
 
Windows 11 25H2 PPTX file: PDF y PPTX.pptx
Windows 11 25H2 PPTX file: PDF y PPTX.pptxWindows 11 25H2 PPTX file: PDF y PPTX.pptx
Windows 11 25H2 PPTX file: PDF y PPTX.pptx
carloscubillos36
 
Redes industriales yde instrumentacion.pptx
Redes industriales yde instrumentacion.pptxRedes industriales yde instrumentacion.pptx
Redes industriales yde instrumentacion.pptx
TeresitaXalapa
 
Windows 12: El futuro PPTX and PDF file.pptx
Windows 12: El futuro PPTX and PDF file.pptxWindows 12: El futuro PPTX and PDF file.pptx
Windows 12: El futuro PPTX and PDF file.pptx
carloscubillos36
 
listado lideres funcionales para la formacion del coimite de riesgos.pptx
listado lideres funcionales para la formacion del coimite de riesgos.pptxlistado lideres funcionales para la formacion del coimite de riesgos.pptx
listado lideres funcionales para la formacion del coimite de riesgos.pptx
hirsoporteti
 
Recurso educativo digital videos educativos
Recurso educativo digital  videos educativosRecurso educativo digital  videos educativos
Recurso educativo digital videos educativos
KARLAKARINABALDARRAG
 
Publicidad

Smalltalk intro I

  • 1. Introducción a Smalltalk y Ambientes de Objetos ICES – Sunchales - Noviembre 2013
  • 2. Introducción a Smalltalk y Ambientes de Objetos ¿Quién Soy? ● Germán S. Arduino ● Desarrollador de Software e Investigador ● Fundador de Arduino Software (http://www.arduinosoftware.com) ● Creador de PasswordsPro (http://www.passwordspro.com) ● Jefe de Investigación y Desarrollo Grupo Sancor Seguros ● About.me/garduino
  • 3. Orígenes de Smalltalk El Lugar: (Xerox Parc en Palo Alto, CA, USA) GUI (iconos, ventanas, mouse) Editor de Textos WYSIWYG InterPress (precursor de PostScript) Red de Area Loca Ethernet Tecnología de Objetos, Smalltalk, IDE
  • 4. Orígenes de Smalltalk Las personas: Dan Ingalls Alan Kay
  • 5. Orígenes de Smalltalk Las personas: Adele Goldberg Ted Kaehler
  • 6. ¿Qué es Smalltalk? Es un ambiente de objetos computacionales que se comunican a interactúan mediante el envío de mensajes (Estos mensajes también son objetos)
  • 7. ¿Qué es Smalltalk? Es un ambiente de objetos computacionales que se comunican a interactúan mediante el envío de mensajes (Estos mensajes también son objetos) El ambiente Smalltalk tiene un lenguaje de programación que también se conoce como “Smalltalk”
  • 8. Características de Smalltalk ● Un programa Smalltalk consiste únicamente de objetos.
  • 9. Características de Smalltalk ● Un programa Smalltalk consiste únicamente de objetos. ● Los objetos Smalltalk presentan características comunes:
  • 10. Características de Smalltalk ● ● Un programa Smalltalk consiste únicamente de objetos. Los objetos Smalltalk presentan características comunes: ➢ Tienen una memoria propia.
  • 11. Características de Smalltalk ● ● Un programa Smalltalk consiste únicamente de objetos. Los objetos Smalltalk presentan características comunes: ➢ Tienen una memoria propia. ➢ Poseen capacidad para comunicarse con otros objetos.
  • 12. Características de Smalltalk ● ● Un programa Smalltalk consiste únicamente de objetos. Los objetos Smalltalk presentan características comunes: ➢ Tienen una memoria propia. ➢ Poseen capacidad para comunicarse con otros objetos. ➢ Poseen la capacidad de heredar características de objetos ancestros.
  • 13. Características de Smalltalk ● ● Un programa Smalltalk consiste únicamente de objetos. Los objetos Smalltalk presentan características comunes: ➢ Tienen una memoria propia. ➢ Poseen capacidad para comunicarse con otros objetos. ➢ Poseen la capacidad de heredar características de objetos ancestros. ➢ Tienen capacidad de procesamiento.
  • 14. Características de Smalltalk ● ● Un programa Smalltalk consiste únicamente de objetos. Los objetos Smalltalk presentan características comunes: ➢ Tienen una memoria propia. ➢ Poseen capacidad para comunicarse con otros objetos. ➢ Poseen la capacidad de heredar características de objetos ancestros. ➢ Tienen capacidad de procesamiento. ➢ Se comunican entre si por envío de mensajes.
  • 17. Paradigma Tradicional (“¿Orientado a Objetos? ”) Programas Datos
  • 18. Paradigma Tradicional (“¿Orientado a Objetos? ”) Programas Datos ¿Y el encapsulamiento ?
  • 19. Tecnología de Objetos (No nos conformamos con que sólo sea “orientado” a objetos) Foto tomada de: http://solorobotica.blogspot.com.ar/2012/04/s4a-scratch-para-arduino.html
  • 20. Características de Smalltalk ● Un mismo objeto puede proveer muchas operaciones.
  • 21. Características de Smalltalk ● ● Un mismo objeto puede proveer muchas operaciones. La definición de cada una de estas operaciones se llama método (Un método especifica la reacción de un objeto cuando recibe un mensaje que es dirigido a ese método).
  • 22. Características de Smalltalk ● ● ● Un mismo objeto puede proveer muchas operaciones. La definición de cada una de estas operaciones se llama método (Un método especifica la reacción de un objeto cuando recibe un mensaje que es dirigido a ese método). La colección de métodos de un objeto se llama protocolo de mensajes o interfaz de mensajes.
  • 23. Características de Smalltalk ● ● ● ● Un mismo objeto puede proveer muchas operaciones. La definición de cada una de estas operaciones se llama método (Un método especifica la reacción de un objeto cuando recibe un mensaje que es dirigido a ese método). La colección de métodos de un objeto se llama protocolo de mensajes o interfaz de mensajes. Los mensajes pueden ser parametrizados y los parámetros también son objetos, así como también la respuesta o resultado del método será un objeto.
  • 24. Características de Smalltalk ● Las características comunes de un objeto se tipifican bajo una clase de tal forma que los objetos agrupados bajo una clase se conocen como instancias de ella.
  • 25. Características de Smalltalk ● ● Las características comunes de un objeto se tipifican bajo una clase de tal forma que los objetos agrupados bajo una clase se conocen como instancias de ella. Las instancias de una clase se limpian automáticamente cuando ya no se necesitan, por el recolector de basura (garbage collector).
  • 26. Características de Smalltalk ● ● ● Las características comunes de un objeto se tipifican bajo una clase de tal forma que los objetos agrupados bajo una clase se conocen como instancias de ella. Las instancias de una clase se limpian automáticamente cuando ya no se necesitan, por el recolector de basura (garbage collector). Cada objeto tiene su propio estado local y representa una instancia diferente de su clase.
  • 28. Características de Smalltalk Ambiente de Objetos Puros. ● Tipado Dinámico. ●
  • 29. Características de Smalltalk Ambiente de Objetos Puros. ● Tipado Dinámico. ● Interacción entre objetos mediante envío de mensajes. ●
  • 30. Características de Smalltalk Ambiente de Objetos Puros. ● Tipado Dinámico. ● Interacción entre objetos mediante envío de mensajes. ● Herencia. ●
  • 31. Características de Smalltalk Ambiente de Objetos Puros. ● Tipado Dinámico. ● Interacción entre objetos mediante envío de mensajes. ● Herencia. ● Reflexión Computacional. ●
  • 32. Características de Smalltalk Ambiente de Objetos Puros. ● Tipado Dinámico. ● Interacción entre objetos mediante envío de mensajes. ● Herencia. ● Reflexión Computacional. ● Recolección de Basura. ●
  • 33. Características de Smalltalk Ambiente de Objetos Puros. ● Tipado Dinámico. ● Interacción entre objetos mediante envío de mensajes. ● Herencia. ● Reflexión Computacional. ● Recolección de Basura. ● Compilación en Tiempo de Ejecución (o interpretado, dependiendo de la distribución). ●
  • 34. Características de Smalltalk Ambiente de Objetos Puros. ● Tipado Dinámico. ● Interacción entre objetos mediante envío de mensajes. ● Herencia. ● Reflexión Computacional. ● Recolección de Basura. ● Compilación en Tiempo de Ejecución (o interpretado, dependiendo de la distribución). ● Múltiples Implementaciones. ●
  • 35. Características de Smalltalk Ambiente de Objetos Puros. ● Tipado Dinámico. ● Interacción entre objetos mediante envío de mensajes. ● Herencia. ● Reflexión Computacional. ● Recolección de Basura. ● Compilación en Tiempo de Ejecución (o interpretado, dependiendo de la distribución). ● Múltiples Implementaciones. ● Influencia en otros lenguajes (Java, Ruby, Dart). ●
  • 36. Características de Smalltalk Ambiente de Objetos Puros. ● Tipado Dinámico. ● Interacción entre objetos mediante envío de mensajes. ● Herencia. ● Reflexión Computacional. ● Recolección de Basura. ● Compilación en Tiempo de Ejecución (o interpretado, dependiendo de la distribución). ● Múltiples Implementaciones. ● Influencia en otros lenguajes (Java, Ruby, Dart). ● Influencia en las metodologías ágiles (refactorización, desarrollo incremental, tdd, etc). ●
  • 37. Características de Smalltalk Ambiente de Objetos Puros. ● Tipado Dinámico. ● Interacción entre objetos mediante envío de mensajes. ● Herencia. ● Reflexión Computacional. ● Recolección de Basura. ● Compilación en Tiempo de Ejecución (o interpretado, dependiendo de la distribución). ● Múltiples Implementaciones. ● Influencia en otros lenguajes (Java, Ruby, Dart). ● Influencia en las metodologías ágiles (refactorización, desarrollo incremental, tdd, etc). ● Metaprogramación. ●
  • 38. Otra forma de trabajar ● Desarrollo Incremental ● Reparación en vivo
  • 39. Arquitectura de Smalltalk ● Máquina Virtual (específica para cada Sistema Operativo)
  • 40. Arquitectura de Smalltalk ● ● Máquina Virtual (específica para cada Sistema Operativo) Archivo .sources (contiene los fuentes del ambiente que no cambian muy frecuentemente)
  • 41. Arquitectura de Smalltalk ● ● ● Máquina Virtual (específica para cada Sistema Operativo) Archivo .sources (contiene los fuentes del ambiente que no cambian muy frecuentemente) Archivo .changes (contiene los cambios que vamos haciendo sobre los objetos a medida que trabajamos)
  • 42. Arquitectura de Smalltalk ● ● ● ● Máquina Virtual (específica para cada Sistema Operativo) Archivo .sources (contiene los fuentes del ambiente que no cambian muy frecuentemente) Archivo .changes (contiene los cambios que vamos haciendo sobre los objetos, a nivel código fuente, a medida que trabajamos) Archivo .image (contiene el estado de todos los objetos en el sistema, incluidos clases y métodos)
  • 43. Arquitectura de Smalltalk ● ● ● ● Máquina Virtual (específica para cada Sistema Operativo) Archivo .sources (contiene los fuentes del ambiente que no cambian muy frecuentemente) Archivo .changes (contiene los cambios que vamos haciendo sobre los objetos, a nivel código fuente, a medida que trabajamos) Archivo .image (contiene el estado de todos los objetos en el sistema, incluidos clases y métodos) Image + changes = Una foto del sistema corriendo, congelado en el tiempo
  • 44. Smalltalk's Actuales Comerciales Cincom Visual Works (http://www.cincomsmalltalk.com/main/products/visualworks/) ● Cincom ObjectStudio (http://www.cincomsmalltalk.com/main/products/objectstudio/) ● VA Smalltalk (http://www.instantiations.com/products/vasmalltalk/index.html) ● GemStone/S (http://gemtalksystems.com/index.php/products/gemstones/) ● Dolphin Smalltalk (http://www.object-arts.com) ● Smalltalk MT (http://www.objectconnect.com) ● Visual Smalltalk ● Smalltalk/V (Smalltalk Express) ●
  • 45. Smalltalk's Actuales No Comerciales Squeak (http://www.squeak.org) ● Pharo (http://www.pharo-project.org) ● Cuis (http://www.cuis-smalltalk.org) ● GNU/ST (http://smalltalk.gnu.org) ● Smalltalk/X (http://www.exept.de/en/products/smalltalkx) ● Amber (http://www.amber-lang.net) ● S8 (http://u8.smalltalking.net) ● Redline Smalltalk (http://www.redline.st) ● Iron Smalltalk (http://ironsmalltalk.codeplex.com) ●
  • 46. Smalltalk's Actuales Frameworks y Herramientas Seaside (http://www.seaside.st) ● Aida Web (http://www.aidaweb.si) ● Iliad (http://www.iliadproject.org) ● Magma (http://wiki.squeak.org/squeak/2665) ● Swazoo (http://www.swazoo.org) ● Moose (http://www.moosetechnology.org) ● Hapa'o (http://objectprofile.com/#/pages/products/hapao/overview.html) ● seaBreeze (http://seabreeze.heeg.de) ● Roassal (http://objectprofile.com/#/pages/products/roassal/overview.html) ● Zinc (http://zn.stfx.eu/zn/index.html) ● Pier (http://www.piercms.com) ● Magritte (http://code.google.com/p/magritte-metamodel/) ● DBXTalk (http://dbxtalk.smallworks.com.ar) ●
  • 47. Repositorios de Código ● SqueakMap (http://map.squeak.org) ● SqueakSource (http://www.squeaksource.org) ● SqueakSource 3 (http://ss3.gemstone.com) ● SmalltalkHub (http://www.smalltalkhub.org) ● GitHub (http://www.github.com)
  • 48. Asociaciones ● ESUG (http://www.esug.org) ● STIC (http://www.stic.st) ● FAST (http://www.fast.org.ar) Smalltalks2013 en UTN Rosario http://www.fast.org.ar/smalltalks2013
  • 49. Foros y Listas de Correo ● Cada Smalltalk o Framework mencionado (Ver http://forum.world.st) ● ClubSmalltalk ([email protected]) ● Smalltalking ([email protected]) ● SqueakRos ([email protected])
  • 50. Bibliografía y Recursos ● Recopilación Libros Smalltalk ( http://stephane.ducasse.free.fr/FreeBooks.html) ● Libros y Documentación por producto ● Tutoriales ● Listas de Correo ● Wiki Squeak (http://wiki.squeak.org/squeak) ● Presentaciones y Videos de las Conferencias
  • 51. Lecturas Recomendadas ● ● ¿Por qué objetos ? http://www.smalltalking.net/Papers/why/PorqueObjetos.htm Principios de Diseño de Smalltalk http://www.smalltalking.net/Papers/stDesign/stDesign.htm
  • 52. Introducción a Smalltalk y Ambientes de Objetos ¿ Preguntas ?
  • 53. Introducción a Smalltalk y Ambientes de Objetos ¡ Muchas Gracias !