Le langage FuncSug
FuncSug est un langage
de script innovant et expérimental, spécialement conçu pour simplifier
la programmation des interfaces graphiques (GUI).
Entièrement compatible avec l'écosystème JavaScript, ce langage vous
permet de continuer à utiliser vos outils préférés tout en explorant de
nouvelles possibilités
Ce langage se distingue par une exécution des instructions respectant davantage l'ordre d'écriture.
FuncSug offre une approche alternative aux syntaxes événementielles
traditionnelles en introduisant des syntaxes concurrentes intuitives et
conviviales.
Actuellement, FuncSug est
conçu pour le développement web.
💻 Si tu as déjà des bases en JavaScript, FuncSug pourrait bien te faciliter la vie. 😉
D'autres caractéristiques de FuncSug :
- Exécution parallèle explicite : Il permet de lancer plusieurs actions en parallèle de manière intuitive.
- Gestion des annulations de tâches : Les tâches, y compris les délais d'attente, peuvent être annulées facilement.
- Réactivité aux changements de variables : Il peut détecter les modifications de valeurs et réagir en conséquence.
- Déterminisme : Il n'utilise pas les threads, ce qui lui permet d'avoir toujours le même ordre d’exécution.
💻🚀 Si l'envie te prend d'explorer un peu plus, jette un œil à ces ressources :
🧪 Dans le le bac à sable, vous pouvez vous entraîner et tester quelques exemples de code.
Je serais ravie d'avoir ton retour d'expérience ou de recevoir un commentaire de ta part ! 😍
🚀 Bonne visite et bon codage !
****
👩💻 Mon premier programme avec FuncSug 🧪
J'ai codé ce premier programme que l'on code quand on découvre un nouveau langage : "Hello world"
la syntaxe en FuncSug pour cette instruction est :
displayNewMessage("Hello world !")
Bon pour ce premier programme rien de bien convainquant par rapport à JavaScript :
body.innerHTML += '<p class="display">Hello world !</p>'
Mais quand même, je n'ai pas eu à m'occuper des balises de la class car la fonction FuncSug s'en est occupée à ma place.
👩💻 Mon second programme avec FuncSug 🧪
Maintenant
que j'ai un petit peu apprivoisé ce langage, je vais essayer d'aller
plus loin, en codant un petit jeu : "Le nombre mystère"
Il est évident que ce programme est bien plus complexe que le précédent. Je vais donc mentionner ici la structure.
- Créer le nombre à trouver
- Afficher ("J'ai choisi un nombre.")
- Tant que que le nombre n'est pas trouvé :
- Afficher ("Devine mon nombre..")
- Attendre et lire le nombre entré par l'utilisateur
- Si supérieur au nombre à trouver, affiche "Trop grand !"
- Si inférieur au nombre à trouver, affiche "Trop petit !"
- Si égal au nombre à trouver, affiche "Bravo !"
Dans les autres langages, il semble impossible de garder ce plan avec une interface graphique.
Ici j'ai pu faire mon code en suivant la structure ci-dessus et là je dis bravo ! Adieux la prise de tête où je me perdais dans mon code en me demandant mais bon sang où j'en suis ?
# 1) Créer le nombre à trouver
# ============================
.var nombreATrouver <-- :randomIntBetween 1 100
.var reponse <-- 0
# 2) Afficher ("J'ai choisi un nombre.")
# ======================================
(displayNewMessageIn "J'ai choisi un nombre" "#gameZone")
# 3) Tant que que le nombre n'est pas trouvé :
# ======================================
{while [$reponse /= $nombreATrouver]
# 3.1) Afficher ("Devine mon nombre.")
(displayNewMessageIn "Devine mon nombre" "#gameZone")
# 3.2) Attendre et lire le nombre entré par l'utilisateur
reponse <-- .awaitNewHumanNumberIn "#gameZone"
# 3.3) Si supérieur au nombre à trouver, affiche "Trop grand !"
{if [$reponse > $nombreATrouver]
(displayNewMessageIn "Trop grand !" "#gameZone")
}
# 3.4) Si inférieur au nombre à trouver, affiche "Trop petit !"
{if [$reponse < $nombreATrouver]
(displayNewMessageIn "Trop petit !" "#gameZone")
}
# 3.5) Si égal au nombre à trouver, affiche "Bravo !"
{if [$reponse = $nombreATrouver]
(displayNewMessageIn "Bravo !" "#gameZone")
}
}
Quand je relis mon code, je garde bien les différentes étapes.
Je trouve que FuncSug est plus facile à utiliser que JavaScript. En effet, il y a des fonctions qui me facilitent la vie : Par exemple, la fonction
:randomIntBetween 1 100
Je trouve cette fonction bien plus simple à écrire que
Math.floor(Math.random()*100+1)
Cette fonction, est un peut casse-tête car il est souvent arrivé que j'écrive
Math.floor(Math.random() * 100);
Et ça ne donnait pas du tout ce que je voulais car ça donne un nombre entre 0 et 99 d'où le "+1"
Avec FuncSug, fini les problèmes de calcul.
Grâce à cette fonction
reponse <-- .awaitNewHumanNumberIn "#gameZone"
Je
n'ai pas eu à m'occuper des problèmes liés aux events. Et quand on
débute en programmation, je trouve que c'est une belle facilité.
(displayNewMessageIn MonTexte l'id_de_la_balise_où_je_veux_le_placer)
Je
trouve cette fonction très pratique aussi. Bon vous l'aurez compris, je
me suis amusée à écrire ce code. De plus, Il a été bien plus rapide à
écrire.
Alors par contre il faut s'adapter à la nouvelle syntaxe qui est différente de JavaScript et des autres langages que je connais.
par exemple pour affecter une donnée à une variable on écrit : <--
.var reponse <-- 0
Attention pour déclarer une variable il ne faut pas oublier le point devant le nom de la variable.
Je trouve que le signe <-- est plus parlant car on met bien 0 dans reponse
C'est, à mon avis plus compréhensible que réponse égal 0 qui prête à confusion dans la compréhension du code.
du coup, quand on veut comparer le contenu de deux variables, fini les oublis du double égal voir triple....
Il suffit d'écrire
if [$reponse = $nombreATrouver]
Attention, ici ce sont des [ ] pour englober le if et non ( ) et { } autour du bloc if et non après les ( )
{if [$reponse > $nombreATrouver]
(displayNewMessageIn "Trop grand !" "#gameZone")
}
Alors, autre petite habitude à prendre que je trouve tout aussi déroutante que les if, c'est les parenthèses autour de TOUT l'appel de fonction comme ci-dessous
(displayNewMessageIn "J'ai choisi un nombre" "#gameZone")
Les paramètres séparés par un espace
Ce qui m'a dérouté aussi c'est le $ que l'ont DOIT mettre avant la variable pour obtenir son contenu.
J'ai eu tendance à écrire
if [reponse > nombreATrouver]
au lieu de
if [$reponse > $nombreATrouver]
et bien sur erreur !
Pourquoi ce $ ?
$ a une signification explicite : Il dit "prend la valeur de la variable".
Il est vrai qu'en lisant
total <-- [$prix * $quantite]
Je vois plus facilement si c'est la valeur qui est concernée ou la variable. En lisant l'instruction ci-dessus, je traduis plus aisément : Prends la valeur de prix multiplie-la par la valeur de quantite et mets le résultat dans total.
🗣️ Qu'en penses-tu ?
Aucun commentaire:
Enregistrer un commentaire