Version française
Home     About     Download     Resources     Contact us    
Browse thread
Not Rocket Science
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: -- (:)
From: Jon Harrop <jon@f...>
Subject: Not Rocket Science

I stumbled upon the following blog post by Alexander Mikhalev:

  "Why ocaml and haskell is not for scientists" -
http://alexandermikhalev.blogspot.com/2008/01/why-ocaml-and-haskell-is-not-for.html

Alex is kind enough to say that he was impressed with the demos from my 
book "OCaml for Scientists" but was disappointed to discover that they no 
longer work. Although Alex says:

  "I think this is one of the major problems with ocaml - you can find very 
interesting projects or modules, but they mostly abandon, never made it ever 
as far as beta..."

his problems are due to the exact opposite: my code has bitrotted slightly 
because the libraries it uses continue to be actively developed complete with 
breaking changes in order to improve APIs.

I shall go through all of the examples on our site and bring them up to date 
with respect to the latest libraries ASAP:

  http://www.ffconsultancy.com/products/ocaml_for_scientists/complete/?ol

However, I would like to stress that these are trivial changes. For 
example, my random matrix eigenvalue demo required only three tiny changes 
to bring it up to date with respect to the latest Lacaml library. 
Specifically, this:

  open Lacaml.S
  ...
  let m = Mat.of_array m in
  ignore (geev m);

becomes:

  let m = Lacaml.Mat4_S.of_array m in
  ignore (Lacaml.Impl.S.geev m);

The "n"th-nearest neighbour, travelling salesman and discrete wavelet 
transform examples all remain exactly the same. The only significant changes 
appear in the maximum entropy method example but Christophe Troestler has 
been kind enough to revamp the entire example as a demonstration of his newer 
and better bindings to FFTW3. You can get them with:

$ cvs -d:pserver:anonymous@ocaml-fftw.cvs.sourceforge.net:/cvsroot/ocaml-fftw 
login
$ 
cvs -z3 -d:pserver:anonymous@ocaml-fftw.cvs.sourceforge.net:/cvsroot/ocaml-fftw 
co -P fftw3

and look at "fftw3/examples/mem.ml" for the new MEM demo.

Perhaps members of the community would like to comment on some of Alex's other 
points, such as the lack of graph plotters for OCaml? IIRC, people have done 
substantial work on this in the past.

Depending how Jason Hickey's forthcoming OCaml book affects sales of "OCaml 
for Scientists", I may well write a second volume covering parallelism, GUI 
programming and graphing/charting using OCaml.

Although we are working heavily on F# now, there is no question in my mind 
that OCaml remains one of the most valuable tools for scientific computing 
under Linux.

-- 
Dr Jon D Harrop, Flying Frog Consultancy Ltd.
http://www.ffconsultancy.com/products/?e