Je suis CyaNn, tous nouveau parmi vous et non sans joie.C'est antoine qui m'a chaleureusement recommandé ce site .
J'ai 33 ans et ai une expérience dans la programmation de 12 ans, du moins d'un point de vu professionnel. Par hobby, j'ai commencé à l'age de 9 ans. Vous allez comprendre ce qui m'amène !
Qu'est ce qu'Algoid
Algoid est un logiciel Android destiné à l'apprentissage de la programmation.
C'est un langage interprété propriétaire proche du C/javascript/python (mais fonctionnel et objet) destiné à l'apprentissage de la programmation et des paradigmes.
C'est également un IDE avec coloration syntaxique, auto-completion, DEBUGGER et PAS A PAS.
C'est comme en Logo, on doit faire bouger une tortue.... Mais pas seulement, si l'on cache la souris, on peu programmer son propre jeu avec un système très simple de bitmap.
Pourquoi cette App ?
J'ai initialement crée cette app pour l'anniversaire des 11 ans de mon fils Tony. Pour qu'il apprenne à programmer.
Mais je ne voulais pas qu'il commence sur du Logo, que je trouve trop éloigné des langages "standard" comme Java ou le C. Donc j'ai décidé d'écrire mon langage, dédié à l'apprentissage, donc syntaxiquement plus simple que du java, mais qui possède une sémantique aussi complexe que du Python.
Au finale, le résultat à dépassé mes espérances, je me rend compte que ce langage correspond aussi bien aux enfants qu'aux adultes. Je prend moi même plaisir, dans une salle d'attente ou dans les bouchons, à y imagines quelques petits jeux.
Pourquoi sur tablette ?
Déjà parce que les tablette sont moins cher que des PC, ce qui rend le projet très abordables aux plus jeunes.
Ensuite parce qu'il n'existe pas de langage interprété sur tablette qui possède un debugger et un explorateur de portée. Ce qui, à mon sens est indispensable pour apprendre la programmation.
Et enfin parce qu'une tablette, ou un smartphone, c'est transportable et toujours dans la poche pour coder un truc dés qu'on a une idée géniale.
Pourquoi un nouveau langage ?
Parce qu'enfant, j'ai été très frustré lorsque j'ai eu fait le tour de la programmation procédurale du Basic.
Logo est très bien, mais uniquement fonctionnel.
Je voulais un langage d'apprentissage qui ne ce limitait pas à un seul paradigme.
AL est impératif, fonctionnel, orienté objet, il gère la MOP, il est aussi orienté aspect, bref de quoi s'amuser un moment.
Bref il est aussi complêt que python (et aussi rapide également) mais dans une syntaxe plus simple.
Où est-ce que ça ce passe ?
Son site : http://www.algoid.net/
Sa page play store : https://play.google.com/store/apps/details?id=fr.cyann.algoid&hl=fr
Et... à quoi ça ressemble ?
Et bien à ça :
Un petit moteur 3d basé sur des splines scripté dans le langage AL
Un exemple du très célèbre space invader :
J'éspère que cette petite description vous aura plu et vous aura rendu curieux de découvrir Algoid et son langgage AL.
A bientôt !
CyaNn
- Edité par CyaNn 11 juin 2013 à 8:58:51
Découvrez Algoid le langage pour apprendre à programmer.
Très bonne idée d'application, qui en plus à l'air d'avoir était bien réalisée. Malheureusement, je ne dispose pas de smartphone ou de tablette sur android, donc je n'ai pas pût tester réellement l'application.
D’ailleurs est-ce qu'une version pour d'autre support (ios, pc ) est prévue ?
Oui une version est prévu sur PC et en applet (directement incorporé au navigateur web).
J'aimerai également packager une version pour RaspberryPI. Mais tu t'en doute, tout cela prend du temps.
Bon c'est du Java, donc une bonne partie est réutilisable en l'état (parseur + langage). Il reste néanmoins toute la gestion des entrées / sorties.... Et en fait il y a passablement de choses.
Ca et le milliard de petites choses à coté (tutos, annonces, maintenance du forum, corrections en tous genres, création d'exemples).... bref. affaire à suivre.
Voici d'ailleurs quelque autre captures d'écrans :
En mode debug :
L'explorateur de portée (pour voir les variables locales)
Vala ^_^, merci encore !
- Edité par CyaNn 23 mai 2013 à 10:20:29
Découvrez Algoid le langage pour apprendre à programmer.
[Re]bonjour,
J'ai découvert et essayé Algoid il y a 2 3 jours et je pense l'avoir suffisamment essayé sur mon Archos A43 (sous FroYo) pour le juger.
Alors je te préviens tout de suite, je vais être un peu méchant. Je vais commencer par lister ce qui, à mon avis, ne va pas.
L'interface
L'éditeur
Mais où est le copier-coller ??? J'utilise Jota pour dupliquer les lignes...
L'indentation lorsque qu'on insère des accolades avec le bouton fait parfois quelques caprices, mais rien de grave.
Il a fallu que je regarde une de tes vidéos pour que je comprenne qu'on pouvait faire défiler les symboles "() {} [] , ;" en bas de l'écran... Il faudrait mettre une rapide explication de l'interface au premier lancement de l'appli comme c'est le cas pour EStrongs File Explorer.
Et si tu pouvais faire en sorte que l'on puisse régler la taille de la police et le type (juste la possibilité d'utiliser une monospace), ça serait bien. Les monospaces c'est pas joli mais c'est pratique :).
Le reste
La référence est longue, un sommaire et un index ne seraient pas du luxe.
Les programmes d'exemples sout tous en Anglais.
Met des majucules aux éléments de l'interface, c'est plus joli (bon je sais c'est assez subjectif)...
Le langage, l'interprêteur
Pas au point...
L'instruction return ne fonctionne pas dans les boucles (mais ça tu le sais).
Les messages d'erreur relèvent de la grande poésie :-)
Error occured :
Variable [item.rotgateX()] not
found for type [OBJECT] in
object (object#528) [clone, x, y,
z, px, py, FOCAL, this, rotateX,
rotateY, transformPersp] =>
scope (root) [count, a, al, util,
ui, text, math, algo, pt3d, face,
render, pts, faces, b, ax, ay,
anchor, rotate] !
Moi qui pensait qu'il n'y avait pas pire que GCC... :-)
Dans les définitions de tableaux, les commentaires ne marchent pas (tu le sais aussi) :
set a = array {
0, /* bug */
1, // another bug
2
}
Voilà, je crois que j'ai rien trouvé d'autre... :-)
Maintenant, je vais lister tout ce qui me plait.
L'interface
L'éditeur
Les symboles "() {} [] , ;" font gagner du temps, la coloration syntaxique est bien, et l'autocomplétion, c'est super.
Le undo / redo
Les points d'arrêt (mais c'est par hazard que j'ai découvert comment les ajouter facilement : suffit de laisser le doigt appuyé dans la marge de gauche :-( )
La fonction pour déplacer le code du forum vers l'éditeur et vice / versa.
Le langage / l'API
Il est nouveau : ce n'est pas du Javascript, ni du Python. Le sujet est trop vaste pour une description ici, l'idéal c'est de tester. Et il est puissant et vraiment preformant.
Il n'est pas très compliqué, même si on ne peut pas pour autant affirmer pour autant que ce soit l'idéal pour apprendre à programmer.
L'API graphique est vraiment super, avec des performances exellentes ! Rien à voir avec BASIC! par exemple. Les rendus de cubes en 3D sont très fluides, et demandent peu de ressources.
Une appli qui a nécéssité des heures et des heures de travail, bien faite ; et si ce n'est pas un IDE, c'est nettement plus qu'un éditeur de texte couplé d'un interpréteur. L'une des meilleures dans sa catégorie, mais encore inachevée.
A propos de catégorie, on peut difficilement la classer : SL4A, c'est du Python (pas trop d'interface graphique...) ; BASIC!, ben c'est du BASIC ; AIDE, c'est beaucoup mieux mais c'est payant et ça compile en exécutables...
J'invite vraiment à essayer, ça en vaut la peine.
Je suivrait de près ce projet.
- Edité par antoine1023 23 mai 2013 à 19:08:50
Arius, vraiment le plus puissant de l'ancienne Ligue des Super Zéros !
Non, je ne trouve pas ta critique dure, mais constructive.
Pour le return, zut, je regarderais. J'ai du me battre pour une histoire de performances et faire un truc pas joli. Du coup ça marche pas très bien. ok. je corrigerais.
Les messages d'erreurs pourraient effectivement être améliorés.
Concernant le coté "peu éducatif" du langage, c'est discutable.
JE (mais ça n'engage que moi) pense que les plus jeunes ne sont pas rebutés par la syntaxe des langage mais plus par leur manque de cohérence. As tu remarqué que toutes les structures de contrôles ont la même forme : array {}, function (){}, object () {} et sont toutes anonymes.
De plus, JE (là encore) pense qu'il est dommage de ce familiariser avec une syntaxe pour ensuite l'abandonner au profit des langages "à la mode" dans l'industrie. D'ou la syntaxe inspirée du C.
Mais je suis d'accord, c'est très discutable. J'attend de voir mon grand fils de 11 ans à l'oeuvre pour mieux comprendre ses besoins et ce sur quoi il bloque.
Voilà, pour le reste, comme dit, je suis tout à fait d'accord. Je vais noter ces remarques et les traiteraient à mesure.
Sachant que : ce projet m'a pris 15 mois de développement soir et week-end, il est totalement gratuit, le restera, donc, je ne suis pas payé pour cela. Les dons recoltés jusque là ont servis à payer l'hébergement et le nom de domaine.
Donc comme tout travail bénévole ben ça prendra le temps qu'il faut ^_^
Vala. Merci d'avoir pris le temps d'écrire ton retour qui est très enrichissant. Et j'espère que tu continuera à poster tes super programmes sur le forum ;-)
a+
Découvrez Algoid le langage pour apprendre à programmer.
Eh
Je viens de découvrir ça :
http://www.algoid.net/help.php?name=help&url=help_FR&mobile=false
C'est super mais je le vois un peu tard... A mon avis, il faudrait vraiment que tu affiche ce genre d'aide au premier démarrage de l'appli. Je sais, je l'ai déjà dit, mais j'insiste :-) .
Arius, vraiment le plus puissant de l'ancienne Ligue des Super Zéros !
Pour ce qui est du copier / coller, normalement android permet d'avoir un menu contextuel si tu clique sur le curseur triangulaire en bas de ta selection. Mais effectivement ça fait assez fonction cachée.
Découvrez Algoid le langage pour apprendre à programmer.
On pourrait penser que c'est une histoire de références. Et les sous-tableaux {39, 0} pointeraient vers un unique élément '39'. Et quand on fait i++ ben tout les sous-tableaux affichent une valeur différente.
Mais ça m'éttonerait que ce soit le cas car :
set a = array {}
for (set i = 0 ; i < 40 ; i++) {
a.add(array {i + 1 - 1, 0})
}
génère exactement le même résultat.
Bref, si c'est un vilain bug, j'espère que ce sera vite réglé. :-)
Arius, vraiment le plus puissant de l'ancienne Ligue des Super Zéros !
Quand au copier - coller, je n'ai jamais vu de curseur triangulaire sur l'éditeur d'Algoid. Mais ça a du être rajouté sous Andro 2.3 ou 3.0 sur toutes les boites de texte, parce que je suis sous FroYo, moi. :-)
Arius, vraiment le plus puissant de l'ancienne Ligue des Super Zéros !
Pour ton premier problème, ok je regarderais. En effet, pour obtimiser je réutilise au maximum les variants, normalement il doit copier les valeurs, mais là visiblement non !!!!
Je regarde !
Pour froyo en effet, tu as raison, il n'y a pas de triangle sous le curseur. Du coupe en effet, pas de copier/coller.
Mais ta remarque m'a donné une idée (la nuit porte conseille) et je croie que je sais ce que je vais faire bientôt.
- Edité par CyaNn 24 mai 2013 à 11:09:21
Découvrez Algoid le langage pour apprendre à programmer.
Vala, pour le problème des arrays, c'est corrigé -> v1.1.5
(15 min chrono, trop fort ^_^)
ça venait bien d'une optimisation qui consistait à réutiliser les tableaux définit dans la sémantique. Résultat, il utilisait toujours le même, la référence devenait fausse.
Par contre maintenant, les prefs du moteur 3d de spline devrait c'en ressentir un peu.... on peu pas tout avoir, le beurre, l'argent du beurre...
Bref, ce sera bon ;-)
- Edité par CyaNn 24 mai 2013 à 11:17:53
Découvrez Algoid le langage pour apprendre à programmer.
J'ai contourné le problème en utilisant un tableau d'objets au lieu d'un tableau de tableau... Mais j'ai hate de voir la nouvelle version. (enfin le copier-coller !)
Arius, vraiment le plus puissant de l'ancienne Ligue des Super Zéros !
Tout d'abord bravo, c'est vraiment une très belle app agréable visuellement.
J'aurais quand même trois critiques:
Les commentaires écrits en anglais, je pense que donnais la possibilités de choisir entre français ou anglais pourrait intéressante.
Il manque un bouton run (peut être que le mettre en haut pourrait être une bonne idée)
Critiques qui n'en ai pas vraiment une, l'appli ne s'adapte pas à tout les écrans. Mais rassures toi même certaines app très connu ne le font pas et je sais combien c'est difficile de devoir s'adapter à toute les tailles d'écrans.
Pour finir ce que j'ai vraiment apprécié c'est la suivie de l’exécution du code, ça c'est vraiment une bonne idée. Ça permet de bien faire comprendre comment un code est exécute.
EDIT:
Je te donne la taille de mon écran (si jamais ça t'intéresse ^^): LCD 4.8" hXGA (1024 x 480)
Pour l'écran c'est étrange, car tout s'adapte normalement !!!! J'ai testé sur 3 devices sans problème. Mais bon je vais regarder. Effectivement les dimensions que tu me donne sont exotiques. C'est le background d'Algo qui soit être trop petit..... rhaaa....
Pour le bouton run, ça effectivement ça dépend des devices, normalement sur tablette, le menu run est visible en haut à droite. Mais c'est pas vrai sur les petits devices.
Après j'ai un souci de place, je ne sais jamais ou tout mettre (tellement il y en as ^_^)
Pour les commentaires en anglais. Bah oui, antoine m'a fait la même remarque. Je vais voir. Je gère déjà tout le reste (tuto, aide et interface en français / anglais).... ouep vais voir......
Sinon pour le reste, et bien merci. Je suis content de mettre inscrit sur ce forum, je voie qu'il bouge, ça me change. ;-)
Dés que j'ai un moment j'irai embêter mes voisins de poste.... lol.
Découvrez Algoid le langage pour apprendre à programmer.
C'est vrai q'une petite barre d'outils avec les boutons les plus utilisés serait pas mal. Bon je sais il a déjà Annuler, refaire, partager. Mais je sais pas ce que tu en penses, mais moi j'aurai mis "partager" dans le menu parce que ce bouton n'est pas très utilisé. Alors que les maniaques du Ctrl+S comme moi doivent faire fréquemment un pénible trajet "Menu" -> "Fichier" -> "Sauver" :-)
Bref moi je dis :
Menu
Fichier
Partager
Paramètres
Formater
Aide
Contribuer
Exécuter pas à pas
Barre d'outils
Enregistrer
Undo / Redo
"" () // {} [] et autres symboles mais ça y es déjà et c'est super :-)
Run
Qu'en penses-tu ?
EDIT : J'ai trainé pour poster ça et j'ai pas vu ton précédent message CyaNn :-)
- Edité par antoine1023 24 mai 2013 à 15:43:13
Arius, vraiment le plus puissant de l'ancienne Ligue des Super Zéros !
Oui c'est vrai j'ai un écran éxotique, d'ailleurs je trouve rarement des app qui s'adapte parfaitement à mon écran ><. Pour ma part j'aurais mis run à la place de partager, c'est quand même le bouton qui va être le plus utilisé ^^.
Kami => peu tu s'il te plaît, m'envoyer une capture d'écran de ton device pour que je puisse corriger. Je n'arrive pas à émuler une config comme la tienne... lol....
Découvrez Algoid le langage pour apprendre à programmer.
Alors non : le ; n'est jamais obligatoire avec Algoid, même quand plusieur instructions sont sur la même ligne. CyaNn reccomande pourtant de l'utiliser (mais bon moi je n'en ai jamais mis :-) )
Quand à la boucle for, ben oui pourquoi pas autoriser une syntaxe à la Java pour les tableaux :
for (i : monTablo) ... ;
Mais bon, il y a déjà array.each() ...
Et puis, je pense que la priorité est actuellement de corriger les 2-3 bugs restants de l'interpreteur :-)
Arius, vraiment le plus puissant de l'ancienne Ligue des Super Zéros !
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.