Discuter:Objective Caml

Un article de Wikipédia, l'encyclopédie libre.


Sommaire

[modifier] Objectivité

C'est une pub pour le langage O'Caml cette page, ou quoi ? N'oublions pas qu'il est tres peu utilise dans l'industrie (pour ne pas dire pas du tout).

Ca fait un peu listing de possibilités, mais ça c'est un problème de forme, pas d'objectivité.
Vous dites qu'il est très peu utilisé, mais à partir de quel moment on peut considérer qu'un langage est utilisé ou non. Je trouve qu'il est assez utilisé en France. Et puis il n'y a pas que l'industrie, en recherche on le trouve pas mal aussi.
Et puis même s'il n'était pas utilisé du tout, je ne vois pas en quoi ca poserait un problème.

[modifier] Versions de Caml

Bonjour,

En allant jeter un œil sur http://caml.inria.fr/index.fr.html, j'ai trouvé une incohérence par rapport à ce qui est indiqué dans le texte de l'article. Dans l'article, OCaml apparaît comme une évolution de Caml et de Caml light. Dans le site, Caml apparaît comme un langage à part entière. OCaml (ou Objective Caml) n'est que la principale implémentation et Caml light une implémentation légère et portable du noyau du langage Caml.

Qu'en est-il réellement ? Est-ce que quelqu'un aurait une réponse ?

--Kerflyn 24 juillet 2005 à 16:29 (CEST)

Pas tout à fait: caml light est une version antérieure d'OCaml. Caml light et OCaml diffèrent quelque peu. Voir http://www.pps.jussieu.fr/~cousinea/Caml/caml_history.html et http://caml.inria.fr/caml-light/index.en.html --ChriS 30 janvier 2006 à 23:45 (CET)

[modifier] Arbre

A priori, ce qui est désigné par "Noeud" dans les exemples sont des Feuilles ! Sparkles 26 juin 2006 à 23:07 (CEST)

>>Pire, c'était l'équivalent des arbres vides! J'ai modifié l'exemple en conséquence. bibi6 17 décembre 2006 à 18:42 (CET)

[modifier] Tout l'article

Il ne présente pas le langage Ocaml mais seulement une petite (microscopique) partie du compilateur. C'est tellement flagrant qu'il est question de l'implémentation dès le troisième paragraphe. Les exemples ne couvrent presque rien du langage et sont inutilement compliqués par rapport à ce qu'il sont censés présenter. Les concepts intéressants du langage ne sont pas expliqués et il n'y a pas de lien vers les articles Wikipedia qui les présentent où les autres langages qui les exploitent. Les limites du langage ne sont pas données, les extensions proposées sont vieillotes, les soi-disant points forts des performances du compilateur sont complètement dépassés. Les problématiques à la mode ne sont pas abordées. Les problèmes de mauvaise construction de ce langage qui l'obligent à utiliser un pré-processeur ne sont pas traités explicitement (la complexité des exemples le fait implicitement). La lourdeur d'interfaçage d'Ocaml avec les autres langages à objets n'est pas traitée. De manière générale, les nombreux défauts ne sont pas traités. Quand un langage à la qualité d'Ocaml, on peut se permettre de lister ses problèmes (chose qui n'est pas faisable dans d'autres langages : Java, Perl, C++). Cela permetrait aux personnes tombant par hasard sur la page d'Ocaml d'avoir une idée précise du déploiement industriel d'Ocaml et des éléments à ajouter en priorité.


Oui, l'article n'est pas de bonne qualité. Pourquoi utiliser 30 lignes juste pour dire que le typage est fort et qu'un entier et un flottant sont incompatibles ? Pourquoi montrer tant de messages d'erreur du compilateur (y'a au moins 5 fois le message "type incompatibles" ? Toute la partie 2 ressemble plus à un tutorial pour débutants qu'à une présentation du langage. Ce n'est pas intéressant. Sans compter le style familier qui manque de sérieux : « Caml est "assez grand " », « (hé oui, on a bien dit des entiers!) », etc. Je pense que toute la section 2 (Notions de base en Caml) devrait être supprimée. Il faut des informations pertinentes à la place, qui mettent en valeur les spécificités du langage (typage structurel, préprocesseur, arguments nommés, pattern matching, orienté objet, modules paramétriques, functors...). 17 février 2007 à 19:45 (CET)

J'entreprends une refonte complète de l'article, à partir de données trouvées sur Internet et de l'article anglais. Toutefois, je dénonce un problème d'organisation de l'article qui semble relever plus du tutoriel (et encore, à l'état d'ébauche !) que de l'article encyclopédique. Si quelqu'un a des idées pour améliorer cet article, je suis preneur. Cherche-Fautes

[modifier] Refonte de l'article

Je viens de modifier considérablement l'article OCaml. J'espère que cette réécriture, motivée par un état jugé non satisfaisant par l'ensemble des contributeurs (bandeau "ébauche" toujours en place), améliore la structure de l'article, et lui donne un aspect plus encyclopédique.

J'ai repris le maximum possible du contenu de la version précédente, traduit quelques parties de la versions anglaise actuelle, et enfin écrit quelques parties.

Il y a cependant une partie du contenu de l'article français que je n'ai pas réutilisé, dans la partie "Présentation du langage" (autrement dit, les bouts de code expliqués). Celle-ci était très longue (ce qui déséquilibrait l'article du fait de la petite taille des autres parties, pourtant plus pertinentes à mon avis). Je fais ici une liste du contenu que j'ai supprimé, assorti pour chaque passage d'une (tentative de) justification : si vous jugez contestable la supression d'un de ces points en particulier, n'hésitez pas à en discuter ici, ou même à la ré-ajouter vous-même.


Ces considérations m'ont semblé accessoires : les contraintes explicites de typage sont très rares en OCaml (puisqu'on leur préfère une restriction du typage dans l'interface du module), et la discussion de nature syntaxique ne me paraît pas avoir sa place dans un article généraliste (qui n'a pas vocation de constituer un tutorial pour le langage OCaml).


J'ai retiré ce paragraphe parce qu'il n'apporte pas grand chose (l'énoncé des types built-in est il indispensable dans une encyclopédie ? Pourquoi alors ne pas parler du type option par exemple ?), et surtout que sa formulation me semble maladroite voire fausse : il est plus que douteux d'affirmer que "list" est un type, et que "int list" est donc la combinaison de deux types, "int" et "list".


Dans l'état actuel, ce paragraphe n'est ni compréhensible pour un débutant, ni utile pour un connaisseur. Je pense qu'un lien vers l'article "Curryfication" serait tout aussi utile.


Les exemples sont assez mauvais : la première fonction se code beaucoup plus simplement sans récursivités mutuelles, et la deuxième ne l'utilise pas, puisque "insérer" n'appelle pas "trier".


La position de ce programme est paradoxale (pourquoi mettre à la fin ce qui est normalement le premier exemple de code qu'on voit ? pourquoi construire une fonction au lieu d'afficher simplement "Hello World !" ?), et je ne pense pas qu'il soit de grand intérêt pour le lecteur.

Bluestorm 3 décembre 2007 à 00:57 (CET)