From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.1.3 (2006-06-01) on yquem.inria.fr X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=AWL autolearn=disabled version=3.1.3 X-Original-To: caml-list@yquem.inria.fr Delivered-To: caml-list@yquem.inria.fr Received: from mail3-relais-sop.national.inria.fr (mail3-relais-sop.national.inria.fr [192.134.164.104]) by yquem.inria.fr (Postfix) with ESMTP id CB841BBC1 for ; Sun, 2 Mar 2008 11:43:13 +0100 (CET) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Aq4HAM8SykfUnw7Ua2dsb2JhbACCNI48CwQGBwkSB5hq X-IronPort-AV: E=Sophos;i="4.25,434,1199660400"; d="scan'208";a="9798740" Received: from ptb-relay01.plus.net ([212.159.14.212]) by mail3-smtp-sop.national.inria.fr with ESMTP; 02 Mar 2008 11:43:13 +0100 Received: from [80.229.56.224] (helo=beast.local) by ptb-relay01.plus.net with esmtp (Exim) id 1JVley-00086L-JK for caml-list@yquem.inria.fr; Sun, 02 Mar 2008 10:43:12 +0000 From: Jon Harrop Organization: Flying Frog Consultancy Ltd. To: caml-list@yquem.inria.fr Subject: Not Rocket Science Date: Sun, 2 Mar 2008 10:41:54 +0000 User-Agent: KMail/1.9.7 MIME-Version: 1.0 Content-Disposition: inline Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Message-Id: <200803021041.55208.jon@ffconsultancy.com> X-Plusnet-Relay: 4919e7b25221fa2507e2027ad3b57d95 X-Spam: no; 0.00; ocaml:01 haskell:01 ocaml:01 trivial:01 lacaml:01 lacaml:01 impl:01 christophe:01 troestler:01 bindings:01 cvs:01 cvs:01 alex's:01 iirc:01 parallelism:01 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