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 BAA00096; Thu, 10 Apr 2003 01:00:12 +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 BAA00051 for ; Thu, 10 Apr 2003 01:00:10 +0200 (MET DST) Received: from hosting.commandprompt.com ([207.173.200.198]) by nez-perce.inria.fr (8.11.1/8.11.1) with ESMTP id h39N09917289 for ; Thu, 10 Apr 2003 01:00:09 +0200 (MET DST) Received: from respighi.local. (pool-68-160-158-217.bos.east.verizon.net [68.160.158.217]) (authenticated) by hosting.commandprompt.com (8.11.6/8.11.6) with ESMTP id h39Ma6J02339; Wed, 9 Apr 2003 15:36:06 -0700 Date: Wed, 9 Apr 2003 19:00:46 -0400 Subject: Re: mixing different languages (was: RE: [Caml-list] dynamic HTML pages) Content-Type: text/plain; charset=US-ASCII; format=flowed Mime-Version: 1.0 (Apple Message framework v543) Cc: To: Miles Egan From: Jeff Henrikson In-Reply-To: <1049911965.27729.17.camel@pompous.pixar.com> Message-Id: <1920235A-6ADF-11D7-81FD-00039375801A@yahoo.com> Content-Transfer-Encoding: 7bit X-Mailer: Apple Mail (2.543) X-Spam: no; 0.00; henrikson:01 jehenrik:01 caml-list:01 camlp:01 mucking:01 runtime:01 tradeoff:01 inference:01 python:01 egan:01 ocaml:01 byte:01 lisp:01 toplevel:01 checking:01 Sender: owner-caml-list@pauillac.inria.fr Precedence: bulk I'm not sure I understand what you want, but wouldn't just having a program spew stuff back into its own toplevel be a sledgehammer for dynamic metaprogramming? I'm surprised I haven't seen more code that does this. That combined with being able to do things like recurse over your own source code (esp. data types) with camlp4 seems way better than could be done by hand mucking java byte codes. But again, I'm not sure what you want. Jeff Henrikson . . . > It's hard to imagine doing some of the same things in a language like > OCaml, where runtime metaprogramming is difficult if not impossible. > How would one implement something like a general-purpose > object-relational mapper, for instance, in OCaml. Is this just a > fundmental engineering tradeoff of highly typed languages? Do you have > to sacrifice metaprogramming and runtime introspection for type > inference and type safety? > > It seems somewhat ironic to me that large projects in strictly typed > languages often end up building in some kind of meta-object layer and > that all the highly dynamic languages (lisp, python, etc) work hard to > do fancy type inference under the hood? Perhaps it's just a fact of > life that many complex software systems need to find some common middle > ground with a combination strict type checking and powerful > metaprogramming / introspection features? > > -- > Miles Egan > ------------------- 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