Version française
Home     About     Download     Resources     Contact us    
Browse thread
(Mostly) Functional Design?
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: -- (:)
From: skaller <skaller@u...>
Subject: Re: [Caml-list] (Mostly) Functional Design?
On Mon, 2005-07-18 at 21:45 +0200, Gerd Stolpmann wrote:

> Well, I don't believe that. There aren't any technical reasons why
> people don't think FP languages are attractive. There are social
> reasons.

There are technical reasons why existing FP *tools* aren't 
attractive.. though it is hard to divorce 'technical' from
'social': programming is a human activity, and so 
intrinsically social.

The most important problem with FP languages is quite
simple -- it is expensive to interface them to existing
code. And the 'social' analogue: existing programmers.

Most projects (a) reuse existing code and (b) reuse
existing programmers. It isn't a matter of going back
to school. C++ was successful precisely because it allowed
reuse of both C code and C programmers. Ocaml can be
successful where starting from scratch is OK: a new
project or a new business venture.

Secondly, the tools have some real problems, like
all tools. Ocaml, for example, just cannot generate
dynamically loadable binary libraries easily (if at all),
and whilst it can use source code libraries .. there
are no namespaces or packages to organise large code bases.

The former isn't a problem with the Ocaml language though..
but it is enough of a problem with the tools that I've spent
5 years developing an FP language (in Ocaml of course)
that can generate dynamically loadable libraries.

If only 'XYZ' functional language could simply replace
C generating C libraries, it would be an instant winner!
But even C++ can't do that .. you can use C libs in C++
but not the other way around, at least not easily
(because of exception handling ..)

-- 
John Skaller <skaller at users dot sourceforge dot net>