Browse thread
RE: [Caml-list] Some Clarifications
[
Home
]
[ Index:
by date
|
by threads
]
[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
| Date: | -- (:) |
| From: | Jon Harrop <jon@f...> |
| Subject: | Re: [Caml-list] Some Clarifications |
On Wednesday 27 July 2005 10:38, Don Syme wrote: > For what it's worth, I found your posts genuinely interesting. I think there is something of interest worth discussing but most of it would be more appropriate on c.l.functional than here. I'd be happy to discuss this there. Just replying to the OPs OCaml-related comments: I don't think that most programmers use OO because it is the right tool for the job. I think they use it either because it is forced upon them (Java) or because the language fails to provide alternatives (C++). OCaml is a useful case study here because it provides many alternatives. You're not going to implement a closure via an object (as you would in C++) or a 3D vector via an object (as you would in Java), for example. So it is instructive to look at uses of OO in OCaml code. Of the OCaml code which I have studied, the OCaml compilers make scarce use of objects, the stdlib makes no use (IIRC), the third party data structures and algorithms that I use also make no use of OO but lablgtk uses OO and I have one friend who has tried using OO in his own OCaml work. In my code, I have used an object once, in order to circumvent a typing problem. I have never successfully used OO in OCaml. From my point of view, it is interesting to compare graphics and GUI code which I have written in a classical FP style to a friend's who chose the OO approach because GUI code is a pedagogical example of OO design. Although it is early days, I see no evidence that OO is any better than the classical FP approach at this task. > Part of what I think accounts for the popularity of OO in the real world is > that it allows you to program in a very sloppy way in the early stages of > development without blowing your ability to muck with the way things > interact, and alter their behavior later in the development process. > Ideally, it allows you to build big, sloppy, poorly planned systems that > are nevertheless manageable to maintain. My experience is exactly the opposite. I worked on a project for several years which was written in C++ and which used OO extensively. Ultimately, we ditched both C++ and OO in favour of OCaml and FP precisely because we wanted to make a few fundamental changes and those changes were simply too difficult for us to make successfully. In contrast, we have made many similarly complicated fundamental changes to the OCaml code with no problems. So, despite reasonable understanding and planning beforehand, OO completely failed to allow us to maintain and develop the program. > I find that the facilities of a language like OCaml are so inadequate to > represent this domain, that using OCaml can be a distinct impediment. If you would like to discuss OCaml-related stuff then I'd like to hear more: specifically what it is you're working on, what you have tried and failed to do in OCaml and why you think OCaml is "so inadequate"? -- Dr Jon D Harrop, Flying Frog Consultancy Ltd. Objective CAML for Scientists http://www.ffconsultancy.com/products/ocaml_for_scientists