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
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: 2005-11-04 (16:50)
From: Matt Gushee <matt@g...>
Subject: Re: [Caml-list] what is high-level
Brian Hurt wrote:

> OK, here's the thing: Ocaml is a different paradigm than Python, Ruby,
> and PHP.  If you know Pascal, C, Fortran, etc., then learning PHP isn't
> difficult, because it too is a procedural language.  If you know C++,
> Java, etc., then learning Python or Ruby isn't that hard, because
> they're Object Oriented languages too.  If you already know SML or
> Haskell, learning Ocaml wouldn't be that hard.  The problem is that most
> people don't know SML or Haskell.

I used to believe that too, and have told people more than once: "It's
not inherently harder, it's just different from what you're used to."
But my opinion has changed. Actually, I would argue, making effective
use of functional techniques *is* harder because it requires more
abstract thinking. Procedural programming is full of "Do A to X, then do
B to Y ..."--a series of concrete operations performed on explicit
entities. There are no lambdas, no partial evaluation, no HOFs ... and
the fact that functions are always named and always defined in a
specific, identifiable piece of code is limiting, but also can make it
much easier to understand what a program is doing.

And I would argue that functional programming is a way of "working
smarter, not harder"--which of course requires knowing something. It may
be that the same is true of good OO programming, but as far as I can
tell few OO practitioners have a very deep understanding of the paradigm
(note that my impressions come mostly from exposure to run-of-the-mill
corporate Java programmers).

Matt Gushee
Englewood, CO, USA