Manifiesto de los pequeños programadores
Esta es una traducción del texto The Little Coder’s Predicament escrito por why The Lucky Stiff, un artista admirable a quien extrañamos mucho…
Veamos entonces, niño de la era moderna (¡en la que vivimos en un mundo tan interconectado de cables que Pangaea no se irá a ningún lado!), decime vos si esto es un dilema o no.
En los ‘80, podías levantar la vista de tu Commodore 64, horas después de haberla comprado, con una brillante sensación de poder lograda por la secuencia de notas musicales escupidas desde el parlante en bucle infinito ¡Eras parte del movimiento para ayudar a las máquinas a cantar! ¡Eras un programador! La Atari 800, gente, tenía BASIC. Hay personas que saben de qué estoy hablando. Y la TI-99/4A, amigos, no es necesario decir ni una palabra de la TI ¡Porque podía decirla por si misma!
Las computadoras antiguas ni se comparan a las de hoy, tampoco las consolas. Pero, lamentablemente, las versiones actuales de Windows no tienen lenguajes de programación inmediatamente accesibles. Además, ¿qué puede llegar a hacer un chico con Visual Basic?, ¿Crear un diálogo modal?. Olvidemos codear para XBox, porque requiere una registración en el programa de desarrollo de XBox. Es más, tenés que descifrar absolutamente todo. ¿GameCube? ¿GameBoy? ¿Playstation 2?
Programar es simplemente inaccesible
Sí, florecen SDK libres para muchas de estas plataformas. Pero son oscuras y la mayoría de los niños no tienen medios para realmente implementar o ejecutar el código en su propio hardware. Esto es obvio para todos nosotros y es probable que no parezca gran cosa. Pero hay que preguntarse qué podría haberte ocurrido de no haber tenido acceso a un lenguaje de programación en una Atari 800 o una Commodore. Diganmé si esto no es un dilema.
Resulta que, la mayoría de los chicos de mi barrio estan expuestos a la programación a través de las calculadoras TI. Un puñado de lenguajes están disponibles y su procesador es lo suficientemente interesante como para evocar cierta curiosidad. Pero esto no se difundió a sus hermanas mayores las PDAs, donde los jóvenes pueden tener más exposición a la programación. Y sin duda, la utilidad de un lenguaje para programar en la Palm, Pocket PC y otros dispositivos para serían muy útiles para muchos.
¿Entonces, cuál es el problema en todo esto? No hay escasez de lenguajes de programación, pero se vuelven cada vez más distanciados de la gente. ¿Serán las compañias detrás de estas plataformas que se cansaron ya de poner en manos de los usuarios el poder de los lenguajes de programación? ¿Es qué no hay más demanda? Debe ser algún tipo de avarícia, cosas del dinero o del poder ¿Verdad?
Tal vez esto sólo sea otra razón para empujar a usar Linux y BSD en los sistemas de los usuarios comunes. De todas maneras ¿Son sencillos y accesibles los lenguages de programación interpretados? OSX ha hecho y puesto a disposición varios lenguajes (incluyendo Ruby y Python), pero la mayoría de los usuarios no son conscientes de su presencia.
He de mencionar que Windows viene equipado con su própio motor y entorno de ejecución de scripts para desarrollar en JScript y VBScript. Pero el uso de este motor esta (creo yo) con poca documentación y limitado a principiantes. Traten de hacer algo útil en un script sin usar Server.CreateObject
. ¡No dejemos que los niños toquen los objetos COM
, por favor!
La lista navideña
Pienso que un lenguaje como para jugar, hecho para consolas y computadoras podría ser monumental. No digo que necesite ser multiplataforma. Un lenguaje para GameCube que tome ventaja de las características específicas de esa plataforma podría ser más atractivo para los usuarios de GameCube que un lenguaje que utilice un conjunto de características reducidas, pero que podría ejecutarse en un dispositivo portátil. En realidad, vivimos en un mundo en el que ambas opciones deberían estar disponibles.
En cuanto a características esenciales:
1. Código transportable
En mi TI-994A, podía hacer un pequeño Optimus Prime con pixeles. Insertar un cassette, grabar, y compartirlo con mis amigos. Recibir felicitaciones de mis amigos, y sentirme realizado. ¡Gracias TI! ¡Muchas gracias Optimus Prime!
Un pequeño lenguaje para las consolas podría convertirse en algo muy popular si se combina con la bondad de compartir código. Esto se podría lograr intercambiando tarjetas de memoria, pero sería más efectivo si se obtuviera y se publicará sencillamente en la Web. EL Aprendizaje se aceleraría y daría lugar al desarrollo colaborativo.
Un lenguaje adecuado debe dar a los programadores acceso a dispositivos de E/S, para permitir la experimentación con dispositivos de red y mejorar la conectividad entre ellos. Para las consolas, los juegos podrían proporcionar hooks (enganches) para modos de usuario. Esto ha demostrado ser un elemento de éxito en el mundo de los juegos de PC.
2. Simplicidad
Debes poder escribir una sola línea de código y ver el resultado. Necesitamos resultados instantáneos para dar confianza a los principiantes absolutos. Métodos simples para enviar un email, leer una página web, reproducir música. Demostrable en un programa de una línea.
Cierto es que, como nuestros sistemas han crecido en complejidad, es difícil equilibrar simplicidad y potencialidad. La mayoría de los usuarios se mostraron impresionados por el código que emite pitidos y bloops de una PlayStation 2. Si Ruby hubiera estado disponible en la PS2, entonces esperarían que se puedan oír ricos sonidos sinfónicos usando un poquito de código
Orchestra.play( "A:2", "C:4", "E:1", "G:1" )
EL acceso al motor gráfico puede requerir de código más complejo. Pero podrían proporcinarse metodos simples de dibujo para principiantes. O las imágenes podrían estar guardadas junto al código para acceder a ellas a través de la programación.
ImageLibrary.load( "GolfingOldMan" ).drawAt( 12, 10 )
El truco consistiría en descubrir que pequeñas aplicaciones puden atraer a los novatos y seguir proporcionando la capacidad para escribir grandes aplicaciones que lleve a los desarrolladores a dominar el lenguaje sin limitar su crecimiento.
3. Entorno sensible
Considerando que habrá muchos que no querran comprar un teclado para su consola de juegos, aseguremosnos que se proveerá un entorno razonable para ingresar texto. Los controles pueden ser como el Twiddler. O el código puede transferirse via IR, TCP/IP. (¿me atrevería a decir en cassette? :D)
4. ¡Regalenló!
Solía ser que la programación era prácticamente un derecho inalienable para los usuarios. Incluían un lenguaje con el sistema, situado en un lugar amigable. Cada una de las consolas de juego que he mencionado tenía lanzadores. (Con la escepción de Game Boy y sus sucesores) que porveian un prompt (entrada) para desarrollo desde el lanzador. Los programas de escritorio, porveían enlaces para ambas, la entrada de comandos (command prompt ) y la entrada de desarrollo (development prompt).
Recuerden, estamos buscando un lenguaje que no requiera hackeos al sistema. Que no tenga links oscuros. Ni violaciones a la garantía. Nos hemos acostumbrado tanto a estas técnicas, que parecieran ser una parte esencial en nuestro camino.
Y en muchos sentidos es esencial. Juguetear con el hardware es aprender. Lobotomizar y renovar es significativo, es mágico. En nombre de los que prefieren código, hago estos deseos. No para quitar trabajo de los destornilladores Phillips.
El Ultimátum
Mi desafío es a Sony, Nintendo, Microsoft, Apple, y a aquellos que fabrican y desarrollan nustra tecnología interactiva. Permítanos interactuar con estas máquinas más profundamente. Provéanos de un canal para tener este diálogo con las cajas de entretenimiento que nutrimos y cuidamos. Les juro, la relación entre el público y su producto con absoluta certeza florecerá.
Además, si sus desarrolladores empiezan a sacar mierda, entonces tendrán todo un mundo de gente que tomara las riendas.
Mi desafío es para ustedes es que puedan empaquetar un lenguaje de programación util con sus producto. Ruby, Squeak, REBOL, Python. Hagan su elección. Será absolutamente económico agragar cualquiera de estos lenguajes a su sistema. Y la gente, en serio que va a rezarles. Ustedes saben como como se ponen los geeks cuando juran lealtad a algo. Y sí, Ruby es preferible
Escrito por why the lucky stiff, el 10 junio del 2003.
Fuente de la imagen: Giphy
Comments