• [^] # Re: C vs Python pour des applis Gnome

    Posté par . En réponse au journal Quelques langages de programmation pour GNOME. Évalué à 2.

    Tant qu'a continuer dans la suggestion de langages et si ton cadre de choix dépasse GTK tu peux regarder racket.

    • Il possède un sous langage typé.
    • Il possède des contrats (ce qui permet aussi d'indiquer le type des arguments de fonctions en tant que signature).
    • Il est construit autour de la porté léxical ce qui devrai facilité le refactoring sur les noms et la grepabilité.
    • Il possède des macros ce qui devrai te dispensé d'avoir un EDI déglutissant des kilo de lignes de code squelette GUI.
    • Il possède un framework de GUI avec un système de programmation objet (probablement comparable à celui de ruby).
    • Il possède une véritable REPL ce qui est plutôt un sine qva none pour du prototypage rapide.

    Les mauvais points (du moins ceux que j'ai rencontrés):

    • Les différentes composantes typage/contrats/class ne fonctionne pas parfaitement ensemble et doivent être cloisoné (principalement avec le typage).
    • La documentation est trés compléte mais pas vraiment orienté tutoriel.
    • Si tu compte mieux comprendre le langage/vm et ses méchanismes primaires tu vas devoir lire les publications scientifiques, pas de blog bien présenté et simple.
    • Il y a des chances que les librairies utilisable te semble limité.
    • Langage large donc apprentissage long mais formateur (j'ai le sentiment que les autres langage dynamique ne sont en fait que des sous ensemble de racket).
    • Pas d'exemple de gros projets écrit en racket autre que le langage lui même.
    • Manque d'outils typiquement un graph des modules et de leurs utilisations, pas d'outils de refactoring.
    • Comme je fais pour savoir si j'ai des fuites mémoire? (visualvm pour java par exemple)

    Pour finir si le point qui te rebute le plus c'est la syntaxe lisp, alors je te conseille de faire un effort et si tu persévère tu auras du mal a revenir à une syntaxe 'traditionelle'.