Version française
Home     About     Download     Resources     Contact us    

This site is updated infrequently. For up-to-date information, please visit the new OCaml website at

Browse thread
[Caml-list] Great Programming Language Shootout Revived
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: 2004-06-20 (11:15)
From: Brandon J. Van Every <vanevery@i...>
Subject: [Caml-list] Evangelism
What's this post of mine about?  Really, it's about Evangelism.  How do
people make decisions on what language to use?  Which languages survive
in industry and which ones die?  Herein I discuss general principles.
Extrapolation to OCaml is left as an exercise to the reader.

Wolfgang Müller wrote:
> No, for me personally language evangelism is not the point. Language
> evaluation is the point. If it comes out that the best language for
> solving my problems is actually JAVA, I swallow and say "yes,
> thanks for this information"

The problem space is too complex to believe you're swallowing anything
on 'objective merit'.  What you're really doing is iterating your
subjective criteria over and over again.  You probably have 10 variables
you care about.  It takes a lot of time, looking at a lot of options, to
identify which of those 10 variables aren't so important, which ones are
dealbreakers, which ones would subjectively improve your life if only
you had feature X, etc.

If you lay out all the permutations and/or combinations mathematically,
and assign some kind of fungible constant amount of time to each
iteration, i.e. "3 days," you will probably conclude that the decision
gets made when you run out of time.  To fully evaluate the problem
always takes more time than you have.  So at some point, you close your
eyes and make a leap.

Or else, someone more important than you are tells you what to do.

Companies like Microsoft thrive mainly on the limited amount of time
that most managers are willing to dedicate to these problems.

> Brandon Van Every wrote:
> >
> > Actually I think comparative benchmarking for some goal other than
> > evangelism is kinda pointless.
> How do you define "evangelism"?

I define it as "promoting the benefits of a technology in the face of
competition."  We have many programming languages we could choose to
use.  When we say that OCaml is better than other options for Problem X,
we are *evangelizing* OCaml.

> In any case, I
> would be interested in looking at a set of benchmarks that tells me if
> what I want to achieve can be done easily and efficiently in a given
> language or not, without me having to write too many comparative
> benchmarks myself. One per week is clearly too many for me. Ballpark
> figures are useful already.

My experience over the past year is:

- all compiled languages are within a similar ballpark of performance
- the performance divide is between compiled and interpreted
- small open source projects are useless for production coding
- only the large open source projects are any good
- if someone's language reeks of smallness, skip it
- if it doesn't have a VC++ build it's useless on Windows
- has someone solved *your problems* using the language?

My driving problems are:

- how do I make commercially viable games with less work?
- can I turn around and consult these skills to others?

I think it's important to define one's driving problems, and also
resolve conflicts between them.  You say you want language benchmarks.
Well, why?  What are they going to help you decide?  "Anything you might
want to achieve" is too vague.

Brandon Van Every               Seattle, WA

"We live in a world of very bright people building
crappy software with total shit for tools and process."
                                - Ed Mckenzie
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (
Version: 6.0.708 / Virus Database: 464 - Release Date: 6/18/2004

To unsubscribe, mail Archives:
Bug reports: FAQ:
Beginner's list: