Voici une liste générale des fonctionnalités. Pour tout voir, il vous faudra parcourir la référence.
turtleSpaces repose sur une implémentation complète de l’environnement Apple (LCSI) Logo. On a dit de Logo qu’il était « le langage informatique le plus puissant et le plus convivial jamais implémenté sur un ordinateur personnel ». (David Thornburg)
Logo est un langage « fonctionnel » fondé sur des « primitives » (des commandes) qui se renvoient mutuellement leur sortie – on peut les enchaîner pour récupérer, calculer et transformer des données de diverses manières avant de les stocker ou d’agir en conséquence.
Les utilisateurs peuvent créer des « procédures » qui se comportent exactement comme des primitives (et peuvent les remplacer). Une procédure peut prendre des paramètres et renvoyer une sortie, tout comme une primitive. Prenons la primitive product , qui multiplie deux nombres :
to product :a :b
make "result 0
repeat :a [make "result sum :result :b]
output :result
end
Nous avons de fait remplacé product par notre propre procédure.
Logo a été conçu au départ comme un terrain de jeu linguistique pour les enfants. De ce fait, il gère très puissamment les chaînes et les « listes » (un tableau d’« éléments »), comme [pig duck cow] ou [[Bob 53][Frank 22][Sue 34]]. Diverses primitives permettent de construire, trier et réordonner les listes et les chaînes, appelées « mots » en Logo.
La tortue a été ajoutée à Logo plus tard, mais elle en est devenue la caractéristique la plus reconnaissable. La tortue est un « curseur » graphique qui se déplace relativement à lui-même, contrairement aux autres systèmes graphiques « absolus » (même si l’on peut aussi travailler en absolu en Logo). Vous dites à la tortue d’avancer et de tourner, et elle le fait par rapport à sa position et à son orientation.
Dans turtleSpaces, nous avons ajouté aux tortues des capacités considérables :
Les tortues peuvent occuper plusieurs space s, et elles peuvent être réparties entre ces espaces (newspace selectspace). Chaque espace est une toile tridimensionnelle infinie.
N’importe quelle tortue peut servir de caméra, sélectionnée avec setview. Vous pouvez changer la position de la caméra par rapport à sa tortue avec setviewpoint. Les tortues font aussi office de lumières – elles peuvent être une lumière directionnelle, une lumière ponctuelle, ou pas de lumière du tout.
Les procédures et les variables (containers), ainsi qu’un certain nombre de réglages, sont propres à chaque tortue. Vous pouvez share des conteneurs entre tortues, et partager des procédures grâce à la tortue spéciale libby (bibliothèque).
Les tortues sont « conduites » par des workers , qui sont des fils d’exécution. Un worker peut conduire plusieurs tortues (l’une après l’autre), ou plusieurs workers peuvent conduire plusieurs tortues. Plusieurs workers peuvent même (essayer de) conduire la même tortue ! Les workers et les tortues ne sont pas la même chose. Voyez les tortues comme des voitures, et les workers comme des conducteurs.
Vous pouvez vous connecter en telnet à turtleSpaces et piloter un worker depuis un terminal ou une autre application (API).
Là où les tortues Logo traditionnelles ne savent que tracer des lignes ou remplir des surfaces, turtleSpaces s’appuyant sur OpenGL, nous disposons de bien d’autres shapes que l’on peut créer, dont :
Vous pouvez speckle (ou pixelliser à la Minecraft) des voxels et des quads. Vous pouvez créer des tracés à base de pixels (en 2 et en 3 dimensions) et vous en servir comme speck
Les primitives sonores comprennent la traditionnelle toot (tone), noise (qui produit un bruit blanc), playnotes , et vous pouvez playmusic pour jouer de la musique créée avec le tracker intégré. Vous pouvez aussi utiliser le synthétiseur vocal de votre système d’exploitation avec say (macOS et Linux)
turtleSpace a des utilisateurs. Vous vous « connectez » en tant qu’utilisateur pour utiliser turtleSpaces.
Les espaces de travail des utilisateurs sont enregistrés sous forme de dossiers « turtleSpace » (TSP). Ces dossiers enregistrent chaque modification apportée aux procédures et permettent de revenir à n’importe quelle étape du développement (undo , redo). Ce que vous tapez à l’invite interactive est également enregistré.
Des instantanés sont créés lors d’un save ou d’un takesnapshot – le point de sauvegarde est l’état dans lequel l’espace de travail est restauré lors de son chargement. Mais vous pouvez continuer à développer et revenir à l’état « courant » avec load autosave. Vous pouvez créer une « couverture » persistante (utilisée dans le cat alogue) avec takecover
L’invite interactive possède un historique lisible par programme (historycount historyitem historylist).
La première fois que vous ouvrez l’IDE, Shelly la tortue vous le fait visiter : la barre de menus, l’espace de travail, les commandes d’exécution, la console, la vue 3D et les Exemples. Cela prend environ une minute, et Shelly peut le lire à voix haute. Pour la revoir, choisissez Aide → Bienvenue. Vous pouvez aussi lire la même visite sur le site.
Quand un programme s’arrête sur une erreur, Shelly apparaît et propose de demander à Claude de l’expliquer. Qu’est-ce que ça veut dire ? explique l’erreur en général. Explique-le dans mon code explique ce qui n’a pas marché dans votre propre programme. Essayez une faute de frappe :
forwrd 50
L’aide de Shelly sur les erreurs apparaît quand vous êtes connecté.
Une fois connecté, l’éditeur a un onglet Claude, l’assistant de code par IA, où vous pouvez poser des questions sur Logo et sur votre programme. Le bouton rond de Claude, en haut à droite de l’éditeur de texte et de l’espace Blocs, propose trois choix : Comment procedure ajoute des commentaires à la procédure, Explain with Claude explique la procédure ou tout le programme en langage simple, et Teach Me How en fait un Turtorial.
Les réponses de l’IA peuvent être fausses : vérifiez-les. Voir AI features dans la Politique de confidentialité pour savoir ce qui est envoyé.
Un Turtorial est une leçon que Shelly prépare à partir d’un programme. Au lieu de vous donner la réponse, il vous guide pour construire le programme vous-même, étape par étape, avec des indices, de petites questions et un bouton Vérifier mon travail. Il est adapté au niveau de l’apprenant d’après les badges obtenus ; sans information, il suppose un débutant.
Le Turtorial démarre dans un espace de travail vide : si vous avez des modifications non enregistrées, il vous propose d’abord de les enregistrer. Si vous vous arrêtez en cours de route, choisissez Aide → Resume pour reprendre là où vous en étiez, dans le même navigateur. Il faut être connecté.
Besoin d’une idée ? Chaque jour, un nouveau mot créatif s’affiche dans la console au démarrage de l’IDE. Il change à minuit UTC. Créez quelque chose sur ce thème, ajoutez l’étiquette Consigne du jour en publiant, puis parcourez la galerie pour voir ce que les autres ont fait aujourd’hui.
L’IDE et ce site sont disponibles en English, Español, Français, 日本語 et Polski. Choisissez la langue dans Réglages → Langue. Les commandes Logo restent en anglais dans toutes les langues, les exemples de code fonctionnent donc partout.