Version française
Home     About     Download     Resources     Contact us    
Browse thread
OCaml && COCOA-Environment (Mac-OS-X/GUI)
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: -- (:)
From: Paul Snively <psnively@m...>
Subject: Mostly OT: Apple and Language Adoption was Re: [Caml-list] OCaml && COCOA-Environment (Mac-OS-X/GUI)
-----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-----