Smalltalk intro I
Upcoming SlideShare
Loading in...5
×
 

Smalltalk intro I

on

  • 713 views

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

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

Statistics

Views

Total Views
713
Views on SlideShare
713
Embed Views
0

Actions

Likes
0
Downloads
9
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Smalltalk intro I Smalltalk intro I Presentation 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 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 !