{"id":9,"date":"2007-07-09T09:09:36","date_gmt":"2007-07-09T07:09:36","guid":{"rendered":"https:\/\/blogs.ua.es\/domingo\/2007\/07\/09\/sketchpad\/"},"modified":"2008-10-11T09:45:34","modified_gmt":"2008-10-11T07:45:34","slug":"sketchpad","status":"publish","type":"post","link":"https:\/\/blogs.ua.es\/domingo\/2007\/07\/09\/sketchpad\/","title":{"rendered":"Sketchpad"},"content":{"rendered":"<p><a title=\"Ivan Sutherland y Sketchpad\" href=\"https:\/\/blogs.ua.es\/domingo\/files\/2007\/07\/ivansutherland-sketchpad.gif\"><img decoding=\"async\" src=\"https:\/\/blogs.ua.es\/domingo\/files\/2007\/07\/ivansutherland-sketchpad.thumbnail.gif\" alt=\"Ivan Sutherland y Sketchpad\" \/><\/a> Ahora que Apple va a popularizar otra forma revolucionaria de interactuar con los computadores con su <em>multi-touch<\/em> iphone, no est\u00e1 de m\u00e1s hacer una visita a la historia de la inform\u00e1tica. \u00bfDe d\u00f3nde vienen los actuales interfaces de usuario?<\/p>\n<p>Hubo un tiempo en el que los computadores no ten\u00edan rat\u00f3n, ni exist\u00edan interfaces gr\u00e1ficas con ventanas, paneles, botones, men\u00fas 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\u00e9s vinieron Englegart con el rat\u00f3n y el Smalltalk desarrollado en Xerox Park, que ya comentaremos en otro momento.<\/p>\n<p><!--more--><\/p>\n<p>Vamos con Sketchpad. El programa fue desarrollado por Ivan Sutherland como tesis doctoral del Instituto de Tecnolog\u00eda de Massachusetts (MIT). La tesis fue presentada en enero de 1963, despu\u00e9s de tres a\u00f1os desarrollando e implementando los conceptos que aparecen en el programa.<\/p>\n<p>Podemos ver el sistema en funcionamiento en una <a href=\"http:\/\/www.archive.org\/details\/AlanKeyD1987\">charla de Alan Kay<\/a> de 1987. Esa charla tambi\u00e9n es hist\u00f3rica y en ella podemos encontrar v\u00eddeos sobre los or\u00edgenes de las interfaces de usuario, la invenci\u00f3n del rat\u00f3n, Xerox Park , la Programaci\u00f3n Orientada a Objetos y los conceptos del propio Kay que dieron origen a m\u00e9todos totalmente novedosos de programar y comunicarnos con los computadores.<\/p>\n<p>He extra\u00eddo la parte en la que Kay habla de Sketchpad:<\/p>\n<p><code>[kml_flashembed movie=\"http:\/\/www.youtube.com\/v\/mOZqRJzE8xg\" width=\"425\" height=\"350\" wmode=\"transparent\" \/]<\/code><\/p>\n<p>Es muy recomendable consultar la tesis original (disponible a trav\u00e9s de una nueva edici\u00f3n que ha preparado el <em>Computer Laboratory<\/em> de la Universidad de Cambridge) y el art\u00edculo en el que Sutherland resume sus aportaciones:<\/p>\n<p>[<a href=\"http:\/\/www.cl.cam.ac.uk\/techreports\/UCAM-CL-TR-574.pdf\">Tesis doctoral de Ivan Sutherland<\/a>]<br \/>\n[<a href=\"http:\/\/www.guidebookgallery.org\/articles\/sketchpadamanmachinegraphicalcommunicationsystem\">Art\u00edculo publicado en los proceedings del AFIPS, 1963<\/a>]<\/p>\n<p>Sutherland utiliz\u00f3 un computador muy novedoso para la \u00e9poca, el TX-2, desarrollado en el Lincoln Laboratory tambi\u00e9n en el MIT. El TX-2 contaba con una pantalla gr\u00e1fica (de rayos cat\u00f3dicos, similares a la de los osciloscopios), un l\u00e1piz \u00f3ptico y una gran cantidad de interfaces f\u00edsicos como botones, interruptores y mandos circulares.<\/p>\n<p>[<a href=\"http:\/\/en.wikipedia.org\/wiki\/TX-2\">Wikipedia sobre TX-2<\/a>]<\/p>\n<p>En la introducci\u00f3n de la tesis se indican las limitaciones de los computadores e interfaces existentes y el objetivo principal del sistema propuesto:<\/p>\n<blockquote><p>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 [&#8230;] 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.<\/p><\/blockquote>\n<p>En castellano:<\/p>\n<blockquote><p>El sistema Sketchpad hace posible que un hombre y un computador conversen r\u00e1pidamente mediante diagramas. Hasta ahora, la mayor parte de la interacci\u00f3n entre hombres y computadores ha sido ralentizada por la necesidad de reducir toda la comunicaci\u00f3n a sentencias escritas [&#8230;] Para muchos tipos de comunicaci\u00f3n, como describir la forma de una pieza mec\u00e1nica o las conexiones de un circuito el\u00e9ctrico, las sentencias escritas se pueden demostrar farragosas. El sistema Sketchpad, mediante la eliminaci\u00f3n de las sentencias escritas (excepto para las leyendas) en favor de los diagramas, abre una nueva \u00e1rea de comunicaci\u00f3n hombre-m\u00e1quina.<\/p><\/blockquote>\n<p>Sutherland habr\u00eda hecho una gran tesis doctoral con tres de los elementos propuestos:<\/p>\n<ul>\n<li> el dise\u00f1o del sistema y la programaci\u00f3n del l\u00e1piz \u00f3ptico<\/li>\n<li> la transformaci\u00f3n del movimiento del l\u00e1piz sobre el tablero en figuras de rayos cat\u00f3dicos (no exist\u00edan entonces los <em>p\u00edxeles<\/em>)<\/li>\n<li> el manejo de todos los interfaces f\u00edsicos (botones, ruedas, pulsadores) para producir acciones en la pantalla<\/li>\n<\/ul>\n<p>Pero la genialidad de la tesis radica en la invenci\u00f3n de importantes <em>abstracciones<\/em> que hacen mucho m\u00e1s usable la herramienta (l\u00e1piz \u00f3ptico y trazos) y que dan origen a la historia de las interfaces de usuario:<\/p>\n<ul>\n<li><em>restricciones geom\u00e9tricas<\/em> entre los trazos<\/li>\n<li>agrupaciones de trazos en s\u00edmbolos<\/li>\n<li>posibilidad de mover y copiar los s\u00edmbolos<\/li>\n<\/ul>\n<p>El programa de Sutherland fue tambi\u00e9n un precursor de la Programaci\u00f3n Orientada a Objetos:<\/p>\n<blockquote><p>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.<\/p><\/blockquote>\n<p><img decoding=\"async\" src=\"https:\/\/blogs.ua.es\/domingo\/files\/2007\/07\/programa-ejemplo.gif\" alt=\"Programa en lenguaje m\u00e1quina TX-2\" \/><\/p>\n<p>Para tener una idea de lo complicado que era programar en aquella \u00e9poca (comienzo de los 60), hay que recordar que los lenguajes de programaci\u00f3n existentes (Fortran, Algol y Lisp) eran desarrollos experimentales y lo m\u00e1s com\u00fan era programar en lenguaje m\u00e1quina.<\/p>\n<p>Para terminar, podemos ver unas ilustraciones sacadas de la tesis. Son diagramas realizados con Sketchpad y una ilustraci\u00f3n sobre restricciones geom\u00e9tricas.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/blogs.ua.es\/domingo\/files\/2007\/07\/line-drawins.gif\" alt=\"Diagramas realizados con Sketchpad\" \/><\/p>\n<p><img decoding=\"async\" src=\"https:\/\/blogs.ua.es\/domingo\/files\/2007\/07\/constraints.gif\" alt=\"Restricciones en Sketchpad\" \/><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Ahora que Apple va a popularizar otra forma revolucionaria de interactuar con los computadores con su multi-touch iphone, no est\u00e1 de m\u00e1s hacer una visita a la historia de la inform\u00e1tica. \u00bfDe d\u00f3nde vienen los actuales interfaces de usuario? Hubo &hellip; <a href=\"https:\/\/blogs.ua.es\/domingo\/2007\/07\/09\/sketchpad\/\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":43,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[201,374],"tags":[],"class_list":["post-9","post","type-post","status-publish","format-standard","hentry","category-historia-de-la-informatica","category-programacion"],"_links":{"self":[{"href":"https:\/\/blogs.ua.es\/domingo\/wp-json\/wp\/v2\/posts\/9","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blogs.ua.es\/domingo\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blogs.ua.es\/domingo\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blogs.ua.es\/domingo\/wp-json\/wp\/v2\/users\/43"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.ua.es\/domingo\/wp-json\/wp\/v2\/comments?post=9"}],"version-history":[{"count":1,"href":"https:\/\/blogs.ua.es\/domingo\/wp-json\/wp\/v2\/posts\/9\/revisions"}],"predecessor-version":[{"id":25,"href":"https:\/\/blogs.ua.es\/domingo\/wp-json\/wp\/v2\/posts\/9\/revisions\/25"}],"wp:attachment":[{"href":"https:\/\/blogs.ua.es\/domingo\/wp-json\/wp\/v2\/media?parent=9"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.ua.es\/domingo\/wp-json\/wp\/v2\/categories?post=9"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.ua.es\/domingo\/wp-json\/wp\/v2\/tags?post=9"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}