• # Un langage amateur sympa, mais qui se prend trop au sérieux

    Posté par . En réponse à la dépêche Le langage ooc auto-hébergé - les nouveautés de rock 0.9.0. Évalué à 10.

    Je m'intéresse beaucoup aux langages de programmation, et je vois toujours d'un bon oeil le fait que les gens expérimentent dans le domaine, en travaillant sur une petite implémentation, des idées qu'ils ont pour corriger les problèmes des langages existants, etc.
    Je pense donc qu'ooc est une bonne idée (écrire un langage, c'est amusant, donc c'est toujours une bonne idée), et je trouve l'aspect communautaire sympa.

    Par contre, je trouve l'approche pas très rigoureuse. Le langage n'est décrit nulle part. J'aimerais bien savoir, par exemple, comment fonctionne l'algorithme d'inférence des types. Je suspecte que c'est un algorithme très ad-hoc (les sources par d'un "funny score system", hmm...); je trouve un peu dommage de parler d'inférence (on pense tout de suite aux langages avec une vraie inférence de type) pour un truc au final plutôt limité, et surtout imprévisible parce que non spécifié : on est un peu déçu.
    De même, je trouve dommage de présenter comme "pattern matching" un sucre syntaxique qui ajoute implicitement des tests d'égalité à une variable de 'switch'. Le vrai pattern matching ( http://fr.wikipedia.org/wiki/Filtrage_par_motif ) est beaucoup plus puissant que ça, donc quand on se rend compte de ce que c'est en ooc, on est déçu.

    Dans ce contexte (l'inférence n'est pas une vraie inférence, le pattern matching n'est pas un vrai pattern matching, j'espère que vos closures sont de vraies closures !), je pense qu'on peut difficilement décrire ooc comme un langage "functional-ish" : vous avez des fonctions imbriquées et anonymes, c'est bien, c'est mieux que le C, mais le langage ne me semble pas fonctionnel pour autant.


    Je pense que la documentation manque un peu de rigueur. J'aimerais bien une description précise et globale du langage quelque part : une description de la syntaxe et de la sémantique du langage. Je pense qu'il serait aussi important de détailler quelque part les raisons qui vous ont poussé à lancer ce projet, une comparaison avec les concurrents (Vala ?), et surtout quelques défauts (temporaires et conceptuels) du langage : c'est bien de présenter ce que vous faites bien, mais il faudrait aussi essayer de dire ce qui est moins bien.