Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!mnetor!seismo!rutgers!princeton!udel!rochester!cornell!batcomputer!pyramid!voder!apple!dgold From: dgold@apple.UUCP (David Goldsmith) Newsgroups: comp.lang.misc,comp.lang.c++,comp.lang.pascal Subject: Re: need info on C++ vs Object Pascal vs Objective C vs etc Message-ID: <1238@apple.UUCP> Date: Wed, 1-Jul-87 19:15:25 EDT Article-I.D.: apple.1238 Posted: Wed Jul 1 19:15:25 1987 Date-Received: Fri, 3-Jul-87 04:42:11 EDT References: <2016@sphinx.uchicago.edu> <7037@alice.UUCP> Reply-To: dgold@apple.UUCP (David Goldsmith) Organization: Apple Computer Inc., Cupertino, USA Lines: 39 Keywords: elegance popularity portability Xref: mnetor comp.lang.misc:484 comp.lang.c++:350 comp.lang.pascal:179 In article <7037@alice.UUCP> shopiro@alice.UUCP writes: >> 2) Is Object Pascal good? > >I don't really have an opinion. It is Pascal. It runs on a Mac. >It provides support for object-oriented programming (methods), >but not for data abstraction (data hiding, operator overloading, >etc.). It is simpler than C++, but then it isn't used for such a >large range of applications on such a large range of systems as C++. > >> Is it available (or will it be soon) for machines other than the Macs? Will >> it become a standard, or will it remain an Apple oddity? > >For what it is worth I can mention that Apple is adopting a subset of C++ >called ``minimal C++'' as their C and that they are re-writing MacApp >in C++. For details, ask Larry Tesler at Apple. We are producing a version of C++, and you will be able to access MacApp from it, but MacApp itself will remain in Object Pascal. Just for fun, I thought I'd mention the one big remaining objection I have to C which isn't fixed by C++: the inability to use closures. By this I mean the facility which is provided by blocks in SmallTalk, LAMBDA in LISP, and nested procedures in Pascal. This allows you to encapsulate a bit of code with the current lexical scope and pass it to another procedure. We use this capability of Pascal heavily in MacApp and its lack in C++ makes use of MacApp a little akward. I remember the original "Block Structure is for The Birds" paper, but I think this is one use of nested scope which the designers of C missed. It would be nice if there were some way to do it in C++. The code you pass is basically a procedure, but it doesn't have to have a name (nested procedures in Pascal do, but SmallTalk blocks and Lisp lambdas don't). -- David Goldsmith Apple Computer, Inc. AppleLink: GOLDSMITH1 UUCP: {nsc,dual,sun,voder,ucbvax!mtxinu}!apple!dgold CSNET: dgold@apple.CSNET, dgold%apple@CSNET-RELAY BIX: dgoldsmith