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 TAA21667; Sun, 18 Aug 2002 19:07:15 +0200 (MET DST) X-Authentication-Warning: pauillac.inria.fr: majordomo set sender to owner-caml-list@pauillac.inria.fr using -f Received: from concorde.inria.fr (concorde.inria.fr [192.93.2.39]) by pauillac.inria.fr (8.7.6/8.7.3) with ESMTP id TAA21752 for ; Sun, 18 Aug 2002 19:07:14 +0200 (MET DST) Received: from mail1.tpgi.com.au (mail.tpgi.com.au [203.12.160.57]) by concorde.inria.fr (8.11.1/8.11.1) with ESMTP id g7IH6lr15519 for ; Sun, 18 Aug 2002 19:06:57 +0200 (MET DST) Received: from ozemail.com.au (syd-ts14-2600-184.tpgi.com.au [203.213.82.184] (may be forged)) (authenticated (0 bits)) by mail1.tpgi.com.au (8.11.6/8.11.6) with ESMTP id g7IH5ap25891; Mon, 19 Aug 2002 03:05:37 +1000 Message-ID: <3D5FD3DF.60706@ozemail.com.au> Date: Mon, 19 Aug 2002 03:05:35 +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: "Gurr, David (MED, self)" CC: Vitaly Lugovsky , "Yurii A. Rashkovskii" , caml-list@inria.fr Subject: Re: [Caml-list] Namespace proposal References: Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Sender: owner-caml-list@pauillac.inria.fr Precedence: bulk Gurr, David (MED, self) wrote: > My two cents worth: Please dont copy package ideas from > languages that lack functors. And Java's package == > directory idea is far from beloved by all. -D While I agree that 'package == directory' has problems, languages that do not properly allow installation of third party packages in such a way as to avoid name clashes in supporting components, have even more problems. Ocaml is in this position. It can't be easily use in large projects which incorporate many third party libraries. Separable installation is possible but clumbsy (use OCAMLPATH), but there is no associated mechanism for nameclash avoidance. In theory, one could use nested modules to avoid nameclashes. In practice that is out of the question because it requires all the modules be in one file. C had exactly the same problem, which is why C++ added namespaces (independently of file locations). Python had this problem, which is why it added packages (dependent on directory structure). I personally favour the Eiffel approach because it is the most flexible -- the dependence of top level component names on files/directories is defined by a secondary configuration language. However, it is a somewhat heavy approach. One thing is for sure though. The ability to install third party packages in directories, and the ability to avoid name clashes in supporting components, are both required for programming in the large. Ocaml is so close to a solution: both separable installation and name clash avoidance are possible, but the mechanisms cannot be easily integrated. -- 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