I'm not sure how easy it will be to bring this up constructively, but I'm
curious to hear what others have to say so I hope I can make it clear that this
isn't a criticism of ocaml but an honest curiousity.
I've been studying Ocaml on and off for about three years now and although I'm
still very impressed with its power I still don't really feel like I understand
it very well. I've also learned lisp, scheme, and python in the last few years
and, although Ocaml seems to me to be a more powerful language in many respects,
I feel that these other languages were much easier to learn. This is partly due
to my inexperience with functional languages, I'm sure, but I don't think that
alone accounts for it.
It feels to me to be more of an issue of the number of language features and
abstraction techniques each language offers. The other languages seem to "fit
in my brain" better. I have to admit that I find the conjunction of modules,
classes, variants, polymorphic variants, labels, references, streams etc. a bit
bewildering. I find myself at a bit of a loss when starting a new program
because I have so many avenues of decomposition open to me. I think I've
finally grasped the essentials well enough to write real programs in Ocaml, but
I can't say it's been easy.
I'm often tempted to push Ocaml as a solution for projects at work, but I
hesitate to advocate it too strongly because I honestly think Ocaml is beyond
the abilities of most of my colleagues. I suspect only the brightest of the
programmers I've worked with will come to grips with both functional programming
and the large array of features Ocaml offers fast enough to justify the time
taken to retrain.
Of all the functional languages, Ocaml seems to me the most pragmatic and most
useful for everyday programming, but I wonder if it's within the grasp of the
everyday user. I know a lot of fairly amateur C++ programmers who get by with a
small subset of the language, but it seems more difficult to limit oneself to a
small subset of Ocaml.
Have others had similar experiences? I suspect most of the readers of this list
are better-than-average programmers. How difficult have you found it to be to
teach Ocaml to your colleagues? Any suggestions on a simple pedagogy for
bringing more junior people abreast of subjects as esoteric as polymorphic
recursive types?
--
miles
-------------------
To unsubscribe, mail caml-list-request@inria.fr. Archives: http://caml.inria.fr