💻 À la recherche du langage de programmation idéal

 

 

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 Ă©tudier quelques pistes :

 

 

 Les langages compilés

 

 Le C (+ SDL)

 

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...

 

BaCon

 

 

 Uxn

 

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.

 

Page sur Uxn

 

 

 Pascal

 

FreePascal et Lazarus permettent de créer des programmes en Pascal. Je ne l'ai pas assez étudié pour en parler ici.

 

https://www.lazarus-ide.org/

 

 

 Inform 6 et Inform 7

 

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)

 

 

 

 Les langages interprétés

 

 Python

 

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é.

 

 

Ruby

 

Je ne l'ai pas assez Ă©tudiĂ©, mais cela ne peut pas ĂŞtre pire que python de toute manière :)

 

La syntaxe semble assez élégante, sans avoir certains travers d'autres langages. Cela peut être un excellent choix. Lua est plus populaire comme scripts pour concevoir des jeux (en complément de C ou C++), alors que Ruby se suffit à lui-même (mais semble plus lent que lua).

 

https://www.ruby-lang.org/fr/documentation/quickstart/

 

 

 

 

 Forth

 

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.

 

Page sur Forth

 

 

Smalltalk, Squeak, Pharo

 

Sorte d'ovni dans le paysage du thème qui nous concerne, c'est à la fois une machine virtuelle, un environnement de programmation complet et un langage assez ancien, où tout est objet.

 

De par son côté tout intégré, il semble complètement à l'opposé de la rudesse et la simplicité de Forth par exemple.

 

On pourra comparer les exemples donnés sur "Learn X in Y minutes" avec ceux en Forth par exemple...

 

Learn Smalltalk in Y minutes

 

https://squeak.org/

introduction en vidéo

Manuel de Cuis-Smalltalk, didactique, avec un point de vue intéressant.

 

 

 

 Rebol et Red

 

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.

 

Un tutoriel sur la R3

Red Programming Language

 

 

 

Les Basic

 

Il existe quantité de Basic à utiliser, souvent en mode retro.

 

 

voir BaCon plus haut

 

voir GFA, STOS plus bas

 

 

FreeBASIC semble une référence en open-source

 

BBC Basic, utilisé sur RISC OS

Version moderne du BBC Basic

 

 

 

 Lua

 

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.

 

Comparaison Lua / Python

 

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

 

 

Il est possible de créer des programmes graphiques en Lua avec le cadriciel "MoonNuklear" et "MoonLibs", le soucis sera qu'il ne sera pas forcément très facilement installable sur d'autres PC. De plus le code n'a pas évolué depuis 3 ans, peut-être que le projet est délaissé par son auteur.

 

MoonNuklear

MoonLibs

 

Voici nĂ©anmoins la procĂ©dure d'installation (pour Debian Linux et apparentĂ©s) :

 

En premier lieu, vĂ©rifier que Lua 5.3 est configurĂ© par dĂ©faut :

 

sudo update-alternatives --config lua-interpreter

 

et choisir /usr/bin/lua5.3

 

Ensuite :

 

git clone https://github.com/stetre/moonglfw.git
cd moonglfw/
make
sudo checkinstall
git clone https://github.com/stetre/moongl.git
cd moongl
make
sudo checkinstall
git clone https://github.com/stetre/moonnuklear.git
cd moonnuklear/
make
sudo checkinstall
cd examples/
lua demo.lua

 

Un autre cadriciel puissant pour créer des jeux ou d'autres applications est Löve (fonctionne sur Linux, Windows, MacOS, Android...) .

 

Love2d

 

 

Page de doc sur Löve

 

 

Lua est également souvent utilisé dans les roguelikes

 

Lua et roguelike

 

 

 

 

 Les consoles imaginaires

 

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

 

TIC-80 utilise Lua comme langage de script.

Il est simple Ă  utiliser, et fonctionne un peu comme un vieil ordinateur retro, aux caractĂ©ristiques limitĂ©es (ce qui stimule d'autant la crĂ©ativitĂ©) :

 

 

 

https://tic80.com/

https://github.com/nesbox/TIC-80/wiki

 

 

Page de doc sur Tic-80

 

 

 Pico-8

 

Pico-8 est l'ancêtre des consoles imaginaires, il n'est malheureusement pas open-source mais il y a une grande communauté autour. Je pense qu'on peut lui préférer TIC-80.

 

https://www.lexaloffle.com/pico-8.php

 

 

 Uxn

 

voir plus haut

 

 

 

 

Le retrocomputing

 

 

 GFA Basic

 

Issu de l'Atari ST, il existe une version moderne nommée X11-Basic.

 

X11-Basic

D'autres références pour le GFA sur de multiples plate-formes.

 

 

 Stos et Amos

 

Également issus de l'Atari ST et de l'Amiga, ces langages étaient adaptés pour la création de jeux.

 

La référence pour le STOS

Diverses ressources pour le STOS

 

 

Conclusion

 

Le langage qui semble le plus répondre à toutes les attentes est Lua, car même si de base le graphisme et les sons ne sont pas pris en compte, de nombreux cadriciels type Löve permettent de programmer quantité d'outils.

 

 

 

 

#informatique

 

 

 

↩️ Index textes

🏠 Index Accueil