C'étaient pas des hackers C à la base. Caml est une création de Guy Cousineau, inspiré du métalangage ML de LCF et créé par Robin Milner.
Xavier Leroy a tout repris à zéro pour sa thèse et a créé (pas tout seul bien sûr) plein de versions de Caml (Light, Special, Objective). Il se trouve qu'en plus d'être un excellent théoricien c'est aussi un putain de programmeur. Il a d'ailleurs développé les threads pour faire tourner Caml...
Je ne suis pas sûr que l'implémentation soit libre au sens de la GPL. Il me semble que tu n'as pas le droit de diffuser une version modifiée des sources, mais uniquement des patchs. C'est assez libre pour moi, mais sûrement pas pour RMS.
Sinon, tu connais beaucoup de langages de programmation qui ne sont pas formels, toi? La spécificité de Caml, c'est qu'on connaît (grosso modo) sa sémantique formelle, ce qui est différent. D'ailleurs, on la connaît à moitié. Je mets au défi quiconque de me sortir toutes les règles de sémantique (abstraite, opérationnelle, voire dénotationelle) et les preuves formelles associées (Church-Rosser, autoréduction, etc) de Caml tel qu'il est implémenté.
Je connais pas de langage ne pouvant pas utiliser des bibliothèques C pour ma part. OK c'est plus ou moins difficile selon les implémentations. Et justement, c'est pas non plus ultra-facile en Caml, malheureusement.
C'est vrai que les foncteurs (modules paramétrés) c'est génial mais c'est pas une invention de Caml non plus. D'ailleurs, il reste pour l'instant quelques limitations gênantes sur lesquels ils travaillent, au demeurant, avec notamment des recherches sur l'intégration des mixins (le monde est petit: ces derniers sont plus ou moins dus à Gilad Bracha qui fait partie maintenant de l'équipe de développement pour Java).
Ces précisions faites, je suis tout à fait d'accord pour encourager à l'utilisation de Caml. Je ne vois personnellement pas de meilleur langage pour l'instant. Pourquoi est-ce le meilleur? Parce que l'équipe Caml est pragmatique et pas jusqu'au-boutiste. Ils veulent une sémantique claire et élégante mais aussi un langage réellement utilisable (un tant soit peu efficace, avec une stratégie d'évaluation "intuitive", etc). Comparé à Haskell, il est certes moins élégant sur le plan théorique, mais c'est un très bon compromis pour ce qu'on attend d'un langage sur les plans théorique et pratique.
[^] # Re: On oublie toujours OCaml
Posté par Anaximandre . En réponse à la dépêche Havoc Pennington se pose des questions sur les langages du libre. Évalué à 5.
Xavier Leroy a tout repris à zéro pour sa thèse et a créé (pas tout seul bien sûr) plein de versions de Caml (Light, Special, Objective). Il se trouve qu'en plus d'être un excellent théoricien c'est aussi un putain de programmeur. Il a d'ailleurs développé les threads pour faire tourner Caml...
Je ne suis pas sûr que l'implémentation soit libre au sens de la GPL. Il me semble que tu n'as pas le droit de diffuser une version modifiée des sources, mais uniquement des patchs. C'est assez libre pour moi, mais sûrement pas pour RMS.
Sinon, tu connais beaucoup de langages de programmation qui ne sont pas formels, toi? La spécificité de Caml, c'est qu'on connaît (grosso modo) sa sémantique formelle, ce qui est différent. D'ailleurs, on la connaît à moitié. Je mets au défi quiconque de me sortir toutes les règles de sémantique (abstraite, opérationnelle, voire dénotationelle) et les preuves formelles associées (Church-Rosser, autoréduction, etc) de Caml tel qu'il est implémenté.
Je connais pas de langage ne pouvant pas utiliser des bibliothèques C pour ma part. OK c'est plus ou moins difficile selon les implémentations. Et justement, c'est pas non plus ultra-facile en Caml, malheureusement.
C'est vrai que les foncteurs (modules paramétrés) c'est génial mais c'est pas une invention de Caml non plus. D'ailleurs, il reste pour l'instant quelques limitations gênantes sur lesquels ils travaillent, au demeurant, avec notamment des recherches sur l'intégration des mixins (le monde est petit: ces derniers sont plus ou moins dus à Gilad Bracha qui fait partie maintenant de l'équipe de développement pour Java).
Ces précisions faites, je suis tout à fait d'accord pour encourager à l'utilisation de Caml. Je ne vois personnellement pas de meilleur langage pour l'instant. Pourquoi est-ce le meilleur? Parce que l'équipe Caml est pragmatique et pas jusqu'au-boutiste. Ils veulent une sémantique claire et élégante mais aussi un langage réellement utilisable (un tant soit peu efficace, avec une stratégie d'évaluation "intuitive", etc). Comparé à Haskell, il est certes moins élégant sur le plan théorique, mais c'est un très bon compromis pour ce qu'on attend d'un langage sur les plans théorique et pratique.