La magia del Smalltalk: Capítulo 10 - ¡No me encuentro!
Los programadores de Smalltalk solemos decir que el ambiente (de Smalltalk) está «vivo» (gracias Dario). La tarea de desarrollo en un ambiente de Smalltalk es muy diferente a la programación en un IDE tradicional o en el vi/emacs.
Es muy, pero muy, raro encontrar «documentación» fuera del ambiente y la documentación que está dentro del ambiente no está en formato de archivos de ayuda, ni html, ni siquiera en texto.
La mejor documentación de un ambiente Smalltalk es el mismo ambiente funcionando.
El ambiente es el mejor ejemplo posible de uso de las clases y de los objetos ya que los casos de uso de los objetos son casos reales que están funcionando delante de nuestros ojos. La documentación en html, pdfs, archivos hlp, etc es demasiado estática y nadie nos garantiza que el ejemplo de uso de tal o cual función o clase sea correcto.
Quizás lo más importante para comenzar a programar en Smalltalk es aprender a usar el ambiente para buscar información.
Lo primero que tenemos que saber es que, en cualquier lugar donde veamos texto, podemos evaluar allí mismo código Smalltalk y acceder a las herramientas.
Una forma de explorar el ambiente es utilizando las herramientas de senders («remitente» o «quien envía el mensaje») e implementors («implementador» o «quien sabe responder al mensaje»).
Seleccionando un fragmento de texto que tenga el envío de un mensaje, podemos pedirle (vía el menú contextual) a nuestro Smalltalk que nos muestro métodos donde el mensaje en cuestión es enviado («senders») o implementaciones del mensaje («implementors»).
Supongamos que necesitamos saber como se usa el mensaje #findTokens:. Para eso escribimos el nombre del mensaje en cualquier panel de texto (por ejemplo en un Workspace) y pedimos la opción «senders» desde el menú contextual o presionando ALT-n.
Seguimos un procedimiento similar para ver las implementaciones del mensaje («implementors»), en este caso presionamos ALT-m.
Y para terminar, una joyita: El MethodFinder.
Esta herramienta puede responder preguntas del tipo: ¿Qué mensajes le puedo enviar a un objeto dado, con unos parámetros dados, para que la respuesta sea la dada?. ¡Qué complicado que quedó escrito!, mejor veamos un ejemplo. Escribimos en el panel de arriba a la izquierda lo siguiente: 'Smalltalk'. $S y aceptamos.
Escribiendo 'Smalltalk'. $S le estamos preguntando al MethodFinder que mensajes le podemos enviar al objeto 'Smalltalk' para que la respuesta sea el objeto $S.
Otro ejemplo sería escribir 'Smalltalk'. 1. $S, en este caso le estamos preguntando que mensaje le podemos enviar al objeto 'Smalltalk', con el parámetro 1, para que la respuesta sea el objeto $S.
Espero que con esto estén un poco menos perdidos.
¡Hasta la próxima!
2 Comentarios:
Hola. El ejemplo de la suma con el Method Finder también me pareció "inquietante". Especialmente porque también se reafirma que la suma no es una "operación", sino un "mensaje".
Buen post.
Hace tiempo que no nos vemos, pero que sepas que sigo tu trabajo y que la idea de aprender squeak aún me sigue corriendo por la mente. Gracias a tus posts he retomado el tema de smalltalk con squeak :) Poquito a poco ...
Un saludo desde Andalucía. Calextric.
Publicar un comentario
<< Principal