¿Qué es curto?
Curto es una traducción completa de UF Forth al español. Actualmente el trabajo de traducción está en progreso por lo que el código fuente aún no contiene caracteres especiales del idioma y la traducción de los comentarios aún no se ha completado.
Este es un sistema Forth tradicional para la computadora virtual "uxn/varvara". Curto está escrito en Tal y Curto y provee una interface de texto interactiva y un editor de pantalla. El sistema no es enebrado, compila a código UXN nativo, pero actualmente solo un mínimo de optimizaciones son realizadas. El mapeo entre código fuente Forth e instrucciones de la VM es relativamente directo por lo que la pérformance debería ser mas que suficiente para todas salvo las más críticas de las situaciones. Las celdas son de 16 bits, el sistema completo ocupa alrededor de 25k de memoria, siendo necesarios otros 4k para memoria de pantalla y buffers.
¿Por qué importa?
Disfrute
Sin dudarlo, la motivación que dió origen al proyecto.
Todo empezó con algunas sesiones programando recreativamente en UF Forth. Tanto el lenguaje como la facilidad para interactuar con Varvara resultaron tan disfrutables que inicié el proyecto enjoying forth para compartir mi entusiasmo.
A ese disfrute le siguió el provocado por implementar, en un rato, un hack sensillo que me permitió ingresar caracteres del español sin toda la complejidad que implica agregar soporte utf8 al emulador. De pronto este entorno divertido y facil de comprender se volvió, además, familiar.
En cuanto pude empezar a expresar ideas de código usando palabras en mi lengua supe que valía la pena intentar una traducción completa del lenguaje.
Software situado
Si bién el artículo original de Clay Shirky hablaba de docenas de usuarios, hay varios aspectos en común entre curto y el enfoque que describe.
Resolver el problema de la localización para nuestra lengua en particular permitió adaptar UF al español en unas pocas lineas de código de una manera que, además, es simple de replicar para otras lenguas de nuestra región.
Este enfoque no abarca todas las lenguas del globo pero abre las puertas a implementaciones en mapudungún, quichua, guaraní, toba, etc.
Curto es un lenguaje mínimo y extensible en si mismo que corre sobre una máquina virtual mínima y comprensible. Es además una implementación modelo simple de adaptar a una diversidad de contextos socioculturales, una opotunidad de desplegar una riqueza potencial casi inexplorada en el ámbito de la programación.
Permacómputo
Al estar basado en UXN, curto hereda una serie de propiedades que lo enmarcan dentro de este concepto.
Su consumo de recursos es mínimo, corre sobre una máquina virtual que ya ha sido portada a una diversidad de plataformas (gba, ps vita, playdate, etc), es facil de comprender e implementar en una diversidad de contextos incluso sobre hardware considerado obsoleto según parámetros actuales, nace de y promueve la diversidad, es uno de los lenguajes de programación más simples y versátiles.
Investigación
En un momento en el que la diversidad y la decolonización de la informática son temas de discusión que ganan protagonismo, Curto se presenta como una nueva oportunidad de analizar el impacto de la lengua en la programación, el software situado y la programación de usuario.
Educación
Si bien existen otros lenguajes de programación en español curto cuenta con una serie de características que lo hacen ideal para aprender y enseñar a programar.
- Está escrito, mayormente, en si mismo por lo que su código fuente también se encuentra en español.
- Su código fuente está extensamente comentado.
- La programación se realiza en un entorno interactivo que permite iterar en el momento con feedbak inmediato.
- Cuenta con un decompilador que permite ver el código máquina al que es compilado, herramienta fundamental al momento de corregir errores o comparar implementaciones.
- Acceso total a la máquina virtual que lo aloja lo cual permite el desarrollo de aplicaciones multimedia.
- Posibilidad de exportar ROMs para una diversidad de plataformas (gba, vita, playdate, etc) lo que lo hace sumamente atractivo para el desarrollo de juegos.
Objetivos
Traducción completa
- Código kernel.tal ✓
- Código curto.f ✓
- README ✓
- GLOSARIO ✓
- Comentarios kernel.tal ✓
- Comentarios curto.f
Material didáctico
- Disfrutando curto
- Rosseta code✓
- Aprenda curto en y minutos (ya envié PR, queda esperar a que la acepten)
- Libro
Comunidad
- Wikipedia
- Comp Lang Forth
- Eso langs
- Asombroso curto
- Lista de correo
- Colaboración con docentes, investigadores e intstituciones educativas
- Curto en el territorio
¿Cómo participar del proyecto?
Código
Contribuyendo con correcciones y mejoras al código fuente en el repositorio.
Traducciones
Además de las traducciones necesarias para Curto en sí, hay una serie de documentos relacionados al proyecto que significarían un aporte interesante. Por ejemplo documentación de UXN que permitiría una mayor comprensión del sistema, papers relacionados con la decolonización de la informática, etc.
Si estás interesade en contribuir al proyecto de esta manera, no dudes en contactarme.
Otros idiomas
De por si les hablantes de lenguas originarias de nuestra región ya están forzades a ser bilingües como para además tener que lidiar con el inglés al momento de aprender a programar. Creo que en este sentido Curto puede ser interesante como punto de partida para realizar nuevas implementaciones en otras lenguas. La idea de contar con lenguajes de programación en lenguas que implican, además, cosmovisiones distintas de la colonizadora me entusiasma muchísimo.
Si estás interesade en realizar una nueva implementación en tu lengua, puedo acompañarte desde lo aprendido en el desarrollo de Curto para garantizar que tu implementación llegue a buén puerto. Contactame para ponernos manos a la obra.
Material didáctico
Cuanto más, mejor. No hace falta solicitar permiso alguno. Si has publicado material didáctico usando Curto me interesa contar con enlaces para agregarlos a este sitio y darle toda la difusión posible.
Investigación
Si estás realizando o planeas realizar algún tipo de investigación académica relacionada con Curto, etoy a disposición para brindar información sobre el proyecto, contestar preguntas y apoyar en la medida de mis posibilidades.
Difusión
La intención es que todo hispanohablante se entere de que ahora puede aprender, enseñar y programar en su lengua. Haciendo correr la voz, nos liberamos cada día un poco mas.
Tiempo
Cada centavo que suman les colaboradores y mecenas libera tiempo para avanzar y profundizar sobre este y otros proyectos.
Podés contribuir a la causa convirtiéndote en mecenas en patreon, o mediante la plataforma cafesito.