1.1 Contexto histórico

Una idea muy extendida en el ámbito del software es que programar consiste simplemente en dar a un ordenador un conjunto de instrucciones para resolver algún problema. Desde este punto de vista, el único valor del software es lograr un resultado y, por lo tanto, un programa solo tiene interés en la medida en que resuelve ese problema. Además, como programar no es interesante en sí mismo, se deja en manos de un gremio profesional con conocimientos técnicos especializados sobre cómo escribir software, y el resto del mundo simplemente lo ignora.

Nos centramos en un aspecto concreto de la historia de las ideas fundamentales que nos proporcionan una perspectiva diferente desde la que explorar el desarrollo de software. La evolución histórica de estas ideas difiere de la visión de simplemente resolver un problema. Creemos que vale la pena volver a examinarla.

La primera visión clara de un procesador de información automatizado para aumentar nuestra memoria colectiva, para encontrar y compartir conocimientos —de hecho, para transformar la explosión de datos en una explosión de información y, a continuación, en una explosión de conocimientos y comprensión— se denominó Memex y se describió en el ensayo de Vannevar Bush «As We May Think» (Como podríamos pensar) en 1945. “As We May Think” in 1945 («Cómo podríamos pensar») en 1945.3. La descripción que hizo Bush de la posibilidad de desarrollar un sistema de procesamiento Memex para ayudar a las personas a acceder, desarrollar y capturar conocimientos en beneficio de todos inspiró a muchos pensadores e inventores posteriores en el desarrollo de ordenadores personales, redes, hipertexto, motores de búsqueda y repositorios de conocimientos como Wikipedia.4.

A medida que la maquinaria computacional evolucionó desde grandes ordenadores centrales que ejecutaban un solo programa a la vez, pasando por ordenadores centrales de tiempo compartido, hasta llegar a los minicomputadores, se desarrolló otra área de conocimiento con modelos sobre cómo aprenden los seres humanos. 5. La gente empezó a hablar de la simbiosis humano-computadora. Alan Kay pensó que el software y la programación informática podrían convertirse en un nuevo medio para expresar pensamientos y conocimientos. La capacidad de expresar ideas en este nuevo medio sería la nueva alfabetización. Todo el mundo debería aprender a leer y escribir en este nuevo medio digital, y tendría a su disposición su propio libro dinámico, un Dynabook 6 7, para lograrlo.

Son muy interesantes los artículos sobre los desarrollos históricos de Alan Kay “The Early History of Smalltalk” 8 y “What is a Dynabook?” 9 en el que señala «The best way to predict the future is to invent it» (la mejor forma de predecir el futuro es inventarlo). Para hacer realidad la visión del Dynabook se necesitaban avances significativos y un desarrollo recíproco tanto del hardware como del software. El desarrollo original tuvo lugar en el «Xerox PARC research center» en los años 70. El primer hardware interim Dynabook fue el Xerox Alto, comúnmente considerado el primer ordenador personal. El sistema de software era Smalltalk. El diseño de ambos se guiaron por los objetivos de hacer reales el Personal Dynamic Media y el Dynabook. La última versión de Smalltalk hecha en Xerox fue Smalltalk-80.

Dadas las capacidades relativamente limitadas del hardware informático de aquella época, la implementación de esta visión planteaba retos reales y exigía mucha creatividad. Hoy en día, los teléfonos inteligentes, las tabletas y los ordenadores portátiles cuentan con las capacidades de hardware que requiere un Dynabook. Sin embargo, no se ha producido el mismo avance en el ámbito del software personal.

En 1981, Dan Ingalls, uno de los primeros inventores de Smalltalk, escribió en su artículo “Design Principles Behind Smalltalk” (Principios de diseño detrás de Smalltalk) 10 una serie de principios que aún hoy nos guían. Entre ellos:

Personal Mastery (maestría personal). Para que un sistema sirva al espíritu creativo, debe ser totalmente comprensible para una sola persona.

Reactive Principle (principio reactivo). Todos los componentes accesibles para el usuario deben poder presentarse de forma pertinente para su observación y manipulación.

Con la comercialización del software, la tendencia ha sido ofrecer a los usuarios aplicaciones «preempaquetadas», selladas y escritas por desarrolladores de software profesionales. Es posible personalizar una aplicación cambiando la «configuración del usuario», pero no hay forma de ver ni modificar sus capacidades más profundas.

En consonancia con el ideal de la alfabetización digital personal, creemos que todo el mundo debería tener pleno acceso al software que hace funcionar nuestros sistemas. Para comprender y explorar los sistemas informáticos es necesario escribir software de forma que pueda leerse y compartirse.

El cambio de mentalidad en la resolución de problemas puede pasar de «¿Qué puedo hacer aquí con lo que se me presenta?» a preguntarse «¿Qué herramientas necesito para tener éxito aquí?», y luego desarrollarlas para tener cada vez más éxito.

Para nosotros es importante esta forma de pensar sobre los sistemas de software.

Por esta razón, Cuis es un sistema Smalltalk cuyo kernel (núcleo) se encuentra aún bastante cerca de Smalltalk-80. El objetivo de Cuis-Smalltalk es ser un entorno de desarrollo Smalltalk pequeño y coherente que, con estudio, resulte comprensible para una sola persona.

A medida que experimentamos y desarrollamos Cuis, este objetivo se lleva a cabo eliminando del sistema base todo lo que no sea esencial y adoptando una estrategia de composición que permita escribir o añadir cualquier otra característica según sea necesaria. A medida que se va adquiriendo conocimiento sobre el núcleo o corazón del software, solo hay que leer y aprender sobre cada característica adicional para comprender el conjunto.

Los entornos de software modernos y abiertos son muy complejos. Cuis es un intento de mantener la orientación y la capacidad de descubrir patrones sin perderse en una gran cantidad de posibilidades que no se comprenden del todo.

Se dice que uno entiende el mundo al construirlo. Desarrollar fluidez y profundidad en un nuevo medio requiere tiempo y práctica.

Te invitamos a que adquieras fluidez y esperamos que compartas con nosotros lo que vayas construyendo.

Sin embargo, primero debemos comenzar con algunos aspectos mecánicos.

Como dice el refrán: «Un viaje de mil millas comienza con un solo paso» 11.

Avancemos juntos.


Notas al pie

(3)

https://es.wikipedia.org/wiki/Como_podr%C3%ADamos_pensar

(4)

Destacados hitos tempranos en esta linea de desarrollo son el Sketchpad de Ivan Sutherland (1963), la tablet RAND (1964) y el NLS (oN-Line System) de Doug Engelbart (1968). Desarrollos posteriores incluyen el Xanadu de Ted Nelson, el Apple Macintosh, la World Wide Web, los smartphones y las tablets.

(5)

Destacados pioneros son J. Piaget, J. Brunner, O. K. Moore, y S. Papert.

(6)

“A personal computer for children of all ages”(1972) http://www.vpri.org/pdf/hc_pers_comp_for_children.pdf

(7)

“Personal Dynamic Media”(1977) http://www.vpri.org/pdf/m1977001_dynamedia.pdf

(8)

http://worrydream.com/EarlyHistoryOfSmalltalk

(9)

http://www.vpri.org/pdf/hc_what_Is_a_dynabook.pdf

(10)

http://www.cs.virginia.edu/~evans/cs655/readings/smalltalk.html

(11)

https://en.wikipedia.org/wiki/A_journey_of_a_thousand_miles_begins_with_a_single_step