smalltalk intro i

Post on 29-Nov-2014

889 Views

Category:

Technology

3 Downloads

Preview:

Click to see full reader

DESCRIPTION

Introducción a Smalltalk y Tecnología de Objetos.

TRANSCRIPT

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 WYSIWYGInterPress (precursor de PostScript)Red de Area Loca EthernetTecnología de Objetos, Smalltalk, IDE

Orígenes de Smalltalk

Las personas:

Alan Kay

Dan Ingalls

Orígenes de Smalltalk

Las personas:

Adele GoldbergTed 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 Rosariohttp://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 Smalltalkhttp://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 !

top related