Sketchpad

Ivan Sutherland y Sketchpad Ahora que Apple va a popularizar otra forma revolucionaria de interactuar con los computadores con su multi-touch iphone, no está de más hacer una visita a la historia de la informática. ¿De dónde vienen los actuales interfaces de usuario?

Hubo un tiempo en el que los computadores no tenían ratón, ni existían interfaces gráficas con ventanas, paneles, botones, menús desplegables y cosas por el estilo. En la historia de las interfaces de usuario siempre se referencia al programa Sketchpad desarrollado por Ivan Sutherland como el primer paso en el desarrollo de todas estas ideas. Después vinieron Englegart con el ratón y el Smalltalk desarrollado en Xerox Park, que ya comentaremos en otro momento.

Vamos con Sketchpad. El programa fue desarrollado por Ivan Sutherland como tesis doctoral del Instituto de Tecnología de Massachusetts (MIT). La tesis fue presentada en enero de 1963, después de tres años desarrollando e implementando los conceptos que aparecen en el programa.

Podemos ver el sistema en funcionamiento en una charla de Alan Kay de 1987. Esa charla también es histórica y en ella podemos encontrar vídeos sobre los orígenes de las interfaces de usuario, la invención del ratón, Xerox Park , la Programación Orientada a Objetos y los conceptos del propio Kay que dieron origen a métodos totalmente novedosos de programar y comunicarnos con los computadores.

He extraído la parte en la que Kay habla de Sketchpad:

[kml_flashembed movie="http://www.youtube.com/v/mOZqRJzE8xg" width="425" height="350" wmode="transparent" /]

Es muy recomendable consultar la tesis original (disponible a través de una nueva edición que ha preparado el Computer Laboratory de la Universidad de Cambridge) y el artículo en el que Sutherland resume sus aportaciones:

[Tesis doctoral de Ivan Sutherland]
[Artículo publicado en los proceedings del AFIPS, 1963]

Sutherland utilizó un computador muy novedoso para la época, el TX-2, desarrollado en el Lincoln Laboratory también en el MIT. El TX-2 contaba con una pantalla gráfica (de rayos catódicos, similares a la de los osciloscopios), un lápiz óptico y una gran cantidad de interfaces físicos como botones, interruptores y mandos circulares.

[Wikipedia sobre TX-2]

En la introducción de la tesis se indican las limitaciones de los computadores e interfaces existentes y el objetivo principal del sistema propuesto:

The Sketchpad system makes it possible for a man and a computer to converse rapidly through the medium of line drawings. Heretofore, most interaction between men and computers has been slowed down by the need to reduce all communication to written statements that can be typed […] For many types of communication, such as describing the shape of a mechanical part or the connections of an electrical circuit, typed statements can prove cumbersome. The Sketchpad system, by eliminating typed statements (except for legends) in favor of line drawings, opens up a new area of man-machine communication.

En castellano:

El sistema Sketchpad hace posible que un hombre y un computador conversen rápidamente mediante diagramas. Hasta ahora, la mayor parte de la interacción entre hombres y computadores ha sido ralentizada por la necesidad de reducir toda la comunicación a sentencias escritas […] Para muchos tipos de comunicación, como describir la forma de una pieza mecánica o las conexiones de un circuito eléctrico, las sentencias escritas se pueden demostrar farragosas. El sistema Sketchpad, mediante la eliminación de las sentencias escritas (excepto para las leyendas) en favor de los diagramas, abre una nueva área de comunicación hombre-máquina.

Sutherland habría hecho una gran tesis doctoral con tres de los elementos propuestos:

  • el diseño del sistema y la programación del lápiz óptico
  • la transformación del movimiento del lápiz sobre el tablero en figuras de rayos catódicos (no existían entonces los píxeles)
  • el manejo de todos los interfaces físicos (botones, ruedas, pulsadores) para producir acciones en la pantalla

Pero la genialidad de la tesis radica en la invención de importantes abstracciones que hacen mucho más usable la herramienta (lápiz óptico y trazos) y que dan origen a la historia de las interfaces de usuario:

  • restricciones geométricas entre los trazos
  • agrupaciones de trazos en símbolos
  • posibilidad de mover y copiar los símbolos

El programa de Sutherland fue también un precursor de la Programación Orientada a Objetos:

In the process of making the Sketchpad system operate, a few very general functions were developed which make no reference at all to the specific types of entities on which they operate. These general functions give the Sketchpad system the ability to operate on a wide range of problems. The motivation for making the functions as general as possible came from the desire to get as much result as possible from the programming effort involved. For example, the general function for expanding instances makes it possible for Sketchpad to handle any fixed geometry subpicture. The rewards that come from implementing general functions are so great that the author has become reluctant to write any programs for specific jobs.

Programa en lenguaje máquina TX-2

Para tener una idea de lo complicado que era programar en aquella época (comienzo de los 60), hay que recordar que los lenguajes de programación existentes (Fortran, Algol y Lisp) eran desarrollos experimentales y lo más común era programar en lenguaje máquina.

Para terminar, podemos ver unas ilustraciones sacadas de la tesis. Son diagramas realizados con Sketchpad y una ilustración sobre restricciones geométricas.

Diagramas realizados con Sketchpad

Restricciones en Sketchpad

This entry was posted in Historia de la Informática, Programación. Bookmark the permalink.

5 Responses to Sketchpad

  1. Miguel says:

    Muy interesante el artículo y el blog en general. Desde aquí, un estudiante de Ingeniería Informática le anima a continuar.

    Un saludo, Miguel.

  2. domingo says:

    Gracias por el comentario (y por el ánimo). Sigo vivo y con ganas de publicar más cosas… a ver cuándo tengo un rato.
    Un saludo,
    Domingo.

  3. Andru says:

    muy ilustrador e interesante, pues evita que la informatica pase tan desapercibida.

  4. pacoFELC says:

    Bonita historia, quien dijo que la informática era aburrida.

Leave a Reply

Your email address will not be published. Required fields are marked *