Les Casio et TI utilisent depuis longtemps un langage dérivé du basic, mais comme il a été intégré différemment les scripts Casio ne tournent pas sur TI et la réciproque est vraie. Cette stratégie à longtemps pénalisé le développement de l'algorithmique, car gérer 30 à 40 élèves avec des calculatrices différentes est complexe en algorithmique.
Fort heureusement, les nouveaux programmes de mathématiques, ont imposé un nouveau langage unique : le Python. Ce qui fait qu'en théorie tout script de base sera utilisable sur les trois grandes marques de calculatrices : Casio, NumWorks et TI.
Tout pourrait être parfait sauf que les constructeur commencent à implémenter dans leurs calculatrices des librairies non standardisées. Donc la fragmentation risque de se reproduire, et elle est dommageable !
À cette fragmentation entre calculatrices (et elle sera inévitable, probablement voulue par les fabriquants eux-mêmes dans une logique de segmentation du marché) s'ajoute une deuxième fragmentation, l'impossibilité de coder ces scripts depuis l'IDE de son choix.
Pour développer un projet graphique sur Numworks (un démineur, présenté ici, amélioré ici) j'ai cherché en vain à utiliser Kandinsky sur un IDE de PC.
Il faut être naïf pour chercher à utiliser une librairie propriétaire sur une IDE tiers. Je plaide coupable.
J'ai donc du développer sur l'interface du workshop, qui a des atouts mais pas que.
Un éditeur python optimisé pour un écran 4k, il n'y a que ça de vrai.
Imposer un IDE pose des problèmes, en théorie on devrait avoir le choix de son IDE et coder sur un IDE qu'on connait permet d'être plus efficace.
J'ai donc soumis l'idée de "porter" Kandinsky sur PC, c'est à dire de faire en sorte que l'on puisse développer ou exécuter n'importe quel script NumWorks sur un IDE de son choix. Immédiatement des développeurs de Omega ont trouvé cette idée intéressante, et on commencé à chercher comment le faire avec leurs outils et leur connaissance du code de Epsilon, pour reprendre leur mots : "On va juste faire un vrai ide pour NumWorks online".
De mon coté j'imaginais juste coder les fonctions de Kandinsky avec un élève qui maîtrise déjà tkinker ou une bibliothèque graphique standardisée, pour émuler une NumWorks (tout du moins la couche graphique avec un écran contraint).
En fait cette problématique a déjà été rencontré lors du défi historique d'octobre 2019, et Pavel avait transcrit le script sous tkinter et de notre coté nous avions recodé et reproduit le fonctionnement du script original également sous tkinter.
Aussi je propose de constituer deux équipes.
L'équipe des pros, des membres de la team de dev de Omega qui veulent faire un simulateur NumWorks en exploitant le code de Epsilon.
L'équipe des amateurs, qui veulent juste porter les différentes fonctions de Kandinsky, Ion etc pour pouvoir coder sur un IDE Tiers.
Bien évidemment, il est interdit de solliciter Critor pour se faire aider sinon c'est trop facile, mais celui-ci peut aider un peu pour rétablir l'équilibre (donc à priori il doit aider les amateurs ! )
Bonus : Profiter de ce dev pour intégrer des outils qui évaluent lors de l’exécution du script la taille qu'il prend en mémoire, en ainsi sensibiliser le développeur aux seuils de 16ko / 32 ko qu'il ne faut pas dépasser.
(Version : Si > 16ko recommander Omega et envoyer un mail à NumWorks pour se plaindre, si > 32ko envoyer un mail à Omega pour se plaindre )
Délais : Il faut un bon mois à l'équipe des amateurs ! Les pros devront rendre leur copie avant !