OCaml/Dlaczego OCaml

Z Wikibooks, biblioteki wolnych podręczników.

Każdy chyba programista, który od wielu lat programował w językach imperatywnych i obiektowych jak C/C++, PHP, Ruby, zastanawiał się jak zbudowane są języki funkcyjne i czym od nich się różnią. W końcu -- w C i C++ są przecież funkcje?

Przed rozpoczęciem nauki Camla warto zrobić mały przegląd istniejących języków tego typu (Lisp, Haskell, ...) Każdy z nich ma swój komplet zalet. Każdy musi podjąć tę decyzję sam, ale może mu w tym pomóc podsumowanie zalet języka OCaml:

  1. Języki z rodziny ML (Szczególnie często używanymi są Standard ML oraz OCaml) są jednymi z najszybszych języków (w rankingach często w top3). OCaml można kompilować do przenośnego kodu bajtowego (ang. bytecodu) tak jak np. Java, do szybkich natywnych binarek (jak C), a także można w nim pisać skrypty, które są kompilowane przed uruchomieniem.
  2. Umożliwia programowanie funkcyjne, obiektowe i imperatywne.
  3. Jest językiem silnie typowanym (silniej niż C), co ma tak wielu zwolenników co przeciwników. W każdym razie na pewno zmniejsza ilość błędów popełnianych podczas pisania programu oraz umożliwia o wiele doskonalszą optymalizację kodu.
  4. Pomimo powyższego punktu OCaml jest zaopatrzony w inferencję typów. Potrafi dedukować z jakich typów chce korzystać programista.
  5. Zawiera bardzo efektywny garbage collector.
  6. Ma dość miłą składnię, choć dla programisty, który nigdy w języku funkcyjnym nie pisał z pewnością na początku będzie obca.
  7. Miła informacja dla osób wielbiących platformę .NET. Język F# rozwijany przez Microsoft Research jest bezpośrednio oparty o Objective Camla i jest z nim kompatybilny.