There already exist such a common denominator language. For
performance reasons, it is architecture-dependent (I mean there are
several dialects to better use hardware peculiarities; the virtual
machine it runs on is not exactly virtual). Unfortunately, most
languages have concentrated on compiling to it in an efficient manner,
rather than considering how to interact with the other ones.

For maintainability reasons, we tend to develop N wrappers to a
historic common bridge language also compiled to that common
denominator (you may have heard of it before as it can also barely be
used for programming, it's called C), rather than N*N wrappers, one
for each pair of languages. The common denominator language also
doesn't provide runtime facilities (how could F#, SML, OCaml and
Haskell agree on a common runtime anyway?), and it is very hard to
make the various runtimes interact gracefully (eg. you basically can't
share data except raw numbers, only transfer ownership from one
runtime to another).

There have been plans to move to a better common denominator, or at
least a better bridge language (C--, LLVM, ...), but it is very hard
to move from the historical choice, despite the attracting technical
improvements of newer candidates. Moreover, it is basically impossible
to move up the abstraction ladder (eg. provide common runtime
components) without sacrificing universality or efficiency.

On Sat, Dec 10, 2011 at 11:36 AM, Diego Olivier Fernandez Pons
<[email protected]> wrote:
>     Caml-list,
>
> Given that other people are raising trolls, here is mine...
>
> I have to admit I appreciate F# transparent interaction with C# libraries
> which allows me to use large amounts of code that I would have had to poorly
> rewrite otherwise (GUI, database, web stuff, etc). Same happens with SML,
> Caml, Haskell and F#, some pieces of code are just way better in one
> language than in the others, and you end partially porting these libraries
> to Caml which is a waste of time and you don't benefit from the updates of
> the original code and nobody but you can maintain your quick-and-dirty port.
>
> Why isn't there a core functional languages to which everyone could compile,
> on which the compiler research could be done (certification, optimisation,
> garbage collection) and that would allow full interaction of the different
> dialects at run-time ?
>
> At some point I thought that C-- (http://www.cminusminus.org/index.html) and
> that type of work would converge to that but it never happened.
>
>         Diego Olivier


-- 
Caml-list mailing list.  Subscription management and archives:
https://sympa-roc.inria.fr/wws/info/caml-list
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners
Bug reports: http://caml.inria.fr/bin/caml-bugs

Reply via email to