caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
From: Matt Gushee <matt@gushee.net>
To: caml-list@inria.fr
Subject: Re: [Caml-list] what is high-level
Date: Fri, 04 Nov 2005 09:50:48 -0700	[thread overview]
Message-ID: <436B9168.90707@gushee.net> (raw)
In-Reply-To: <Pine.LNX.4.63.0511040900470.1006@localhost.localdomain>

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


  parent reply	other threads:[~2005-11-04 16:50 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-11-03 17:26 Wikipedia Jon Harrop
2005-11-03 19:24 ` [Caml-list] Wikipedia Gerd Stolpmann
2005-11-04  2:31   ` skaller
2005-11-04 13:46     ` [Caml-list] what is high-level (was: Wikipedia) Blue Prawn
2005-11-04 15:13       ` Brian Hurt
2005-11-04 15:28         ` David Teller
2005-11-04 16:02           ` skaller
2005-11-04 16:06           ` [Caml-list] what is high-level Alan Falloon
2005-11-04 16:10             ` William D. Neumann
2005-11-04 16:14             ` David Teller
2005-11-05  0:29             ` skaller
2005-11-05 22:05               ` Michael Walter
2005-11-06 14:28                 ` skaller
2005-11-04 16:50         ` Matt Gushee [this message]
2005-11-03 19:30 ` [Caml-list] Wikipedia Kip Macy
2005-11-03 20:46   ` Matt Gushee
2005-11-03 21:08     ` Mike Lin
2005-11-03 21:16 ` Florian Weimer
2005-11-04 17:15 ` Thomas Fischbacher
2005-11-04 21:05   ` Alex Goldman
2005-11-04 21:53     ` Gerd Stolpmann
2005-11-04 22:24       ` Alex Goldman
2005-11-06 19:32 ` Thomas Fischbacher
2005-11-07  6:44   ` Tony Edgin
2005-11-07 12:23     ` Thomas Fischbacher
2005-11-07 12:55       ` skaller
2005-11-07 13:03         ` Thomas Fischbacher

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=436B9168.90707@gushee.net \
    --to=matt@gushee.net \
    --cc=caml-list@inria.fr \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).