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 CAA01587; Thu, 10 Apr 2003 02:19:47 +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 CAA01361 for ; Thu, 10 Apr 2003 02:19:46 +0200 (MET DST) Received: from manly.caddr.com ([192.153.219.146]) by concorde.inria.fr (8.11.1/8.11.1) with ESMTP id h3A0JiX27264 for ; Thu, 10 Apr 2003 02:19:45 +0200 (MET DST) Received: from pompous.pixar.com (pompous.pixar.com [138.72.15.78]) by manly.caddr.com (Postfix) with ESMTP id 2546420A0A; Wed, 9 Apr 2003 17:20:03 -0700 (PDT) Subject: Re: mixing different languages (was: RE: [Caml-list] dynamic HTML pages) From: Miles Egan To: Jeff Henrikson Cc: caml list In-Reply-To: <1920235A-6ADF-11D7-81FD-00039375801A@yahoo.com> References: <1920235A-6ADF-11D7-81FD-00039375801A@yahoo.com> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-+1ZD9P5cnajKjd0F7gTT" Message-Id: <1049933982.32495.3.camel@pompous.pixar.com> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.4- Date: 09 Apr 2003 17:19:42 -0700 X-Spam: no; 0.00; egan:01 caml-list:01 persist:01 00,:99 henrikson:01 camlp:01 mucking:01 runtime:01 tradeoff:01 inference:01 python:01 ocaml:01 byte:01 lisp:01 toplevel:01 X-Attachments: type="application/pgp-signature" name="signature.asc" Sender: owner-caml-list@pauillac.inria.fr Precedence: bulk --=-+1ZD9P5cnajKjd0F7gTT Content-Type: text/plain Content-Transfer-Encoding: quoted-printable Take object-relational mapping as an example. Let's say I want to write an o-r mapping layer that can persist arbitrary classes without having access to their source code. On Wed, 2003-04-09 at 16:00, Jeff Henrikson wrote: > I'm not sure I understand what you want, but wouldn't just having a=20 > program spew stuff back into its own toplevel be a sledgehammer for=20 > dynamic metaprogramming? I'm surprised I haven't seen more code that=20 > does this. That combined with being able to do things like recurse=20 > over your own source code (esp. data types) with camlp4 seems way=20 > better than could be done by hand mucking java byte codes. But again,=20 > I'm not sure what you want. >=20 >=20 > Jeff Henrikson >=20 >=20 > . . . > > 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? > > > > --=20 > > Miles Egan > > --=20 Miles Egan --=-+1ZD9P5cnajKjd0F7gTT Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.1 (GNU/Linux) iD8DBQA+lLieU4Jq/wH1PVERAvSZAKD9brzFzQByzDuV74kXfJ4f5RsolwCg4i3D NyT4KpwSFNlNDN/WdsegRxs= =Kzbd -----END PGP SIGNATURE----- --=-+1ZD9P5cnajKjd0F7gTT-- ------------------- 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