0
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 Investiga...
Orígenes de Smalltalk
El Lugar: (Xerox Parc en Palo Alto, CA, USA)
GUI (iconos, ventanas, mouse)
Editor de Textos WYSIWYG
...
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
...
¿Qué es Smalltalk?
Es un ambiente de objetos computacionales que se
comunican a interactúan mediante el envío de mensajes
...
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 de Smalltalk
●

●

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

●

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

●

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

●

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

●

Un programa Smalltalk consiste únicamente de objetos.
Los objetos Smalltalk presentan c...
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.blo...
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 op...
Características de Smalltalk
●

●

●

Un mismo objeto puede proveer muchas operaciones.
La definición de cada una de estas...
Características de Smalltalk
●

●

●

●

Un mismo objeto puede proveer muchas operaciones.
La definición de cada una de es...
Características de Smalltalk
●

Las características comunes de un objeto se tipifican bajo
una clase de tal forma que los ...
Características de Smalltalk
●

●

Las características comunes de un objeto se tipifican bajo
una clase de tal forma que l...
Características de Smalltalk
●

●

●

Las características comunes de un objeto se tipifican bajo
una clase de tal forma qu...
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 m...
Características de Smalltalk
Ambiente de Objetos Puros.
● Tipado Dinámico.
● Interacción entre objetos mediante envío de m...
Características de Smalltalk
Ambiente de Objetos Puros.
● Tipado Dinámico.
● Interacción entre objetos mediante envío de m...
Características de Smalltalk
Ambiente de Objetos Puros.
● Tipado Dinámico.
● Interacción entre objetos mediante envío de m...
Características de Smalltalk
Ambiente de Objetos Puros.
● Tipado Dinámico.
● Interacción entre objetos mediante envío de m...
Características de Smalltalk
Ambiente de Objetos Puros.
● Tipado Dinámico.
● Interacción entre objetos mediante envío de m...
Características de Smalltalk
Ambiente de Objetos Puros.
● Tipado Dinámico.
● Interacción entre objetos mediante envío de m...
Características de Smalltalk
Ambiente de Objetos Puros.
● Tipado Dinámico.
● Interacción entre objetos mediante envío de m...
Características de Smalltalk
Ambiente de Objetos Puros.
● Tipado Dinámico.
● Interacción entre objetos mediante envío de m...
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 fu...
Arquitectura de Smalltalk
●

●

●

Máquina Virtual (específica para cada Sistema Operativo)
Archivo .sources (contiene los...
Arquitectura de Smalltalk
●

●

●

●

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

●

●

●

Máquina Virtual (específica para cada Sistema Operativo)
Archivo .sources (contiene ...
Smalltalk's Actuales
Comerciales
Cincom Visual Works (http://www.cincomsmalltalk.com/main/products/visualworks/)
● Cincom ...
Smalltalk's Actuales
No Comerciales
Squeak (http://www.squeak.org)
● Pharo (http://www.pharo-project.org)
● Cuis (http://w...
Smalltalk's Actuales
Frameworks y Herramientas
Seaside (http://www.seaside.st)
● Aida Web (http://www.aidaweb.si)
● Iliad ...
Repositorios de Código
●

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

●

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

●

SqueakSourc...
Asociaciones
●

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

●

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

●

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

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

●

ClubSmalltalk (clubsmall...
Bibliografía y Recursos
●

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

●

Libros y Do...
Lecturas Recomendadas
●

●

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

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

¡ Muchas Gracias !
Upcoming SlideShare
Loading in...5
×

Smalltalk intro I

808

Published on

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

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
808
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
22
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Transcript of "Smalltalk intro I"

  1. 1. Introducción a Smalltalk y Ambientes de Objetos ICES – Sunchales - Noviembre 2013
  2. 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. 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. 4. Orígenes de Smalltalk Las personas: Dan Ingalls Alan Kay
  5. 5. Orígenes de Smalltalk Las personas: Adele Goldberg Ted Kaehler
  6. 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. 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. 8. Características de Smalltalk ● Un programa Smalltalk consiste únicamente de objetos.
  9. 9. Características de Smalltalk ● Un programa Smalltalk consiste únicamente de objetos. ● Los objetos Smalltalk presentan características comunes:
  10. 10. Características de Smalltalk ● ● Un programa Smalltalk consiste únicamente de objetos. Los objetos Smalltalk presentan características comunes: ➢ Tienen una memoria propia.
  11. 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. 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. 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. 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.
  15. 15. Paradigma Tradicional Datos
  16. 16. Paradigma Tradicional Programas Datos
  17. 17. Paradigma Tradicional (“¿Orientado a Objetos? ”) Programas Datos
  18. 18. Paradigma Tradicional (“¿Orientado a Objetos? ”) Programas Datos ¿Y el encapsulamiento ?
  19. 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. 20. Características de Smalltalk ● Un mismo objeto puede proveer muchas operaciones.
  21. 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. 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. 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. 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. 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. 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.
  27. 27. Características de Smalltalk ● Ambiente de Objetos Puros.
  28. 28. Características de Smalltalk Ambiente de Objetos Puros. ● Tipado Dinámico. ●
  29. 29. Características de Smalltalk Ambiente de Objetos Puros. ● Tipado Dinámico. ● Interacción entre objetos mediante envío de mensajes. ●
  30. 30. Características de Smalltalk Ambiente de Objetos Puros. ● Tipado Dinámico. ● Interacción entre objetos mediante envío de mensajes. ● Herencia. ●
  31. 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. 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. 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. 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. 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. 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. 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. 38. Otra forma de trabajar ● Desarrollo Incremental ● Reparación en vivo
  39. 39. Arquitectura de Smalltalk ● Máquina Virtual (específica para cada Sistema Operativo)
  40. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 52. Introducción a Smalltalk y Ambientes de Objetos ¿ Preguntas ?
  53. 53. Introducción a Smalltalk y Ambientes de Objetos ¡ Muchas Gracias !
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×