Je regarde F# depuis quelques temps, et j'ai quand même quelques critiques (j'espère un peu plus constructives que "bouh microsoft c'est nul").
En gros, je trouve ocaml vraiment bien, .NET je suis plutôt sceptique (mais j'essaie de ne pas avoir de préjugés), et j'ai tendance à trouver qu'il y a plus de trucs biens du Ocaml en moins que de truc supers du .NET en plus (forcément, eux je les ai pas vu).
Functors, OCaml-style objects, labels and optional arguments are not supported. Some common functors like Set.Make and Hashtbl.Make are simulated by returning records of functions.
Je trouve ça vraiment dommage : les labels c'est super cool (même si je ne sais pas encore m'en servir avec aisance) et le reste aussi.
Strings are Unicode and immutable.
Ça par contre, c'est plutôt intéressant.
Constraining a module by a signature may not make the values in the module less polymorphic.
Ça c'est super dommage.
Si on veut vraiment contraindre, il faut mettre les contraintes sur les arguments dans le .ml (let fun (arg: type) = ...)). C'est embêtant.
The C stub mechanisms to call C from OCaml are not supported. (F# has good alternatives that involve no coding in C at all.)
Paf.
(surtout qu'à vue de nez, le code pour passer de F# à C# n'est pas monstrueusement plus pratique/sympathique que celui pour passer de Ocaml au C. Mais n'ayant utilisé aucun des deux, je ne sais pas grand chose)
Pour résumer, je dirais qu'à mon avis le F# est vraiment diminué par rapport au OCaml, et que pour valoir vraiment le coup il faudra que les facilités apportées par .NET soient importantes.
Il faudrait aussi comparer l'efficacité d'un programme compilé avec le compilo Ocaml et un équivalent F# (Il doit bien y avoir un JIT ou quelque chose comme ça, non ?).
# Un peu déçu
Posté par gasche . En réponse au journal Language F# - Du microsoft, mais il y a un rapport avec le libre !. Évalué à 3.
En gros, je trouve ocaml vraiment bien, .NET je suis plutôt sceptique (mais j'essaie de ne pas avoir de préjugés), et j'ai tendance à trouver qu'il y a plus de trucs biens du Ocaml en moins que de truc supers du .NET en plus (forcément, eux je les ai pas vu).
Je me base sur le comparatif http://research.microsoft.com/fsharp/manual/ml-compat.aspx
Je trouve ça vraiment dommage : les labels c'est super cool (même si je ne sais pas encore m'en servir avec aisance) et le reste aussi.
Ça par contre, c'est plutôt intéressant.
Ça c'est super dommage.
Si on veut vraiment contraindre, il faut mettre les contraintes sur les arguments dans le .ml (let fun (arg: type) = ...)). C'est embêtant.
Paf.
(surtout qu'à vue de nez, le code pour passer de F# à C# n'est pas monstrueusement plus pratique/sympathique que celui pour passer de Ocaml au C. Mais n'ayant utilisé aucun des deux, je ne sais pas grand chose)
Pour résumer, je dirais qu'à mon avis le F# est vraiment diminué par rapport au OCaml, et que pour valoir vraiment le coup il faudra que les facilités apportées par .NET soient importantes.
Il faudrait aussi comparer l'efficacité d'un programme compilé avec le compilo Ocaml et un équivalent F# (Il doit bien y avoir un JIT ou quelque chose comme ça, non ?).