libro smalltalk

Download Libro Smalltalk

Post on 24-Jul-2015

180 views

Category:

Documents

3 download

Embed Size (px)

TRANSCRIPT

Sin embargo, este libro no pretende ser un manual bsico y de aprendizaje de Smalltalk, para eso ya existen manuales de calidad en el mercado a los que hacemos referencia en esta misma obra. El objetivo del autor al escribir este manual ha sido el de mostrar la losofa inherente a Smalltalk, la manera en que sta impacta en la creacin de software y, a su vez, cmo esta forma de trabajar genera software de mayor calidad en menos tiempo que con otras herramientas. Desarrollaremos paso a paso algunas aplicaciones de ejemplo para mostrar cmo se trabaja en un ambiente de objetos e iremos introduciendo conceptos y descripciones conforme lo vayamos necesitando.ISBN 84934371-3-1

Programando con

Smalltalk

El ambiente de Smalltalk est compuesto por un extenso grupo de objetos. En Smalltalk TODO es un objeto y TODO es modicable. Y es esta versatilidad la que le permite mejorar dos aspectos claves en el objetivo del desarrollo del software: el aumento de la productividad y generar software de calidad. Con Smalltalk esto es posible y convierte la programacin en un proceso mucho ms interactivo que el clsico ciclo edicin/compilacin/ejecucin.

Bienvenidos al mundo fascinante de Smalltalk!9

Programando con

por Diego Gmez Deck

R

esulta muy complicado explicar qu es Smalltalk en toda su dimensin. Smalltalk es considerado el primer lenguaje de programacin orientado a objetos. Sin embargo, es mucho ms que un mero lenguaje, Smalltalk es un ambiente completo de desarrollo con varios miles de clases y mtodos.

788493 437138

La ilustracin de la portada est basada en la obra The computer language Smalltalk que Robert Tinney realiz para la portada de la revista BYTE (agosto, 1981).

SmalltalkUn ambiente de objetos vivos

Avda. Portugal, 85-local 28011 Madrid Tlf.: 91 577 03 55/18 Fax.: 91 577 06 18

A todos aquellos que saben que la verdadera revolucin de la informacin no ocurrir hasta que seamos capaces de romper unas cuantas barreras

Disculpen mi falta de originalidad, pero tengo que agradecer especialmente a mi ncleo familiar por el soporte y comprensin que me han brindado. Mil gracias a mi compaera de viaje Raquel y a mis hijos Nicols y Nahuel; ellos son los que realmente han hecho sacricios para que este libro llegue a buen trmino.

Autor: DIEGO GMEZ DECK Responsable editorial: SORAYA MUOZ Responsable de Marketing y Comunicacin: LVARO GARCA Diseo y maquetacin: CARLOS MONTES ISBN: 978-84-934371-3-8 Depsito Legal: Edita: EDIT LIN EDITORIAL, S.L, 2006 Avda. Portugal, 85- local 28011 Madrid (Espaa) Tels.:91 577 03 55 Fax: 91 577 06 18 www.librosdelinux.com info@librosdelinux.com LICENCIA Se permite la copia y distribucin de la totalidad o parte de esta obra sin nimo de lucro. Toda copia total o parcial deber citar expresamente el nombre del autor, nombre de la editorial e incluir esta misma licencia, aadiendo, si es copia literal, la mencin copia literal. Se autoriza la modicacin y traduccin de la obra sin nimo de lucro siempre que se haga constar en la obra resultante de la modicacin el nombre de la obra originaria, el autor de la obra originaria y el nombre de la editorial. La obra resultante tambin ser libremente reproducida, distribuida, comunicada al pblico y transformada en trminos similares a los expresados en esta licencia. Impreso en Espaa (Printed in Spain)*Este libro ha sido realizado con Software Libre, concretamente con: Squeak, OpenOfce.org, Evolution, Mozilla, GIMP.

PRLOGO

S

7

ndiceIntroduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Enfoque . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 Metodologa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Alcance del libro. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Audiencia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Licencia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Sitio web . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Captulo 1. Qu es Smalltalk? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.1 Conceptos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Objetos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Mensajes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Interfaz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Encapsulacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Polimorfismo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Clases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Variables de Instancia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Mtodos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Herencia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Programar es simular . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.2 Historia del Smalltalk . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Aportes del Smalltalk . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.3 Qu es Squeak? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Captulo 2. Programando con Smalltalk. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. 1 La curva de aprendizaje . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2 Prepararse para un shock cultural . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Tirar cdigo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Trabajo incremental . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . No hay archivos fuentes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.3 El camino es largo, mejor no ir solo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.4 Sintaxis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Literales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Mensajes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

prologo

S

8

S

9

Precedencia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Cascading messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Los nombres de clases son, tambin, variables globales . . . . . . . . . . . . . . . . . . . . . . . . Bloques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Comentarios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Mtodo de Ejemplo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.5 Herramientas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.6 Librera de Clases y Frameworks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.7 Mquina Virtual . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Captulo 3. Manos a la Obra! . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.1 Modificando Objetos Vivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . El Mundo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Browser de Clases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Tipos de Browser de Clases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Categoras de Clase y Mtodos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Squeak y el Ratn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .