From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Delivered-To: caml-list@yquem.inria.fr Received: from concorde.inria.fr (concorde.inria.fr [192.93.2.39]) by yquem.inria.fr (Postfix) with ESMTP id DF53FBC75 for ; Fri, 25 Feb 2005 18:20:59 +0100 (CET) Received: from smtpout.mac.com (smtpout.mac.com [17.250.248.84]) by concorde.inria.fr (8.13.0/8.13.0) with ESMTP id j1PHKwKc008159 for ; Fri, 25 Feb 2005 18:20:59 +0100 Received: from mac.com (smtpin02-en2 [10.13.10.147]) by smtpout.mac.com (8.12.6/MantshX 2.0) with ESMTP id j1PHKpg2016924; Fri, 25 Feb 2005 09:20:52 -0800 (PST) Received: from [192.168.1.100] (dsl092-032-215.lax1.dsl.speakeasy.net [66.92.32.215]) (authenticated bits=0) by mac.com (Xserve/smtpin02/MantshX 4.0) with ESMTP id j1PHKoFj015605; Fri, 25 Feb 2005 09:20:51 -0800 (PST) In-Reply-To: <20050224232101.GA685@first.in-berlin.de> References: <3a2f4a1305020508377ec6ddaf@mail.gmail.com> <90118fcfddc239a0e5c9d949c5b39c42@cs.unm.edu> <20050223.091230.88701909.garrigue@math.nagoya-u.ac.jp> <20050224232101.GA685@first.in-berlin.de> Mime-Version: 1.0 (Apple Message framework v619.2) Content-Type: text/plain; charset=ISO-8859-1; format=flowed Message-Id: <4651205ebc7794393ee3b57568498194@mac.com> Content-Transfer-Encoding: quoted-printable Cc: caml-list@yquem.inria.fr From: Paul Snively Subject: Mostly OT: Apple and Language Adoption was Re: [Caml-list] OCaml && COCOA-Environment (Mac-OS-X/GUI) Date: Fri, 25 Feb 2005 09:20:39 -0800 To: Oliver Bandel X-Pgp-Agent: GPGMail 1.0.2 X-Mailer: Apple Mail (2.619.2) X-Miltered: at concorde with ID 421F5E7A.000 by Joe's j-chkmail (http://j-chkmail.ensmp.fr)! X-Spam: no; 0.00; caml-list:01 ocaml:01 hash:01 oliver:01 oliver:01 bandel:01 wrote:01 ocaml:01 apis:01 mcl:01 apis:01 mcl:01 api:01 gcc:01 runtime:01 X-Spam-Checker-Version: SpamAssassin 3.0.2 (2004-11-16) on yquem.inria.fr X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=disabled version=3.0.2 X-Spam-Level: -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Hi Oliver! On Feb 24, 2005, at 3:21 PM, Oliver Bandel wrote: > Apropos Apple.... when M$ creates F# out of Ocaml, > why not to trigger Apple to create sometging like > BackendObjects or ScientificObjects (as complementary to > WebObjects) out of OCaml on OS-X?! > > Maybe we should trigger Apple for this?! > > If not, they will use Objective-C and Java and nothing else. > Boy oh boy, where to begin with this? I was at Apple from 1989-1991, when John Sculley was CEO and at the=20 time that Jean-Louis Gasse=E9 was pushed out. At this time, Apple=20 Computer still had an Advanced Technology Group that did pure research,=20= and also had Apple Fellows who sometimes drove initiatives that=20 involved programming languages. Some folks in ATG really liked Coral=20 Common Lisp, so Apple bought Coral Software and thus Coral Common Lisp=20= became Macintosh Common Lisp. Alan Kay was an Apple Fellow, so he and=20 his colleagues created Squeak Smalltalk. Allen Cypher, author of "Watch=20= What I Do," was in ATG, so we got projects like KidSim, which became=20 Cocoa (not to be confused with Mac OS X's Cocoa APIs, of course). The=20 Newton became an active project, and that prompted the development of=20 Dylan and NewtonScript. Fast forward a few years, and MCL gets sold off, the Newton flops,=20 Dylan gets canceled, Kay and Squeak leave Apple, Cocoa gets canceled,=20 Steve Jobs returns and "Steves" not only whatever research projects are=20= left, but also some arguably core technologies such as Quickdraw 3D.=20 What Apple got instead was more standards-compliant technology such as=20= OpenGL, a better-known base in the form of FreeBSD-based Mac OS X but=20 with the Carbon and Cocoa APIs on top of it, and more focus on how to=20 actually innovate in the marketplace: iPod and iTunes, iMac, Mac=20 Mini... Oh, and a return to profitability during some of the personal=20 computing market's toughest years. It's also interesting to note that=20 several things that Apple dropped have nevertheless lived: Dylan is=20 kind of sputtering along thanks to heroic efforts by the Gwydion Dylan=20= team and the work of the former Functional Objects, Inc.; Squeak is=20 extremely healthy; MCL is still the best Common Lisp on any platform;=20 Quesa is a slowly-evolving but quite nice reimplementation of Quickdraw=20= 3D atop OpenGL... Culturally, my read is that Apple now has an extreme aversion to taking=20= on big promotional jobs, especially about languages: the Dylan debacle=20= scarred them. Market pressures forced them to backpedal from their=20 initial stance toward developers that Objective-C and Cocoa were the=20 "real" Mac OS X APIs and Carbon was merely a transitional API to the=20 reality that Carbon must provide access to virtually all Mac OS X=20 capabilities, e.g. HIViews and Sheets, and Objective-C and Cocoa are=20 marginal, Mac-OS-X-only tools for true believers. Later still they had=20= to go so far as to add "Objective-C++" to their version of GCC so that=20= developers could write their cross-platform core code in C++, and write=20= only the UI layer in Objective-C, which then needed to be able to call=20= the C++ core. Finally, it's been a long time since Apple was commanding 500% profit=20 margins and could afford to throw money away on research projects. Sad,=20= but true. So for a variety of political, historical, economic, and technical=20 reasons, it's not at all realistic to expect Apple to pursue anything=20 involving languages other than the absolutely mainstream: arguably the=20= only reason they support Objective-C is that it and OpenStep already=20 existed and were relatively mature at the time of the NeXT acquisition.=20= Java made it for a couple of reasons: it's plenty mainstream enough,=20 and the relationship between the Java runtime model and Objective-C=20 runtime model is sufficiently incestuous that there's some leverage to=20= be had by having them both. To try to bring this back home, this is why folks like Mike Hamburg and=20= myself are putting some thought into how to marry O'Caml and Cocoa=20 (which, by definition, includes the Objective-C runtime model). We'd=20 like to have something resembling the fluidity of Java <-> Objective-C,=20= but lacking reflection, we can't exactly, so on one hand we have to=20 have Mike's Obj.magic magic, and on the other we need something very=20 much like, if not exactly, Jeff Henrikson's Forklift magic. So we're=20 left with a bit of a transcontinental railroad project, but with a lot=20= of elbow grease and faith, hopefully the result will be nice, typesafe=20= O'Caml modules reflecting the entirety of Apple's Cocoa APIs. And then maybe we can come up with functorized modules providing a=20 consistent API to Cocoa, Win32, or lablgtk... ;-) > > Ciao, > Oliver > > _______________________________________________ > Caml-list mailing list. Subscription management: > http://yquem.inria.fr/cgi-bin/mailman/listinfo/caml-list > Archives: http://caml.inria.fr > Beginner's list: http://groups.yahoo.com/group/ocaml_beginners > Bug reports: http://caml.inria.fr/bin/caml-bugs > Best regards, Paul -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.0 (Darwin) iEYEARECAAYFAkIfXnEACgkQO3fYpochAqJhCQCbB6mWNrMZIHCWI8jTZM1BCC/A RIwAnRO6xoORB6hETMzR52x6/BA4h4iY =3Dsp7O -----END PGP SIGNATURE-----