caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
From: Paul Snively <psnively@mac.com>
To: Oliver Bandel <oliver@first.in-berlin.de>
Cc: caml-list@yquem.inria.fr
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	[thread overview]
Message-ID: <4651205ebc7794393ee3b57568498194@mac.com> (raw)
In-Reply-To: <20050224232101.GA685@first.in-berlin.de>

-----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 
time that Jean-Louis Gasseé was pushed out. At this time, Apple 
Computer still had an Advanced Technology Group that did pure research, 
and also had Apple Fellows who sometimes drove initiatives that 
involved programming languages. Some folks in ATG really liked Coral 
Common Lisp, so Apple bought Coral Software and thus Coral Common Lisp 
became Macintosh Common Lisp. Alan Kay was an Apple Fellow, so he and 
his colleagues created Squeak Smalltalk. Allen Cypher, author of "Watch 
What I Do," was in ATG, so we got projects like KidSim, which became 
Cocoa (not to be confused with Mac OS X's Cocoa APIs, of course). The 
Newton became an active project, and that prompted the development of 
Dylan and NewtonScript.

Fast forward a few years, and MCL gets sold off, the Newton flops, 
Dylan gets canceled, Kay and Squeak leave Apple, Cocoa gets canceled, 
Steve Jobs returns and "Steves" not only whatever research projects are 
left, but also some arguably core technologies such as Quickdraw 3D. 
What Apple got instead was more standards-compliant technology such as 
OpenGL, a better-known base in the form of FreeBSD-based Mac OS X but 
with the Carbon and Cocoa APIs on top of it, and more focus on how to 
actually innovate in the marketplace: iPod and iTunes, iMac, Mac 
Mini... Oh, and a return to profitability during some of the personal 
computing market's toughest years. It's also interesting to note that 
several things that Apple dropped have nevertheless lived: Dylan is 
kind of sputtering along thanks to heroic efforts by the Gwydion Dylan 
team and the work of the former Functional Objects, Inc.; Squeak is 
extremely healthy; MCL is still the best Common Lisp on any platform; 
Quesa is a slowly-evolving but quite nice reimplementation of Quickdraw 
3D atop OpenGL...

Culturally, my read is that Apple now has an extreme aversion to taking 
on big promotional jobs, especially about languages: the Dylan debacle 
scarred them. Market pressures forced them to backpedal from their 
initial stance toward developers that Objective-C and Cocoa were the 
"real" Mac OS X APIs and Carbon was merely a transitional API to the 
reality that Carbon must provide access to virtually all Mac OS X 
capabilities, e.g. HIViews and Sheets, and Objective-C and Cocoa are 
marginal, Mac-OS-X-only tools for true believers. Later still they had 
to go so far as to add "Objective-C++" to their version of GCC so that 
developers could write their cross-platform core code in C++, and write 
only the UI layer in Objective-C, which then needed to be able to call 
the C++ core.

Finally, it's been a long time since Apple was commanding 500% profit 
margins and could afford to throw money away on research projects. Sad, 
but true.

So for a variety of political, historical, economic, and technical 
reasons, it's not at all realistic to expect Apple to pursue anything 
involving languages other than the absolutely mainstream: arguably the 
only reason they support Objective-C is that it and OpenStep already 
existed and were relatively mature at the time of the NeXT acquisition. 
Java made it for a couple of reasons: it's plenty mainstream enough, 
and the relationship between the Java runtime model and Objective-C 
runtime model is sufficiently incestuous that there's some leverage to 
be had by having them both.

To try to bring this back home, this is why folks like Mike Hamburg and 
myself are putting some thought into how to marry O'Caml and Cocoa 
(which, by definition, includes the Objective-C runtime model). We'd 
like to have something resembling the fluidity of Java <-> Objective-C, 
but lacking reflection, we can't exactly, so on one hand we have to 
have Mike's Obj.magic magic, and on the other we need something very 
much like, if not exactly, Jeff Henrikson's Forklift magic. So we're 
left with a bit of a transcontinental railroad project, but with a lot 
of elbow grease and faith, hopefully the result will be nice, typesafe 
O'Caml modules reflecting the entirety of Apple's Cocoa APIs.

And then maybe we can come up with functorized modules providing a 
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
=sp7O
-----END PGP SIGNATURE-----


  reply	other threads:[~2005-02-25 17:20 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-02-05  0:02 Oliver Bandel
2005-02-05 16:37 ` [Caml-list] " Julien Roussel
2005-02-05 19:51   ` Mike Hamburg
2005-02-06 21:04     ` Paul Snively
2005-02-07  2:24       ` Oliver Bandel
2005-02-09 19:41         ` Mike Hamburg
2005-02-17  7:12       ` Jeff Henrikson
2005-02-18 23:41         ` [Caml-list] " art yerkes
2005-02-25  2:03         ` Paul Snively
2005-02-25  9:13           ` Oliver Bandel
2005-02-26  1:19             ` [Caml-list] " Sachin Shah
2005-03-01  6:39           ` Jeff Henrikson
2005-03-07  5:20             ` Paul Snively
2005-02-22  2:45     ` [Caml-list] " William D.Neumann
2005-02-23  0:12       ` Jacques Garrigue
2005-02-24 20:40         ` Paul Snively
2005-02-24 23:21           ` Oliver Bandel
2005-02-25 17:20             ` Paul Snively [this message]
2005-02-22 10:54     ` Oliver Bandel

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4651205ebc7794393ee3b57568498194@mac.com \
    --to=psnively@mac.com \
    --cc=caml-list@yquem.inria.fr \
    --cc=oliver@first.in-berlin.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).