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 IAA13915; Tue, 29 Apr 2003 08:18:36 +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 IAA14649 for ; Tue, 29 Apr 2003 08:18:35 +0200 (MET DST) Received: from mail1.tpgi.com.au (mail.tpgi.com.au [203.12.160.57]) by nez-perce.inria.fr (8.11.1/8.11.1) with ESMTP id h3T6IXT20177 for ; Tue, 29 Apr 2003 08:18:33 +0200 (MET DST) Received: from ozemail.com.au (syd-ts15-2600-030.tpgi.com.au [203.213.83.30]) (authenticated (0 bits)) by mail1.tpgi.com.au (8.11.6/8.11.6) with ESMTP id h3T5kPB11489; Tue, 29 Apr 2003 15:46:26 +1000 Message-ID: <3EAE11A8.3050907@ozemail.com.au> Date: Tue, 29 Apr 2003 15:46:16 +1000 From: John Max Skaller User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:0.9.2.1) Gecko/20010901 X-Accept-Language: en-us MIME-Version: 1.0 To: Siegfried Gonzi CC: Brian Hurt , Ocaml Mailing List Subject: Re: [Caml-list] Easy solution in OCaml? References: <3EABF0AF.10503@stud.uni-graz.at> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Spam: no; 0.00; ozemail:01 caml-list:01 siegfried:01 gonzi:01 quicksort:01 haskell:01 verbose:01 python:01 interscript:01 horror:99 closures:01 unmanageable:01 blend:99 toxteth:01 glebe:01 Sender: owner-caml-list@pauillac.inria.fr Precedence: bulk Siegfried Gonzi wrote: > This also leads to the question: is development time really reduced in > (strict typed) functional programming, or is it only reduced when you > compare quicksort in Haskell and the verbose version in C. It depends on the kind of project AND what you mean by "development time". I'd include everything needed to be confident the result was correct. Two projects http://interscrtipt.sf.net -- in Python (A literate programming tool) http://felix.sf.next -- in Ocaml (A compiler for an algol-like language) Interscript verges on unmaintainability. Lightweight OO style without static typing. Felix is relatively easy to extend despite being considerably more complex. The implementation is procedural at the top level with heavy use of functional programming (mainly pure with memoisation) for computations. I shudder in horror at the idea of rewriting Felix in C++. The loss of basic functional stuff like closures and functional mapping (as well as variants) would make a difficult project unmanageable .. and that's just translating it, forget about new development. SO my answer is: Ocaml provides an excellent blend of both procedural and functional styles that make development of moderate sized projects very efficient. [moderate = 10K to 10M LOC]. I write small things in Python and try to avoid C++ unless I can generate it (despite being a member of the ISO committee standardising it). -- John Max Skaller, mailto:skaller@ozemail.com.au snail:10/1 Toxteth Rd, Glebe, NSW 2037, Australia. voice:61-2-9660-0850 ------------------- To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/ Beginner's list: http://groups.yahoo.com/group/ocaml_beginners