Re: convincing management to switch to Ocaml

From: Markus Mottl (mottl@miss.wu-wien.ac.at)
Date: Fri Jul 30 1999 - 11:00:20 MET DST


From: Markus Mottl <mottl@miss.wu-wien.ac.at>
Message-Id: <199907300800.KAA25943@miss.wu-wien.ac.at>
Subject: Re: convincing management to switch to Ocaml
To: Basile.Starynkevitch@cea.fr (STARYNKEVITCH Basile)
Date: Fri, 30 Jul 1999 10:00:20 +0100 (MET DST)
In-Reply-To: <14239.6150.864319.797849@gargle.gargle.HOWL> from "STARYNKEVITCH Basile" at Jul 28, 99 04:47:34 pm

> Does any one have clues or positive experience about convincing
> management to switch to Ocaml?

If the term "management" also covers responsible academic staff, the
answer is unfortunately: "no". I have tried (really hard) to change the
mind of professors and assistants at a Department of Applied Computer
Science at a University of Economics to teach other languages than C/C++
to students of "commercial data processing".

Having been the system administrator, I had to see that students had
enormous problems grasping the ideas of these languages. Instead of
learning good ways to design software (algorithms, datastructures,
abstraction methods), they wasted most of their time trying to figure
out the complex and ill syntax and semantics of these languages.

The reason, why my proposal was declined, was that "industry needs C++
so we teach C++" - what a miserable attitude for an academic institution!

> My manager's arguments are:
>
> * There is an existing (important) code base (a static C code
> analyser) coded in C and C++ and it is unreasonable to recode it.

Although I think that these arguments are just lame excuses (see below),
it is fairly easy to eliminate this one:

Interfacing OCaml to C/C++ is nearly as easy as writing header files -
even if you do it by hand. But CamlIDL does a very good job, so making
existing code bases available to OCaml is a neglictible effort.

> * Ocaml is an academic langage

As you can see above, even academia is not prepared to change its mind
easily.

Anyway, I think there are enough people from "industry" in this mailing
list who can prove the opposite...

> * Ocaml is a slow implentation

Another lame excuse: this is a matter of "not knowing". My personal
experience (and I'd be surprised if other people in this list don't share
it) is that when programming in OCaml I find it much easier to use more
sophisticated (=complicated) algorithms and datastructures. So my programs
most often run even *faster* than earlier versions of my software in, say,
C++. Last but not least, this is due to the *astonishing* performance
of the native code compiler (actually, to my knowledge the byte code
compiler and the toplevel interpreter have no competitors in "industry"
which can match their performance).

> * Ocaml is hard to learn for people (fluent in C++) with less than a PhD
> in computer science (unfortunately for me, I do hold a PhD in
> Artif. Intel.)

I don't have any degree at all, had also programmed C++ for some
years before having switched to OCaml and it was a most encouraging
experience when I decided to learn it: for the first time in life I
had the impression that I had *really* understood what algorithms and
datastructures are about. The educational effect on the programmer
is enormous! I am sure this is also true for PhDs who change from C++
to OCaml.

> * Ocaml might not last long (but ESPRIT projects don't last neither)

In, say, 60 years or so I will also not last anymore - and before that
I will definitely not want to waste my life time with C++ (personal
opinion).

Now, what concerns the life time of "projects" in industry:

The true reason, why your boss comes up with arguments against OCaml
(about which he obviously doesn't know anything at all) is, well, not
laziness to change mind: I'd say he is *risk averse*.

It's the same as with Linux: although provably technically superior to
most competitors on the market (especially *the* competitor), management
in industry was very reluctant to make use of it - if some project fails,
a manager cannot be blamed for having used "new toy technologies" (even
though these technologies would have made a failure much more unlikely).

The same is true for OCaml: one has to admit that industry got "burned"
from time to time when they decided to make use of a "new" language.

The only possibility I see is to have the "lower levels of hierarchie"
create enough pressure on management. So try to convince as many
colleagues as possible - if there are enough "evangelized" people among
them, you might stand a much better chance to turn the boss around.
There is very probably no "quick" way of introducing OCaml to industry. It
all takes time and much effort - but I think OCaml is worth it.

> Any *quantitative* facts about Ocaml productivity boosts will be
> appreciated; any history about switching to Ocaml for an
> *existing* project with an existing code base (about 300kloc of C or
> C++) would be great.

A personal and rather conservative judgement of my productivity gains:
I'd say, at least a factor of 3 (probably more) compared to C++. Not
even to mention the better quality of the resulting product...

I see that "marketing" OCaml (and computer languages in general) is
a tough problem: you cannot just send a TV-spot "Use OCaml!". On the
other hand it is clear that without marketing even the most advanced
technologies won't be successful. OCaml is not Java (that's good) -
mainly because INRIA is not Sun. I really wonder what kind of steps
INRIA generally takes so as to promote their products...

Good luck with promoting OCaml,
Markus Mottl

-- 
Markus Mottl, mottl@miss.wu-wien.ac.at, http://miss.wu-wien.ac.at/~mottl



This archive was generated by hypermail 2b29 : Sun Jan 02 2000 - 11:58:24 MET