mdr1 wrote:Hayleia wrote:En Axe, dans le code d'un débutant, t'as les variables A à Z (même pas theta). Rien à déclarer,
C'est sûr que ne pas avoir de thêta ni de déclaration simplifie vachement le code, c'est connu. Mais il est encore plus connu que ne pas avoir de nom explicite pour les variables est une calamité à lire, surtout quand les variables se baladent dans tout le code.
Ça, c'est peut-être que mon avis, mais je trouve que trop de déclarations nuisent à la lisibilité. On finit par se demander où commence le code. Sans rire, je mets même souvent mes déclarations à la fin en Axe pour avoir le début du code au début de la source, tout simplement. Vous pouvez demander à nikitouzz, je lui ai passé quelques codes en MP, il confirmera que certes j'ai des déclarations au début, mais j'ai aussi des déclarations à la fin.
Le fait de ne pas avoir de theta rend lisible, oui, car du coup tu sais que toutes les lettres ont le même type et tu n'as pas à te demander si la lettre grecque suit la même règle (voir le "paragraphe" suivant ou mon post précédent).
Les noms de variables explicites sont possibles en Axe mais pour ceux qui codent sur calculatrice, un nom de 13 lettres nuit gravement à la lisibilité vu que l'écran fait 16 caractères de large. À part ça, le T mentionné plus haut est très explicite, il s'agit d'un compteur, T comme Timer, tout va bien. Par contre, comme je code sur PC, j'utilise parfaitement des noms de variable explicites.
mdr1 wrote:Hayleia wrote:tu lis juste la première ligne de son code0→A
et t'as compris que toutes les lettres sont des variables globales "de type nombre".
Cet exemple est moisi, tu peux également faire "A = 0" en Lua (avec le bon sens d'affectation au passage).
Je ne disais pas ici que 0→A est facile à comprendre, ça aurait effectivement été bien moisi. Je disais que cette ligne te permettait de comprendre que les lettres A-Z sont des variables de type nombre.
Et le bon sens d'affectation est bien Source→Dest parce que tu ne mets pas dans le panier la balle, mais la balle dans le panier. De plus, "mets la balle dans le panier" te donne les objets dans l'ordre ou tu les rencontre quand tu exécutes, tu prends bien la balle avant de la mettre dans le panier. De même, le code va d'abord évaluer 0 puis le ranger dans l'emplacement mémoire correspondant à A.
mdr1 wrote:Hayleia wrote:Quand au registre hl, dans le code d'un non débutant il faut effectivement comprendre qu'il se balade, mais dans le code d'un débutant tu peux oublier hl.
Tu qualifies un langage par la façon naïve dont programme un débutant ?
Je n'ai pas dit ça, je dis juste que l'Axe n'est pas "conçu pour être illisible". Parce qu'évidemment, si on prend toujours comme exemple le code illisible d'un pro, tout langage est conçu pour être illisible.
mdr1 wrote:Hayleia wrote:Regarde dans le code que j'ai posté plus haut (qui commence par T++), on aurait pu utiliser hl deux fois en écrivantT++:!If -256:→T:End
(ou en une ligne :T++-256??→T
(ou en optimisé :{°T}++
)), mais on ne l'a utilisé pour des optimisations nulle part.
Et si vous dites que mes icodes dans mes parenthèses sont illisibles... je suis d'accordmais ne dites pas que l'Axe en général est illisible, juste que les codes Axe que vous voyez sur le chat le sont (ce qui est vrai).
Bonjour la scission entre débutants et experts, bien pire que pour les métatables en Lua.
Ça, je ne dis pas. Mais je trouve au contraire qu'il est bien de pouvoir progresser. En plus, l'Axe est souvent mentionné comme une transition entre le Basic et l'ASM (même si je ne sais pas si quelqu'un a vraiment fait du Basic puis de l'Axe puis de l'ASM), il est donc logique d'avoir d'abord du code lisible comme du Basic, puis de moins en moins lisible car on comprend comment tout fonctionne, puis de l'ASM où on décrit absolument tout le fonctionnement du programme.