Depuis un moment, on entend pas mal parler de Caml par ci, Caml par là chez les chers pointeurs.
Oh mais oh !, c'est un peu vite oublier nous français, ce que c'est que le vrai Caml ! C'est d'abord et avant tout un petit bijou national, développé par l'INRIA, et un excellent langage de programmation fonctionnel. Son implémentation la plus utilisée est l'Objective Caml, qui intègre les paradigmes objets. C'est un langage qui peut aussi bien être interprété que compilé, et extremement rapide, avec des performances proches voir supérieures aux C/C++ pour la même utilisation, tout en gardant à l'esprit qu'il gère tout seul la mémoire par exemple..
Un petit exemple quand même pour voir à quoi ça ressemble, un calcul simple de factorielle, j'espère que tout le monde se souvient comment ça se calcule :
(*
* O'Caml Example
* fact.ml
*)
let rec fact = function
0 -> 1
| n -> n * fact (n - 1);;
let main () =
if (Array.length (Sys.argv) > 1) then
let arg = int_of_string (Sys.argv.(1)) in
print_string("resultat: ");
print_int(fact (arg));
print_newline();;
main ();;
(* ocamlc -o fact.exe fact.ml *)
N'est ce pas formidable ? L'exemple est par trop simpliste, et ne montre pas vraiment la puissance et les possibilités du langage, cela dit, je vous laisse creuser, ça mérite son coup d'oeil.
[UPDATE] : Ah oui tiens, si vous voulez vous faire les mains sur un langage fonctionnel tout en restant sur .net, vous pouvez toujours le faire sur les langages suivants :
- Nemerle : volontairement proche du C# dans sa syntaxe, marche aussi bien sous Mono que sous .net
- F# : Une implémentation de l'Objective Caml cité plus haut par MSR
- SML.NET : Une implémentation du Standard ML, sponsorié par MSR
Vous n'avez plus aucune raison pour ne pas se pencher la dessus maintenant :)