Esta es una lista general de características. Para verlo todo, tendrás que explorar la referencia.
turtleSpaces se basa en una implementación completa del entorno Apple (LCSI) Logo. De Logo se ha dicho que es «el lenguaje de programación más potente y fácil de usar jamás implementado en un ordenador personal». (David Thornburg)
Logo es un lenguaje «funcional» basado en «primitivas» (comandos) que se devuelven su salida unas a otras: se pueden encadenar para recuperar, calcular y transformar datos de distintas maneras antes de guardarlos o de actuar en función de ellos.
Los usuarios pueden crear «procedimientos» que se comportan igual que las primitivas (y pueden sustituirlas). Un procedimiento puede recibir parámetros y devolver una salida, igual que una primitiva. Tomemos la primitiva product , que multiplica dos números:
to product :a :b
make "result 0
repeat :a [make "result sum :result :b]
output :result
end
Así hemos sustituido en la práctica product por nuestro propio procedimiento.
Logo se concibió originalmente como un terreno de juego lingüístico para la infancia. Por eso maneja con mucha potencia las cadenas y las «listas» (un conjunto de «elementos»), como [pig duck cow] o [[Bob 53][Frank 22][Sue 34]]. Hay diversas primitivas para construir, ordenar y reordenar listas y cadenas, que en Logo se llaman «palabras».
La tortuga se añadió a Logo más tarde, pero acabó siendo su rasgo más reconocible. La tortuga es un «cursor» gráfico que se mueve con respecto a sí mismo, a diferencia de otros sistemas gráficos «absolutos» (aunque en Logo también puedes trabajar en absoluto). Le dices a la tortuga que avance y que gire, y lo hace en relación con su posición y su orientación.
En turtleSpaces hemos añadido a las tortugas mucha funcionalidad adicional:
Las tortugas pueden ocupar varios space s, y pueden repartirse entre ellos (newspace selectspace). Cada espacio es un lienzo tridimensional infinito.
Cualquier tortuga puede ser una cámara, elegida con setview. Puedes cambiar la posición de la cámara respecto a su tortuga con setviewpoint. Las tortugas también actúan como luces: pueden ser un foco, una luz puntual o ninguna luz.
Los procedimientos y las variables (containers), junto con varios ajustes, son propios de cada tortuga. Puedes share contenedores entre tortugas, y compartir procedimientos mediante la tortuga especial libby (biblioteca).
A las tortugas las «conducen» los workers , que son hilos de proceso. Un worker puede conducir varias tortugas (una tras otra), o varios workers pueden conducir varias tortugas. ¡Varios workers pueden (intentar) conducir la misma tortuga! Workers y tortugas no son lo mismo. Piensa en las tortugas como coches, y en los workers como conductores.
Puedes conectarte por telnet a turtleSpaces y manejar un worker desde un terminal u otra aplicación (API).
Mientras que las tortugas de Logo tradicionales solo pueden trazar líneas o rellenar espacios, como turtleSpaces se basa en OpenGL disponemos de otras muchas shapes que se pueden crear, entre ellas:
Puedes speckle (o pixelar al estilo Minecraft) voxels y quads. Puedes crear gráficos basados en píxeles (en 2 y 3 dimensiones) y usarlos como speck
Entre las primitivas de sonido están la tradicional toot (tone), noise (que genera ruido blanco), playnotes , y puedes usar playmusic para reproducir música creada con el tracker integrado. También puedes usar el sintetizador de voz de tu sistema operativo con say (macOS y Linux)
turtleSpace tiene usuarios. Para usar turtleSpaces «inicias sesión» como usuario.
Los espacios de trabajo de los usuarios se guardan como carpetas «turtleSpace» (TSP). Esas carpetas guardan cada cambio que haces en los procedimientos y permiten volver a cualquier fase del desarrollo (undo , redo). Lo que escribes en el indicador interactivo también se guarda.
Las instantáneas se crean al hacer save o takesnapshot : el punto de guardado es el estado al que se restaura el espacio de trabajo cuando se carga. Pero puedes seguir desarrollando y volver al estado «actual» con load autosave. Puedes crear una «portada» persistente (que se usa en el cat álogo) con takecover
El indicador interactivo tiene un historial que se puede leer mediante código (historycount historyitem historylist).
La primera vez que abres el IDE, Shelly la tortuga te lo enseña: la barra de menús, el espacio de trabajo, los controles de ejecución, la consola, la vista 3D y los Ejemplos. Dura más o menos un minuto, y Shelly puede leerlo en voz alta. Para verlo otra vez, elige Ayuda → Bienvenida. También puedes leer el mismo recorrido en la web.
Cuando un programa se detiene con un error, Shelly aparece y ofrece que Claude te lo explique. ¿Qué significa esto? explica el error en general. Explícalo en mi código explica qué ha fallado en tu propio programa. Prueba con una errata:
forwrd 50
La ayuda de Shelly con los errores aparece cuando has iniciado sesión.
Con la sesión iniciada, el editor tiene una pestaña Claude, el asistente de código con IA, donde puedes hacer preguntas sobre Logo y sobre tu programa. El botón redondo de Claude, arriba a la derecha del editor de texto y del espacio de Bloques, ofrece tres opciones: Comment procedure añade comentarios al procedimiento, Explain with Claude explica el procedimiento o todo el programa con palabras sencillas, y Teach Me How lo convierte en un Turtorial.
Las respuestas de la IA pueden equivocarse, así que compruébalas. Consulta AI features en la Política de privacidad para saber qué se envía.
Un Turtorial es una lección que Shelly prepara a partir de un programa. En lugar de darte la respuesta, te guía para que construyas el programa tú mismo, paso a paso, con pistas, preguntas rápidas y un botón Revisar mi trabajo. Se ajusta al nivel de quien aprende según las insignias que ha conseguido; si no sabe nada, supone que empiezas desde cero.
El Turtorial empieza en un espacio de trabajo vacío, así que si tienes cambios sin guardar te pide guardarlos antes. Si lo dejas a medias, elige Ayuda → Resume para seguir donde lo dejaste en el mismo navegador. Necesitas haber iniciado sesión.
¿Buscas una idea? Cada día hay una palabra creativa nueva, que aparece en la consola al abrir el IDE. La palabra cambia a medianoche UTC. Haz algo sobre ella, márcalo con Propuesta de hoy al publicarlo y busca en la galería lo que han hecho los demás hoy.
El IDE y esta web están disponibles en English, Español, Français, 日本語 y Polski. Elige el idioma en Ajustes → Idioma. Los comandos de Logo siguen en inglés en todos los idiomas, así que los ejemplos de código funcionan en todas partes.