[comp.sys.mac.programmer] Objective-C compiler?

mf2u+@andrew.cmu.edu (Matthew Raymond Flatt) (12/09/90)

Is there an Objective-C compiler (as opposed to C++) for the Mac? I'm
just wondering, really.

Matthew

melling@cs.psu.edu (Michael D Mellinger) (12/10/90)

In article <EbMKdp600UhW02N1I1@andrew.cmu.edu> mf2u+@andrew.cmu.edu (Matthew Raymond Flatt) writes:


   Is there an Objective-C compiler (as opposed to C++) for the Mac? I'm
   just wondering, really.

   Matthew

NeXT gave their Objective-C enhancements of GCC to the FSF, and the
changes will be incorporated into GCC 2.0.  Someone will probably port
it to the Mac so that in runs under AU/X(not the FSF, of course).

-Mike

leonardr@svc.portal.com (Leonard Rosenthol) (12/11/90)

In article <Fkcopmq3@cs.psu.edu>, melling@cs.psu.edu (Michael D Mellinger)
writes:
> 
> In article <EbMKdp600UhW02N1I1@andrew.cmu.edu> mf2u+@andrew.cmu.edu (Matthew Raymond Flatt) writes:
> 
> 
>    Is there an Objective-C compiler (as opposed to C++) for the Mac? I'm
>    just wondering, really.
> 
>    Matthew
> 
	I spoke with Brad Cox recently, who told me that Stepstone is doing
an Objective-C compiler for the Mac, though he was not willing to comment
on time frame (I would guess 2nd quarter). 
	I didn't (stupid me) ask about things like MacApp compatibility,
or MPW vs. standalone, so don't ask ;-)
--
----------------------------------------------------------------------
+ Leonard Rosenthol              | Internet: leonardr@sv.portal.com  +
+ Software Ventures              | GEnie:    MACgician               +
+ MicroPhone II Development Team | AOL:      MACgician1              +
----------------------------------------------------------------------

ech@cbnewsk.att.com (ned.horvath) (12/12/90)

In article <EbMKdp600UhW02N1I1@andrew.cmu.edu> mf2u+@andrew.cmu.edu (Matthew Raymond Flatt) writes:

>    Is there an Objective-C compiler (as opposed to C++) for the Mac? I'm
>    just wondering, really.

From article <1990Dec10.173008.22143@svc.portal.com>, by leonardr@svc.portal.com (Leonard Rosenthol):
> 	I spoke with Brad Cox recently, who told me that Stepstone is doing
> an Objective-C compiler for the Mac, though he was not willing to comment
> on time frame (I would guess 2nd quarter). 
> 	I didn't (stupid me) ask about things like MacApp compatibility,
> or MPW vs. standalone, so don't ask ;-)

Hi, Leonard --

Frankly, the object models of Object Pascal (i.e., MacApp) and Objective-C
are so different that it's hard for me to imagine MacApp support.

On the other hand, Cox/Stepstone are very high on the notion of "software
ICs", and they sell several class libraries as "ICpak nnn".  So maybe
we'll get some platform-independent class libraries instead (hope, hope).

Meantime, you can go play with SmallTalk-V...

=Ned Horvath=

Garance_Drosehn@mts.rpi.edu (Garance Drosehn) (12/12/90)

In article <1990Dec12.043710.27551@cbnewsk.att.com> 
           ech@cbnewsk.att.com (ned.horvath) writes:
> Frankly, the object models of Object Pascal (i.e., MacApp) and 
> Objective-C are so different that it's hard for me to imagine
> MacApp support.

Um, but isn't it true that there's a C++ version of MacApp around (or in 
the works)?  Would Objective-C fit in well with the object models of C++?

Garance_Drosehn@mts.rpi.edu
   (who is just in the process of learning C++, and doesn't know much
    of the details for any of these OP languages...   :-)

ech@cbnewsk.att.com (ned.horvath) (12/13/90)

I had said,
> Frankly, the object models of Object Pascal (i.e., MacApp) and 
> Objective-C are so different that it's hard for me to imagine
> MacApp support.

From article <#%F^8W_@rpi.edu>, by Garance_Drosehn@mts.rpi.edu (Garance Drosehn):
> Um, but isn't it true that there's a C++ version of MacApp around (or in 
> the works)?  Would Objective-C fit in well with the object models of C++?

> Garance_Drosehn@mts.rpi.edu

Hmm, I guess I wasn't explicit enough.  C++, Object Pascal, and Eiffel
all treat the notion of "class" as an extention of the idea of "datatype."
The type of an object is always well-defined, and the set of messages that
object can respond to are always completely specified (and restricted)
by that type.  An object reference always has a specific static type,
which further restricts the set of messages that can be sent to the
object, and the object referred to always has to be "conformable" with
the static type of the reference.  In Object Pascal conformable just
means "of the same class or a subclass of that class."  Eiffel and C++
have multiple inheritance, and I won't even TRY to tackle the
implications of THAT in a short note!

By contrast, Objective-C is, to a first approximation, SmallTalk-80
embedded in C.  (I don't claim the approximation is exact, flames to
comp.object.)  While every object still has a definite type, object
references are essentially typeless, and it's always valid to send any
message to any object, with a default behavior that the system stops
and says "<object> doesn't know how to <message>."

Reconciling such disparate models is a very difficult task, I'd call
it a practical impossibility.  Indeed, mixing C++ with Object Pascal
requires the C++ programmer to restrict shared objects to be heap-
resident, handle-based, and use single-inheritance.  But even that
degree of compatibility required some very careful implementation
by the MPW engineers at Apple (thanks, all).

The plus side of my posting is that, while I wouldn't expect MacApp
to be supported by Objective-C, MacApp is not the only generic
application imaginable, or even the only one presently shipping
(the Think Class Library comes immediately to mind).

In the particular case of Objective-C, Stepstone and third parties
have developed and continue to develop class libraries (ICpaks),
including Mac-like interface elements, which fit the Objective-C model
but aren't restricted to a single platform.  Brad Cox isn't just a techie,
he's also a businessman.  If he's thinking about Objective-C for the Mac,
he's fully aware that Mac users (and programmers) take the guidelines
seriously.  So, I would expect a pretty complete set of ICpaks,
exploiting the Mac Toolbox, on day 1...

=Ned Horvath=

ejd@iris.brown.edu (Ed Devinney) (12/13/90)

This is all an interesting discussion, particularly Ned Horvath's 
informative explanation of object models, but I'm still skeptical that 
Stepstone would build a Macintosh version.  In fact, when I visited the 
company in October to arrange a demo period for the Sun4/X version for our 
institute, I was assured by the (VP/Engineering, I believe) that 
Stepstone was _not_ developing a Mac version.

In article <1990Dec12.161329.12831@cbnewsk.att.com> ech@cbnewsk.att.com 
(ned.horvath) writes:
> In the particular case of Objective-C, Stepstone and third parties
> have developed and continue to develop class libraries (ICpaks),
> including Mac-like interface elements, which fit the Objective-C model
> but aren't restricted to a single platform.
[...]
> If he's thinking about Objective-C for the Mac,
> he's fully aware that Mac users (and programmers) take the guidelines
> seriously.  So, I would expect a pretty complete set of ICpaks,
> exploiting the Mac Toolbox, on day 1...

Here is exactly why I think that Stepstone will not have a package for the 
Mac anytime soon.  Mac users & programmers expect to follow the guidelines 
very, very closely, and therefore a Mac application framework ends up 
being very closely bound to the Mac interface idiom.  That's a lot of 
effort to support a rather small (by comparison) user base.  The current 
portable interface lib, ICPak201, is primarily derivative (from a users 
perspective) of Windows, and would make most Mac users flee at first 
sight.  If Stepstone does what I think it will do, they will support a 
real Motif interface well before the Macintosh, sad to say.

ed

Ed Devinney ... ejd@iris.brown.edu ... IRIS/Brown University
- "It's keen! It's pure keen! No, it's better than keen ... it's koogat!" 
:  _Sleeper_ -

daven@svc.portal.com (12/13/90)

In article <1990Dec12.043710.27551@cbnewsk.att.com> ech@cbnewsk.att.com (ned.horvath) writes:
>On the other hand, Cox/Stepstone are very high on the notion of "software
>ICs", and they sell several class libraries as "ICpak nnn".  So maybe
>we'll get some platform-independent class libraries instead (hope, hope).
>
>Meantime, you can go play with SmallTalk-V...

There's also work going on to bring Effiel to the Mac, first as a Effiel to C
compilier, and later as a Effiel to object module compilier.

Play with SmallTalk-V? Well, I'd rather play with Prograph 2.0, it's fun
and it's the first pictorial language for the Mac that I've actually found
useful.


-- 
-------------------------------------------------------------------------------
   Dave Newman              |  daven@svc.portal.com        |  AppleLink: D0025
   Sofware Ventures Corp.   |  AOL: MicroPhone             |  CIS: 76004,2161
   Berkeley, CA  94705      |  WELL: tinman@well.sf.ca.us  |  (415) 644-3232

lsr@Apple.COM (Larry Rosenstein) (12/13/90)

In article <1990Dec12.161329.12831@cbnewsk.att.com> ech@cbnewsk.att.com (ned.horvath) writes:
>
>By contrast, Objective-C is, to a first approximation, SmallTalk-80
>embedded in C.  (I don't claim the approximation is exact, flames to
>comp.object.)  While every object still has a definite type, object
>references are essentially typeless, and it's always valid to send any
>message to any object, with a default behavior that the system stops

This is true, except that I think Objective-C also supports typed object
references, which use a faster dispatching mechanism.  (I'm not Objective-C
expert, so perhaps someone else can verify this.)

>The plus side of my posting is that, while I wouldn't expect MacApp
>to be supported by Objective-C, MacApp is not the only generic
>application imaginable, or even the only one presently shipping
>(the Think Class Library comes immediately to mind).

To support MacApp or TCL in Objective-C there are 2 alternatives: (1)
support the exact same runtime implementation so that you can link the
existing class library with Objective-C code, or (2) translate the class
library into Objective-C.

MPW C++ takes the first approach to supporting MacApp, while THINK Pascal
takes the second.  (Although it's easy since the langugages are the same
except for minor differences.)

(2) would be difficult for Objective-C, and I don't know enough about the
Objective-C runtime to know if (1) is possible.  If Objective-C does support
typed object references, then it might not be as difficult as it first seems.


-- 
Larry Rosenstein,  Object Specialist
Apple Computer, Inc.  20525 Mariani Ave, MS 77-A  Cupertino, CA 95014
AppleLink:Rosenstein1    domain:lsr@Apple.COM
UUCP:{sun,voder,nsc,decwrl}!apple!lsr