SIMPL3: un lenguaje de programación para artistas y diseñadores en español
SIMPL3: a programming language for artists and designers in Spanish
SIMPL3: un langage de programmation pour artistes et créateurs en espagnol
SIMPL3: un linguaggio di programmazione in spagnolo, per artisti e designers
SIMPL3: uma linguagem de programação para artistas e designers em espanhol
DOI:
https://doi.org/10.15446/actio.v7n1.110951Palabras clave:
simple, código creativo, programación multimedia, low-code, no-code, software libre (es)SIMPL3, Código Creativo, Programación multimedia, Low-Code, No-Code, Software libre (en)
SIMPL3, Codice Creativo, Programmazione multimedia, Low Code, No-Code, Software libero (pt)
SIMPL3, programmation créative, programmation multimédia, Low-Code, No-Code, Software libre (fr)
SIMPL3, Código Criativo, Programação multimídia, Low-Code, No-Code, Software livre (it)
SIMPL3 es un lenguaje creado especialmente para no programadores en el que pueden escribir código haciendo uso de una sintaxis en español, a diferencia de lo que sucede con la mayoría de los lenguajes de programación que están en inglés. Este proyecto se fundamenta en un enfoque empírico analítico, basado en un prototipo rápido incremental, en el que primero se diseñan módulos aislados con funcionalidades básicas y luego se van agregando (módulo por módulo) a una implementación general que integra a todos los módulos. En este momento, el proyecto se encuentra en proceso de prueba y validación. Se viene desarrollando desde el año 2021 y es publicado bajo licencia software libre GPLv3; es multiplataforma, lo que permite ser ejecutado tanto en Windows, como en Linux o en MacOS. Este es uno de los proyectos desarrollados dentro del laboratorio Inmedia, en la Universidad del Valle, Cali, Colombia, y puede ser descargado de: https://sourceforge.net/projects/simpl3/files/
SIMPL3 is a language created specifically for non-programmers in which it is possible to write code using a Spanish syntaxis unlike most programming languages which are in English.
This project is based in an empirical-analytical approach, based on fast incremental prototype, where isolated modules are first designed with basic functionalities and then they are added (one module at a time) to a general implementation integrating all modules. Presently, this Project is undergoing a process of testing and validation. It is being developed since 2021 and is published under free software license GPLv3; and is multi-platform, so that it may be run in Windows, Linux or MacOS. This is one of the projects developed by Inmedia,laboratories at the Universidad del Valle, Cali, Colombia, and may be downloaded at: https://sourceforge.net/projects/simpl3/files/
SIMPL3 est un langage créé spécialement pour les non programmeurs avec lequel ils peuvent programmer en utilisant la syntaxe espagnole contrairement à la majorité des autres langages de programmation qui utilisent l’anglais. Ce projet se place d’un point de vue empirique analytique, basé sur le prototypage rapide incrémental, qui conçoit d’abord des modules isolés avec des fonctionnalités de base qui vont ensuite s’assembler (module par module) dans un déploiement général qui intègre tous les modules. Actuellement ce projet est en cours de test et de validation. Il est en cours de développement depuis 2021 et paraît sous licence software libre GPLv3; il est multiplateforme ce qui permet de l’utiliser tant avec Windows que Linux ou MacOS. C’est un des projets développés dans le laboratoire Inmedia à l’Université del Valle, Cali, Colombie, et peut être téléchargé sur: https://sourceforge.net/projects/simpl3/files/
SIMPL3 è un linguaggio creato appositamente per i non programmatori che possono scrivere in codice utilizzando una sintassi in spagnolo, a differenza della maggior parte dei casi, nei quali il linguaggio di programmazione è l’inglese. Questo progetto si fonda su un approccio analitico empirico, basato sulla prototipazione rapida incrementale: in un primo momento vengono progettati moduli isolati con funzionalità di base e in seguito tali moduli vengono aggiunti (uno alla volta) a un'implementazione generale che li integra. Questo progetto è attualmente in fase di test e validazione. Si trova in fase di sviluppo dal 2021 ed è pubblicato sotto licenza di software libero GPLv3; è multipiattaforma, che ne consente l’esecuzione sia in Windows che in Linux e in MacOS. Si tratta di uno dei progetti sviluppati all'interno del laboratorio Inmedia, presso l'Universidad del Valle, Cali, Colombia, e può essere scaricato da https://sourceforge.net/projects/simpl3/files/
SIMPL3 é uma linguagem criada especialmente para não programadores, com a qual é possível escrever códigos usando uma sintaxe em espanhol, diferente da maioria das linguagens de programação que utilizam o inglês. Esse projeto se fundamenta em uma abordagem analítica empírica, baseada em um protótipo rápido incremental, no qual primeiro são projetados módulos isolados com funcionalidades básicas e depois adicionados (módulo por módulo) a uma implementação geral que integra todos os módulos. Esse projeto está atualmente em processo de teste e validação. Está sendo desenvolvido desde 2021 e é publicado sob a licença de software livre GPLv3; é multiplataforma, o que permite que seja executado no Windows, Linux ou MacOS. Esse é um dos projetos desenvolvidos no laboratório Inmedia da Universidad del Valle, Cali, Colômbia, e pode ser baixado em: https://sourceforge.net/projects/simpl3/files/

ACTIO VOL. 7 NÚM. 1 | Enero - Junio / 2023

Profesor y coordinador del laboratorio Inmedia, Universidad del Valle.
Correo electrónico: jose.david.cuartas@correounivalle.edu.co
orcid.org/0000-0001-7211-2237
Introducción
El proyecto SIMPL3 surge por el interés de crear una herramienta de programación creativa alternativa, que pueda ayudar a reducir la dificultad que implica el aprendizaje de lenguajes de programación para personas cuya lengua nativa no es el inglés. Especialmente, debido a que las instrucciones que se usan en la mayoría de los lenguajes de programación deben ser escritas en inglés, lo cual implica un doble proceso de pensamiento. Este es un proyecto que se aborda desde el deseo de hacer desobediencia tecnológica a las herramientas tradicionales para hacer programación creativa, como los han sido Design by Numbers (Maeda, 1999), Processing (Fry y Reas, 2001) o Scratch (Resnick y Kafai, 2003).
Así pues, SIMPL3 inicia como una apuesta por el desarrollo de una herramienta de creación para generar un código de programación en español, pero cuando se logró hacerlo funcionar en español, con muy pocas modificaciones se pudo acomodar a muchos otros idiomas. Esto significa que ahora se puede crear código en español, pensando en español. Adicionalmente, con un solo clic se puede ver todo el código en otro idioma, lo cual facilita la comprensión de código a quienes hablan otras lenguas. Es decir, esto evita que el inglés sea el único mediador para el tránsito de ideas plasmadas en código.
Adicionalmente, con el proyecto SIMPL3 se busca demostrar que no tenemos que ser consumidores pasivos de tecnologías desarrolladas en países desarrollados, y seguir conformándose con aprender a usar y adoptar ciegamente lo que ellos inventan, sino que es un acto de autonomía en el que buscamos construir las herramientas que se ajusten mejor a nuestras necesidades locales.
El nombre de este proyecto es SIMPL3 Interactive Meta Programing Language Editor (SIMPLE), y en español traduce: Editor Interactivo de Lenguaje SIMPL3 para Metaprogramación. Debido a que EILSMP no es tan agradable, se elige el orden en inglés. Adicionalmente, la palabra simple se escribe y significa igual tanto en inglés como en español.
El código que se crea en SIMPL3 puede ser ejecutado como una aplicación de escritorio o como una aplicación web que corre en el navegador. Esto quiere decir que el código creado en SIMPL3 se traduce a lenguaje Python o JavaScript, según la necesidad del usuario. Usualmente, los diseñadores tienen que aprender un lenguaje de programación para hacer aplicaciones interactivas para la computadora y tienen que aprender otro lenguaje para hacer páginas web interactivas. En este caso solo necesitan aprender un lenguaje y estaría cubriendo ambas necesidades.
Otro aspecto interesante de SIMPL3 es que permite programar tarjetas Arduino o ESP que tengan instalada la biblioteca (library) Firmata2. De esta forma, con SIMPL3 se pueden prender y apagar luces, se pueden controlar servomotores o se pueden leer sensores digitales y analógicos.
SIMPL3 fue desarrollado especialmente para diseñadores, artistas y no programadores; puede considerarse como una continuación de la línea investigativa en la que trabajo desde mis estudios de doctorado en Diseño y Creación (Cuartas, 2017), la cual se enfoca en explorar estrategias para promover las culturas Hacker y Maker en el contexto académico universitario. Busca que las personas inexpertas descubran las oportunidades creativas que existen al aprender a programar.
Con SIMPL3 se busca abordar el dilema al que se enfrentan los creadores en el medio de la computación, cuando crean cosas que realmente no hacen uso del verdadero potencial que puede ofrecer el medio en el que son generadas (Victor, agosto 13, 2013). Por esta razón, la programación debería ser vista como un «Medio para pensar lo impensable» (Victor, mayo 27, 2013).
Método
Este proyecto de investigación creación se fundamenta en un enfoque empírico analítico, basado en prototipo rápido incremental, en el que primero se diseñan módulos aislados con funcionalidades básicas y luego se van agregando (módulo por módulo) a una implementación general que los integra a todos. En este momento, el proyecto se encuentra en proceso de prueba y validación.
SIMPL3 es un entorno de metaprogramación desarrollado usando lenguaje Python versión 3.7.9 y las librerías Tkinter, Pillow, Numpy, Pygame y pyFirmata2. Hasta el momento se han desarrollado 40 prototipos incrementales de este entorno de programación; a la fecha, el último prototipo es el 0.01x (Cuartas, 2023), el cual permite anotar código creativo en idioma español y en otros 24 idiomas diferentes como: inglés, sueco, francés, persa, japonés, portugués, hindi, punjabi, kannada, bengalí, tamil, marathi, telugu, urdu, chino, italiano, coreano, árabe, thai, indonesio, vietnamita, alemán, ruso y suajili.
Desde el inicio de este proyecto, se definieron dos condiciones fundamentales: la primera es que debe ser un proyecto de software libre, y la segunda es que debe ser multiplataforma. Lo cual significa que el software debería funcionar relativamente igual sin importar si se usa en una computadora con sistema operativo, Windows, Linux o MacOS.
Debido a que SIMPL3 convierte las instrucciones a lenguaje Python, surgió un gran reto y era lograr que SIMPL3 contara con una copia del entorno de programación Python para poder ejecutar el código generado. Para resolver este requerimiento, se usó el paquete PyPy (PyPy Team, 2007), sin embargo, particularmente para MacOS, este paquete se descartó ya que solo está disponible para versiones recientes de MacOS y para las pruebas en el laboratorio solo se contaba con una máquinas Mac con sistema MacOS 10.13. Así que, para hacer funcionar SIMPL3 en versiones viejas de Mac, fue necesario encontrar una forma de crear una versión portable de Python para MacOS. Este fue uno de los mayores desafíos en el proceso de implementación de este lenguaje de metaprogramación. Afortunadamente, nos topamos con el proyecto de Carlos Pereira Atencio, en la plataforma Github, llamado: python-portable-macos, con el cual se descubrieron los pasos para lograrlo (Pereira, 2018).
Evidencia empírica y resultados preliminares
Para esta sección, se presentarán algunos ejemplos de experimentos hechos con distintos tipos de usuarios, con lo cual se han recolectado las primeras impresiones identificadas sobre el potencial de este lenguaje.
Una de las primeras pruebas de SIMPL3 se hizo en clase, en mayo de 2022, con los estudiantes del espacio académico Informática VI, quienes experimentaron con SIMPL3 en los computadores del piso informático de la Facultad de Artes Integradas de la Universidad del Valle. Los estudiantes se manifestaron sorprendidos por la simplicidad y por lo intuitivo que resultaba ser este entorno de programación, sobre todo porque son principiantes en el tema de programación creativa.
Otra prueba se hizo en junio con una niña de 7 años, estudiante de primero de primaria. Ella se mostró bastante curiosa con respecto a este software con el que pudo generar sonidos al presionar cualquier tecla o el ratón, y pudo cambiar de colores el fondo de la ventana, de la misma forma que generó los sonidos. Al momento de dibujar un círculo requirió de asistencia.
En octubre de 2022, en el marco del Festival Internacional de la Imagen, se presentó un taller llamado: SIMPL3 : un lenguaje de programación en español para artistas y diseñadores, el cual fue otra prueba de SIMPL3 con un público proveniente de diferentes ciudades de Colombia. Fue ofrecido especialmente para personas con poco o ningún conocimiento en programación, en el cual se dieron las nociones básicas de programación creativa haciendo uso de SIMPL3 . Al final, quienes asistieron pudieron crear un piano psicodélico. Participaron docentes universitarios y estudiantes de la Universidad Nacional (Bogotá), Universidad del Valle (Cali), Universidad EAN (Armenia), Universidad Militar (Bogotá) y Universidad de Caldas (Manizales).
Haciendo uso del lenguaje SIMPL3 , se desarrolló una instalación que se presentó en octubre del año 2022 dentro del marco del XXI Festival Internacional de la Imagen (2022) con el nombre de SIMPLE INPUT. Con este montaje interactivo se hizo una demostración de lo que se puede hacer con una interfaz natural de programación, como por ejemplo generar en tiempo real instrucciones de programación gráfica mediante un sistema de captura de movimiento y comandos de voz. Se puede decir que con este montaje se establece una segunda etapa dentro del proceso de desarrollo de este lenguaje alternativo de programación creativa.
Alcances
Al desarrollar esta instalación, se utilizó el paradigma tecnológico de la manipulación directa, para que los usuarios la emplearan sin importar su nivel de conocimiento en técnicas de programación creativa y estuvieran en capacidad de construir representaciones gráficas generadas automáticamente. De esta forma, los usuarios pudieron ver cómo su código se iba convirtiendo en formas y colores. Al final, lo que el usuario experimenta es un artefacto que le permite hacer programación en tiempo real y que, al igual que la corriente artística Fluxus, busca explorar usos alternativos de tecnología aparentemente distantes para desafiar el paradigma lingüístico dominante de la mayoría de los lenguajes de programación, que ha sido escribir texto con palabras en inglés para hacer que la computadora haga algo.

Figura 1. Instalación SIMPLE INPUT en el Festival Internacional de la Imagen 2022.
Discusión
SIMPL3 es el resultado de un proceso que comienza en el año 2016 con el desarrollo del primer prototipo llamado ShapeCodeWriter, el cual funciona con un Wiimote y le permite al usuario dibujar formas geométricas de aire, pero, al mismo tiempo, generar el código de dichas figuras en lenguaje Processing. Así que esta fue la primera prueba de concepto que permitía traducir el movimiento de usuario en el código de programación necesario para poder dibujar las mismas figuras en otro proyecto de Processing.

Figura 2. Captura del software ShapeCodeWriterCam.
Continuando con el mismo propósito, en el año 2020, me propuse la creación de dos entornos de programación creativa llamados Meta_Processing y Meta_JavaScript. Ambos fueron creados usando el lenguaje Processing. Con el primero se crea de forma automática código de Processing y con el segundo se puede generar contenidos interactivos con JavaScript. La ventaja es que por primera vez se podía programar directamente en español o en otros 14 idiomas disponibles. El problema con estos dos proyectos es que dependían directamente de Processing, por tanto, la distribución de Meta_Processing como la de Meta_JavaScript contenían una distribución de Processing. Sin embargo, a su vez, Processing depende de Java, lo cual implica que también contiene una distribución de Java. Así pues, lo que sucede cada vez que se hace clic en el botón de ejecutar es que el código original es transformado a código Processing y luego Processing lo transforma a código Java, para que luego Java finalmente lo ejecute. Esto es una solución válida, pero muchísimo más intrincada que la implementada actualmente en SIMPL3 .
En el año 2021, hago mi tercera aproximación para facilitar el proceso de generar código creativo de forma fácil e intuitiva; de este modo me propongo la creación de SIMPL3 . La principal diferencia radica en que utilizo Python, por ser un lenguaje multiplataforma y de código abierto. Esto es una importante diferencia con respecto a Processing, el cual corre sobre la versión privativa de Java desarrollada por la compañía Oracle.
Comparando SIMPL3 con los proyectos antecesores, se puede decir que es una implementación muy superior, ya que se tuvo muy en cuenta las fallas y falencias de los prototipos anteriores.
SIMPL3 es un lenguaje que ofrece las mismas funcionalidades de Meta_Processing y Meta_JavaScript, pero en un mismo software, sin tener que cambiar de un programa al otro.
Otra característica clave en SIMPL3 es que son paquetes de software que no se ejecutan desde un archivo ejecutable (compilado), sino que, cada vez que se abren, se ejecuta el código fuente. Esto fue pensado para que cualquier persona pueda modificar el programa sin tener los usuales y tediosos problemas de cumplir con todos los prerrequisitos para compilar programas de código abierto.
En diciembre de 2022, un poco más de año y medio haciendo uso del nuevo buscador de Brave, descubrí que ya existía otro proyecto llamado SiMPLE (SiMPLE Modular Programming Language & Environment), un lenguaje de programación para niños (Bishop, 1995), el cual fue creado en 1995 por Bob Bishop y Rich Whicker, ambos exempleados de Apple. Sin embargo, el proyecto ya no se encuentra activo debido a la muerte de su creador y principal promotor Bob Bishop, en septiembre del 2014 (Weyhrich, 2015).
Por este motivo, se cambió el nombre del repositorio y el logo por SIMPL3, de manera que la E se gira para que se vea como un 3, y así no se confunda con este proyecto del año 1995.

Figura 3. Ejemplo del cambio de logo de SIMPL3.
El proyecto de Bishop me causó mucha curiosidad y, al revisar cómo funciona, se pudo encontrar que, para ejecutar el código de SiMPLE (SiMPLE Modular Programming Language & Environment) se debía escribir el código en algún editor de texto y luego arrastrar el archivo con el código al ícono de SiMPLE.
Para el caso de SIMPL3, el entorno le permite generar líneas de código sin tener que escribir directamente las instrucciones, sino llenado campos en ventanas emergentes. De manera que no se escribe un archivo de texto, sino que se agregan instrucciones desde un menú y solo se editan sus propiedades. Lo cual reduce en gran medida las posibilidades de cometer errores comunes como olvidar poner punto y coma al final de cada línea.
Conclusiones
En la prueba con la niña de 7 años se observó que, al momento de dibujar un círculo, requirió de asistencia, lo cual demuestra que SIMPL3 todavía no es una herramienta lo suficientemente amigable e intuitiva con niños menores de 10 años. Con esto se observa la necesidad de explorar interfaces táctiles para generar el código y posicionar en pantalla los objetos visuales.
Si actualmente no existe un lenguaje de programación creativa en español es porque esto nunca ha sido una preocupación prioritaria de la ingeniería. Hacer que los lenguajes de programación se puedan usar en el mismo idioma en el que las personas piensan sí es una preocupación pertinente del diseño, ya que es un problema de diseño de experiencia. Es por esto que esta investigación (que podría considerarse como un desarrollo bastante técnico) se desenvuelve desde un programa de diseño gráfico y no desde uno de ingeniería. Soy un convencido de que los creadores deberíamos tener la oportunidad de poder programar en su lengua nativa y no tener que aprender a traducir sus pensamientos a un idioma diferente, como sucede cuando las personas aprenden a programar y su idioma nativo no es el inglés. Las computadoras cada vez son más potentes, pero no hemos podido lograr que los lenguajes de programación dejen de ser monoidioma, todavía estamos obligados a aprender inglés para poder acceder a la programación, pero esto lo podemos cambiar.
A largo plazo, se busca que SIMPL3 pueda llegar a convertirse en un lenguaje universal de meta programación.
Referencias
- Bishop, B. (1995). SiMPLE. The Computer Programming Language For Kids!. https://bit.ly/45JihXO
- Cuartas, J. D. (2017). Programar el mundo en el contexto de las tecnologías libres y las culturas Hacker-Maker. Caso de estudio: Hitec Lab. [Tesis doctoral, Universidad de Caldas, Manizales]. DOI
- Cuartas, J. D. (2023). SIMPL3 Alpha 0.01t. https://sourceforge.net/projects/simpl3/files/
- Fry, B. y Reas, C. (2001). Processing. https://processing.org/
- Maeda, J. (1999). Design by numbers. https://dbn.media.mit.edu/
- Pereira, C. (2018). Python-portable-macos. https://github.com/carlosperate/python-portable-macos
- PyPy Team. (2007). PyPy. https://www.pypy.org/
- Resnick, M. y Kafai, Y. (2003). Scratch. https://scratch.mit.edu/
- Victor, B. (Agosto 13, 2013). Bret Victor - Stop Drawing Dead Fish [video]. YouTube. https://www.youtube.com/watch?v=ZfytHvgHybA
- Victor, B. (Mayo 27, 2013). Bret Victor - Media for Thinking the Unthinkable [video]. Vimeo. https://vimeo.com/67076984
- Weyhrich, S. (2015). Apple II history. Bob Bishop. https://www.apple2history.org/spotlight/bobbishop/
Derechos de autor: Universidad Nacional de Colombia.
Este documento se encuentra bajo la licencia Creative Commons
Atribución 4.0
Internacional (CC BY 4.0).

Referencias
Bishop, B. (1995). SiMPLE. The Computer Programming Language For Kids!. https://bit.ly/45JihXO
Cuartas, J. D. (2017). Programar el mundo en el contexto de las tecnologías libres y las culturas Hacker-Maker. Caso de estudio: Hitec Lab. [Tesis doctoral, Universidad de Caldas, Manizales]. https://doi.org/10.17230/map.v6.i10.03 DOI: https://doi.org/10.17230/map.v6.i10.03
Cuartas, J. D. (2023). SIMPL3 Alpha 0.01t. https://sourceforge.net/projects/simpl3/files/
Fry, B. y Reas, C. (2001). Processing. https://processing.org/
Maeda, J. (1999). Design by numbers. https://dbn.media.mit.edu/
Pereira, C. (2018). Python-portable-macos. https://github.com/carlosperate/python-portable-macos
PyPy Team. (2007). PyPy. https://www.pypy.org/
Resnick, M. y Kafai, Y. (2003). Scratch. https://scratch.mit.edu/
Victor, B. (Agosto 13, 2013). Bret Victor - Stop Drawing Dead Fish [video]. YouTube. https://www.youtube.com/watch?v=ZfytHvgHybA
Victor, B. (Mayo 27, 2013). Bret Victor - Media for Thinking the Unthinkable [video]. Vimeo. https://vimeo.com/67076984
Weyhrich, S. (2015). Apple II history. Bob Bishop. https://www.apple2history.org/spotlight/bobbishop/
Cómo citar
APA
ACM
ACS
ABNT
Chicago
Harvard
IEEE
MLA
Turabian
Vancouver
Descargar cita
Licencia
Información sobre acceso abierto y uso de imágenes
El contenido y las opiniones incluidas en los trabajos publicados por ACTIO Journal of Technology in Design, Film Arts, and Visual Communication son de responsabilidad exclusiva de los autores para todos los efectos, y no comprometen necesariamente el punto de vista de la revista. Cualquier restricción legal que afecte los trabajos y su contenido (en cualquier formato: escrito, sonoro, gráfico, videográfico) es responsabilidad exclusiva de quienes los firman.
La Revista no se hace responsable de aspectos relacionados con copia, plagio o fraude que pudieran aparecer en los artículos publicados en la misma, tanto por textos, imágenes o demás susceptibles de protección. Por ello exige a los autores respetar y acoger todas las normas nacionales e internacionales que al respecto rijan la materia, incluyendo el derecho a cita. Los contenidos de los artículos son responsabilidad de los autores.
Los trabajos se publican con acceso libre, lo cual permite copiar y redistribuir los trabajos publicados, siempre que:
- Se cite la autoría y la fuente original de su publicación (nombre de la revista, volumen, número, números de página, año de publicación, el título del trabajo, editorial y URL de la obra);
- No se usen para fines comerciales;
- No se modifique ninguna parte del material publicado;
- Se soliciten los permisos correspondientes para reutilización o reedición del material publicado; y
- Se mencione la existencia y especificaciones de esta licencia de uso.