From mboxrd@z Thu Jan 1 00:00:00 1970 Received: (from majordomo@localhost) by pauillac.inria.fr (8.7.6/8.7.3) id SAA12209; Wed, 6 Jun 2001 18:50:49 +0200 (MET DST) X-Authentication-Warning: pauillac.inria.fr: majordomo set sender to owner-caml-list@pauillac.inria.fr using -f Received: from nez-perce.inria.fr (nez-perce.inria.fr [192.93.2.78]) by pauillac.inria.fr (8.7.6/8.7.3) with ESMTP id SAA12684 for ; Wed, 6 Jun 2001 18:50:48 +0200 (MET DST) Received: from www.invert.com (invert.com [209.164.21.15]) by nez-perce.inria.fr (8.11.1/8.10.0) with ESMTP id f56Goln01727 for ; Wed, 6 Jun 2001 18:50:47 +0200 (MET DST) Received: (from miles@localhost) by www.invert.com (8.10.1/8.10.1AA) id f56GofB93824 for caml-list@inria.fr; Wed, 6 Jun 2001 09:50:41 -0700 (PDT) (envelope-from miles) Date: Wed, 6 Jun 2001 09:50:41 -0700 From: Miles Egan To: caml-list@inria.fr Subject: [Caml-list] ocaml complexity Message-ID: <20010606095041.A93623@caddr.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.2.5i Sender: owner-caml-list@pauillac.inria.fr Precedence: bulk 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