SlideShare uma empresa Scribd logo
1 de 53
Baixar para ler offline
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 !

Mais conteúdo relacionado

Semelhante a Smalltalk intro I

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 AJAXIrontec
 
Presentacion Instructoria Progra3 Utec
Presentacion Instructoria Progra3 UtecPresentacion Instructoria Progra3 Utec
Presentacion Instructoria Progra3 UtecBalbino Aylagas Badely
 
Karla garcia java 2
Karla garcia java 2Karla garcia java 2
Karla garcia java 2karlaga2017
 
Karla garcia java 2
Karla garcia java 2Karla garcia java 2
Karla garcia java 2karlaga2017
 
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 09Ramiro Nahuel Pol
 
Programación orientada a objetos
Programación orientada a objetosProgramación orientada a objetos
Programación orientada a objetosalexmoncada21
 
Karla garcia java 3
Karla garcia java 3Karla garcia java 3
Karla garcia java 3karlaga2017
 
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.pptxjgs07
 
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ñoGermania Rodriguez
 
Lenguaje de programación java. Detalles
Lenguaje de programación java. DetallesLenguaje de programación java. Detalles
Lenguaje de programación java. DetallesCursando Desarrollo Web
 

Semelhante a Smalltalk intro I (20)

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
 
Java12
Java12Java12
Java12
 
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
 
Presentacion Instructoria Progra3 Utec
Presentacion Instructoria Progra3 UtecPresentacion Instructoria Progra3 Utec
Presentacion Instructoria Progra3 Utec
 
Karla garcia java 2
Karla garcia java 2Karla garcia java 2
Karla garcia java 2
 
Karla garcia java 2
Karla garcia java 2Karla garcia java 2
Karla garcia java 2
 
Paradigmas de programación
Paradigmas de programaciónParadigmas de programación
Paradigmas de programación
 
1poo
1poo1poo
1poo
 
S01.s1 - Lenguaje Java-1.pdf
S01.s1 - Lenguaje Java-1.pdfS01.s1 - Lenguaje Java-1.pdf
S01.s1 - Lenguaje Java-1.pdf
 
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
 
Programación orientada a objetos
Programación orientada a objetosProgramación orientada a objetos
Programación orientada a objetos
 
Java Basico
Java BasicoJava Basico
Java Basico
 
Los objetos de software
Los objetos de softwareLos objetos de software
Los objetos de software
 
Karla garcia java 3
Karla garcia java 3Karla garcia java 3
Karla garcia java 3
 
Lenguajes de programacion.
Lenguajes de programacion.Lenguajes de programacion.
Lenguajes de programacion.
 
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
 
Curso node.js
Curso node.js Curso node.js
Curso node.js
 
Tema2
Tema2Tema2
Tema2
 
Arquitectura aplicaciones Patrones de diseño
Arquitectura aplicaciones Patrones de diseñoArquitectura aplicaciones Patrones de diseño
Arquitectura aplicaciones Patrones de diseño
 
Lenguaje de programación java. Detalles
Lenguaje de programación java. DetallesLenguaje de programación java. Detalles
Lenguaje de programación java. Detalles
 

Último

Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadMiguelAngelVillanuev48
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfSergioMendoza354770
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx241522327
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx241523733
 
Tecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptxTecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptxGESTECPERUSAC
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativaAdrianaMartnez618894
 
Hernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptxHernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptxJOSEMANUELHERNANDEZH11
 
Explorando la historia y funcionamiento de la memoria ram
Explorando la historia y funcionamiento de la memoria ramExplorando la historia y funcionamiento de la memoria ram
Explorando la historia y funcionamiento de la memoria ramDIDIERFERNANDOGUERRE
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.241514949
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptMiguelAtencio10
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxNombre Apellidos
 
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son241514984
 
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfLa Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfjeondanny1997
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxazmysanros90
 
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxEl_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxAlexander López
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELmaryfer27m
 
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptTEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptJavierHerrera662252
 
Excel (1) tecnologia.pdf trabajo Excel taller
Excel  (1) tecnologia.pdf trabajo Excel tallerExcel  (1) tecnologia.pdf trabajo Excel taller
Excel (1) tecnologia.pdf trabajo Excel tallerValentinaTabares11
 
Segunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxSegunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxMariaBurgos55
 
Arenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxArenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxJOSEFERNANDOARENASCA
 

Último (20)

Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidad
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx
 
Tecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptxTecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptx
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativa
 
Hernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptxHernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptx
 
Explorando la historia y funcionamiento de la memoria ram
Explorando la historia y funcionamiento de la memoria ramExplorando la historia y funcionamiento de la memoria ram
Explorando la historia y funcionamiento de la memoria ram
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.ppt
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
 
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son
 
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfLa Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptx
 
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxEl_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFEL
 
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptTEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
 
Excel (1) tecnologia.pdf trabajo Excel taller
Excel  (1) tecnologia.pdf trabajo Excel tallerExcel  (1) tecnologia.pdf trabajo Excel taller
Excel (1) tecnologia.pdf trabajo Excel taller
 
Segunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxSegunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptx
 
Arenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxArenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptx
 

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 (clubsmalltalk@googlegroups.com) ● Smalltalking (smalltalking@gruposyahoo.com.ar) ● SqueakRos (squeakRos@gruposyahoo.com.ar)
  • 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 !