From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.1.3 (2006-06-01) on yquem.inria.fr X-Spam-Level: X-Spam-Status: No, score=0.4 required=5.0 tests=AWL autolearn=disabled version=3.1.3 X-Original-To: caml-list@yquem.inria.fr Delivered-To: caml-list@yquem.inria.fr Received: from mail3-relais-sop.national.inria.fr (mail3-relais-sop.national.inria.fr [192.134.164.104]) by yquem.inria.fr (Postfix) with ESMTP id 9D9B5BBC4 for ; Wed, 4 Mar 2009 22:20:59 +0100 (CET) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AokCABN/rkmLEwEye2dsb2JhbACVAwEBFiIFsniQLASECA X-IronPort-AV: E=Sophos;i="4.38,302,1233529200"; d="scan'208";a="23872883" Received: from apollo.mpi-sb.mpg.de ([139.19.1.50]) by mail3-smtp-sop.national.inria.fr with ESMTP/TLS/AES256-SHA; 04 Mar 2009 22:20:59 +0100 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mpi-sb.mpg.de; s=mail200803; h=Message-Id:From:To:In-Reply-To: Content-Type:Content-Transfer-Encoding:Subject:Mime-Version:Date: References; bh=f6dqCRX+BxVsyTEzz9otlegHg/ItSu1APf8lv/juTzM=; b=B wHkkw1OpAeJ5KzeMA71EvdAf5YUQMretyRrwSWzgEZFXrQmtvbfGwCFxlKXAs4fh G6QJh2bIRXsCUGBegLIYowtYI3rAiLW+zWByK3YSrzFdzFNmftpU7kGQoR9JJ/NH nyWvg2DEHaGooAtb+Tz53yYVXNd7yR4nl0n+y0lf20= Received: from infao0710.mpi-sb.mpg.de ([139.19.1.28]:50329 helo=newzak.mpi-sb.mpg.de) by apollo.mpi-sb.mpg.de (envelope-from ) with esmtp (Exim 4.69) id 1LeyWN-0002iF-Mm; Wed, 04 Mar 2009 22:20:58 +0100 Received: from srbk-5d801ea2.pool.einsundeins.de ([93.128.30.162]:62437 helo=[192.168.178.20]) by newzak.mpi-sb.mpg.de with esmtpsa (TLS-1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.63) (envelope-from ) id 1LeyWN-0002R6-90; Wed, 04 Mar 2009 22:20:55 +0100 Message-Id: <8FF84D3E-B0F2-4422-B0EE-CA6D2AE026B1@mpi-sws.mpg.de> From: Andreas Rossberg To: caml-list@yquem.inria.fr In-Reply-To: <8763ipypx1.fsf@aryx.cs.uiuc.edu> Content-Type: text/plain; charset=US-ASCII; format=flowed; delsp=yes Content-Transfer-Encoding: 7bit Subject: Re: [Caml-list] stl? Mime-Version: 1.0 (Apple Message framework v930.3) Date: Wed, 4 Mar 2009 22:20:55 +0100 References: <91a2ba3e0903031340wcdc976cp52522eb35f7ccb73@mail.gmail.com> <87eixdz12l.fsf@aryx.cs.uiuc.edu> <200903042007.43232.jon@ffconsultancy.com> <8763ipypx1.fsf@aryx.cs.uiuc.edu> X-Mailer: Apple Mail (2.930.3) X-Spam: no; 0.00; rossberg:01 rossberg:01 stl:01 syntax:01 parametric:01 polymorphism:01 inference:01 wadler:01 odersky:01 overloading:01 overloading:01 functor:01 parametric:01 polymorphism:01 functors:01 On Mar 4, 2009, at 21.49 h, Yoann Padioleau wrote: > > But haven't they added generics in Java because Java programmers > wanted some of the capabilities of C++ templates ? They even > use its syntax, and recent Java has added some ugly extensions > with some star-stuff around it that I don't understand. So I think > Java generics are closer to C++ templates than ML parametric > polymorphism > and its inference. Java Generics were originally designed by Wadler & Odersky, both of which came from functional programming. > And Java has decided to not follow C++ on many things, they also > don't have overloading, they have a GC, etc. It's just not the > same target. Java has overloading. > I think at least Stroustrup mentions in its "the design and > evolution of C++" book some comparisons with ML. > But probably at that time ML didn't > have yet the functor stuff, just the parametric polymorphism. ML modules, including functors, where invented around 83/84 (by MacQueen), more than half a decade before macros evolved into templates, and a decade before D&E was published. Interestingly, Stroustrup even had his office down the hall from MacQueen at AT&T at that time. So he knew _about_ ML, but that's probably as far as it goes. - Andreas