Wikipedysta:Bla~plwikibooks/brudnopis/Historia

Jakiś czas temu (końcówka 2006 roku) poczułem potrzebę nauczenia się jakiegoś języka funkcyjnego. Pomimo paru lat programowania w językach takich jak C/C++, PHP, Ruby, języki funkcyjne były dla mnie wciąż absolutnie obce -- nie rozumiałem co mają takiego, czego nie ma w języku C (W C przecież są funkcje, nie?). No ale już wiem.


Zacząłem od przeglądu istniejących języków tego typu. Na pierwszy ogień padł Haskell i Lisp, ale po rozmowach na FreeNode, paru próbach napisania w nich prostych programów, przejrzeniu tutoriali -- oba odpadły. Trudno mi na dziś dzień przypomnieć sobie dlaczego, ale nie sprawiły wrażenia języków, w których chciałbym cokolwiek napisać.


Objective Caml (w skrócie OCaml lub po prostu Caml) natomiast miał parę własności, które były interesujące:

  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.

  1. Umożliwia programowanie funkcyjne, obiektowe i imperatywne.
  2. 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.
  3. Zawiera bardzo efektywny garbage collector.
  4. Ponadto 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 absolutnie obca.

Strona główna projektu znajduje się pod adresem: <a href="http://caml.inria.fr/">http://caml.inria.fr/</a>. Można znaleźć tam trochę dokładniejszej dokumentacji, opis bibliotek języka oraz paczki do pobrania.