
OCaml's 20th Anniversary - amirmc
https://sympa.inria.fr/sympa/arc/caml-list/2015-09/msg00079.html
======
fermigier
Congratulations to my friends Xavier Leroy and Damien Doligez, as well as to
all the other contributors to OCaml.

For those interested in learning OCaml from a MOOC, there is one starting soon
(next month). You can already register here: [https://www.france-universite-
numerique-mooc.fr/courses/pari...](https://www.france-universite-numerique-
mooc.fr/courses/parisdiderot/56002/session01/about)

Note: the MOOC is delivered on a French MOOC platform but will be in english.

~~~
agumonkey
Just in case, there's also a MOOC held by C.Queinnec (Author of Lisp in small
pieces):

[http://programmation-recursive.net/](http://programmation-recursive.net/)

Warning: seems like this one is in french though, so only if you're curious
enough about it.

------
eatonphil
I got really excited reading the 1995 email as an announcement that INRIA was
releasing a new SML-based language. The association I can't get out of my head
is: SML is to C as OCaml is to C++. This is backed (to some degree) even in
this email:

    
    
      > ... in 20 years, the language picked up many language
      features that were open research problems in 1995, such as objects and
      classes with type inference, polymorphic variants, first-class polymorphism,
      and first-class modules.
    

SML is a much simpler language and I think a solid SML kernel with a good
(read: modern, web-friendly) standard library targeting LLVM or the JVM could
be a real winner for commercial use.

~~~
jonsterling
I agree. OCaml is really cool in many respects, and I like it a lot—but the
only thing SML really needs is a modern Basis library that is applicable to
today's standard use-cases.

I use SML for the JonPRL proof assistant, and I couldn't be happier. Some
things would be a bit easier in OCaml, but to be honest, I love the fact that
my code will continue to work without modification for decades, due to the
simple fact that SML is a language frozen in time.

~~~
virtualwhys
> due to the simple fact that SML is a language frozen in time

Unfreeze it, all the extant MLs fall short in one way or another. A modern SML
with none of the syntactic cruft of OCaml; the lazy evaluation of Haskell and
its non-existent module system; the nutured nature of F# ... that would be ML
joy, maybe Rosenberg's 1ML will make that a reality.

We're in the middle ages of computer science language-wise.

~~~
mahmud
Heck, even use HaMLet to bootstrap it.

Hamlet is a portable SML implementation written in SML.

[http://www.mpi-sws.org/~rossberg/hamlet/](http://www.mpi-
sws.org/~rossberg/hamlet/)

(Not unlike SICL, which is a portable Common Lisp for R&D
[https://github.com/robert-strandh/SICL](https://github.com/robert-
strandh/SICL))

------
xvilka
One of the biggest problems now is the lack of the Windows support for
Opam[1].

I hope that will be solved in the near future. Because currently Microsoft
trying to take the niche with their F#.

[1]
[https://github.com/ocaml/opam/issues/246](https://github.com/ocaml/opam/issues/246)

------
quantumtremor
I know Clojure, looking to learn a statically typed functional language.
Narrowed it down to Haskell and OCaml (are there others I should know about?).

I still am unsure what OCaml is good for. Ex., Ruby is good for webdev with
Rails, Python is good as a general purpose language, Clojure is good for async
and quick iteration/integrating with Java code, C is good for OS work, C++ is
good for native applications.

Is OCaml general purpose? Can I use it for NLP? Statistics? Numpy-like n-d
array math? Writing a compiler?

~~~
nv-vn
OCaml is super general purpose. You can write low-ish level code (there have
been 2 kernels partially written in it) as well as higher level stuff (web
servers/scripts on the pages using tools like js_of_ocaml, Coq, etc.). Where
it really stands out it compilers and static analyzers (+ other similar
things). Facebook uses it for a few of their compilers and static analyzers,
the Rust compiler was originally written in OCaml before being ported to Rust,
the Haxe compiler and VM are in OCaml as well. The OCaml compiler comes with
lexer and parser generators and a lot of other libraries exist for it too
(such as an official LLVM binding). I'm not sure how great it is for NLP, but
I'd assume it's not bad for it. Here is a list of companies that use it:
[https://ocaml.org/learn/companies.html](https://ocaml.org/learn/companies.html).

