💾 Archived View for gem.ortie.org › docs › 005_langages.gmi captured on 2023-01-29 at 02:40:50. Gemini links have been rewritten to link to archived content
➡️ Next capture (2023-03-20)
-=-=-=-=-=-=-
On peut rechercher un langage optimal pour créer toute sorte d'outils sur mesure, selon ses besoins propres. Voici quelques-un des prérequis possibles :
Nous allons maintenant voir quelques pistes :
Les bases du C ne sont pas excessivement compliquées (moins que l'assembleur), néanmoins il impose une certaine discipline, et si les prémices sont compréhensibles, bien qu'un peu fastidieux (par exemple il faut déclarer le type de toutes les variables), les choses se complexifient rapidement.
Et dès que l'on veut rajouter du graphisme, les difficultés deviennent exponentielles, bref c'est un vrai métier que de l'utiliser.
À tester : BaCon, un basic qui permet de générer des programmes en C qui se compilent directement...
Uxn est un langage bas niveau, proche de l'assembleur, mais il a des caractéristiques très intéressantes (concision des binaires, utilisation d'une machine virtuelle), malgré ses limitations (4 couleurs maximum). Ce n'est pas un langage "professionel", mais un hobby rassemblant quelques hackers et génies de l'informatique. Sa courbe d'apprentissage est raide, mais c'est une activité intéressante d'essayer d'en comprendre les arcanes.
FreePascal et Lazarus permettent de créer des programmes en Pascal. Je ne l'ai pas assez étudié pour en parler ici.
Inform est un système de création de jeux d'aventure textuels (fictions interactives). Tandis que la version 6 ressemble à un langage assez classique, proche du C, avec une approche orientée objet et procédurale, la version 7 utilise du langage naturel et de la programmation déclarative.
Bien que ces langages soient surtout adaptés pour créer des jeux, il est également possible de programmer de façon plus classique dessus.
https://ganelson.github.io/inform-website/
https://fr.wikipedia.org/wiki/Inform_(programmation)
J'ai lu quelques ouvrages sur le sujet, notamment l'excellent "Apprendre à programmer avec Python" de Gérard Swinnen, mais malgré mes efforts, je crois que je déteste tout simplement ce langage et sa syntaxe, et en particulier le fait d'imposer des signes invisibles (espaces ou tabulation des indentations) pour déterminer du sens, je trouve cela absolument contre-productif et ce n'est pas dans ma logique.
"Apprendre Ă programmer avec Python" de GĂ©rard Swinnen
Ajoutons qu'il est compliqué de créer une interface graphique correcte, tkinter dépanne mais n'est pas visuellement très agréable, et pyQt casse sa compatibilité d'une version à l'autre, ce qui peut rappeler ce qui s'est passé lors du passage de Python 2 à Python 3.
Python possède de nombreuses bibliothèques permettant de réaliser tout et n'importe quoi, et le problème est qu'il est nécessaire d'utiliser la bonne bibliothèque avec la bonne version de python, et cela devient rapidement une usine à gaz de gérer tout cela, rien que pour un petit projet.
Bref, je continuerai peut-être à étudier python de par son côté "indispensable", mais cela ne deviendra jamais un langage préféré.
Forth est un vieux langage, et il présente malgré tout de nombreux avantages, j'apprécie notamment le mode REPL (que l'on peut également retrouver dans d'autres langages interprétés). Son expressivité le rend agréable à utiliser, un peu comme une seconde nature, même si les arcanes de l'apprentissage avancé et sa rusticité le rendent malgré tout difficile.
Je n'ai pas compris exactement si Rebol était compilé ou interprété, je pense qu'il doit être plus ou moins précompilé à l'exécution (type "just in time").
Il est très concis et léger, et issu du monde Amiga comme son auteur. Il ne semble plus trop développé, et n'est pas entièrement libre ou open-source, seule sa dernière version, la R3, l'est. Je n'ai pas trouvé si elle permettait toutes les applications de la R2.
Néanmoins, le langage Red est dans la continuité de Rebol, et est lui activement développé. Il permet de créer de petits programmes graphiques, mais le son n'est pas encore implémenté. Le projet semble prometteur.
Lua est un de mes langages préférés, sa syntaxe est concise et logique, il est d'ailleurs utilisé dans quantité de logiciels et jeux, pour en étendre les possibilités.
Quand je compare Lua et Python, je me rends compte que tous les choix syntaxiques de ce dernier m'horripilent, entre les 2 points redondants, le fait que les blocs ne sont pas clairement marqués (avec "end" par exemple), l'impossibilité d'écrire un petit passage sur une seule ligne compacte, par exemple en lua :
if btn(0) then y=y-1 end
if btn(1) then y=y+1 end
Ces consoles virtuelles peuvent être vues comme un retour aux ordinateurs 8-bits, avec un accès direct aux interfaces graphiques et sonores du système.
Tic-80 utilise Lua
https://www.lexaloffle.com/pico-8.php
voir plus haut
Il existe quantité de Basic à utiliser, souvent en mode retro
voir BaCon plus haut