English version
Accueil     À propos     Téléchargement     Ressources     Contactez-nous    

Ce site est rarement mis à jour. Pour les informations les plus récentes, rendez-vous sur le nouveau site OCaml à l'adresse ocaml.org.

Browse thread
Google trends
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: 2007-11-01 (16:41)
From: Jon Harrop <jon@f...>
Subject: Re: [Caml-list] Google trends
On Thursday 01 November 2007 09:46, Richard Jones wrote:
> This is hardly a cause to cheer.  The two languages aren't compatible
> in any way which is relevant to the real world...

The compatibility has made it easy for us to port our software in OCaml on 
Linux to F# on Windows. That is (literally) valuable to us.

> and the libraries are completely different.

Much of the F# stdlib is both compatible and improved (e.g. tail recursive) 
and extended (e.g. Array.map2). Some other aspects such as web services and 
complex numbers are better in F#. For many other things, such as FFTW, I 
write my own shim anyway and there are then no compatibility issues. Writing 
bindings is easier with F# and there are no silly Bigarrays (woohoo!) or 

> Microsoft could have contributed valuable changes back to OCaml,

As Skaller has said, we cannot contribute to the OCaml code base. Even if you 
fork the codebase you are still bound by its license and you are not allowed 
to redistribute your own modified OCaml distribution.

That is simply not viable for a corporation developing a product. We have 
considered paying to join the CAML Consortium in order to get a more liberal 
license with a view to developing a graphical top-level for OCaml like 
Mathematica's notebook front-end but licensing complications and the 
reliability of binary distributions under Linux deterred us.

> but instead decided to produce their own incompatible clone.

I'm hoping the few remaining incompatibilities between the obvious core 
language (e.g. being unable to supercede module-level definitions in F#) are 
ironed out before the first product release. The remaining differences 
(labelled and optional arguments are different, no structural subtyping 
including polymorphic variants) are sufficiently small that you can already 
port a lot of useful OCaml code to Windows quite easily and then sell it.

From a commercial perspective, it is very nice that you can sell F# DLLs 
easily. I've been wanting to sell Smoke for some time and this is the easiest 

Overall, anyone interested in earning a living from programming in OCaml 
should definitely consider F#. We are already earning a significant amount of 
money from it and I only see that improving...

Dr Jon D Harrop, Flying Frog Consultancy Ltd.