OCaml/Dlaczego OCaml
< OCaml
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:
- 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.
- Umożliwia programowanie funkcyjne, obiektowe i imperatywne.
- 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.
- Pomimo powyższego punktu OCaml jest zaopatrzony w inferencję typów. Potrafi dedukować z jakich typów chce korzystać programista.
- Zawiera bardzo efektywny garbage collector.
- 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.
- 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.