comp.lang.ada
 help / color / mirror / Atom feed
From: ok@goanna.cs.rmit.edu.au (Richard A. O'Keefe)
Subject: Re: The great Java showcase (re: 2nd historic mistake)
Date: 1997/08/28
Date: 1997-08-28T00:00:00+00:00	[thread overview]
Message-ID: <5u3e63$8gn$1@goanna.cs.rmit.edu.au> (raw)
In-Reply-To: 5u0nil$atg@mulga.cs.mu.OZ.AU


fjh@mundook.cs.mu.OZ.AU (Fergus Henderson) writes:
>Objective-C was not better than C++.

Well, it depends on what you mean by "better".

- Cheaper to enter?
  Someone here wrote an Objective C compiler in a couple of months spare
  time several years ago.  You got more OOP bang for the compiler
  development buck.  

- Compiler reliability?
  _Because_ the job of an Objective-C compiler is much much simpler than
  the job of a C++ compiler, you get rather more compiler reliability
  for the same level of investment.

- Library design?
  The Objective-C libraries were designed with the language, just like
  Eiffel.  Unfortunately, a split developed, with StepStone owning the
  original libraries, and other free libraries being developed, which
  eroded this benefit.

- Better support for OOP?
  Objective-C provided things like save/load for objects.

- Better support for evolutionary programming.
  The fact that Objective-C is dynamic and C++ is static is not an
  accident.  Stroustrup was starting from a Simula background and
  trying to "sell" OOP to people who demanded "efficiency", which
  implies a static language.  The designer of Objective-C was more
  concerned with long-span _maintenance_ costs and chose a design
  that he thought would reduce _that_:  no good having a fast program
  if it is now far too expensive to make it do what you want.

>Objective-C was a basically
>"Smalltalk in C": a dynamically typed OOP language embedded inside C.
>In my humble opinion, this is not a good match.

Objective C _has_ changed, and there is a bit more static checkability
than there used to be, but dynamicity was what the design was supposed
to achieve.  I imagine that _any_ level of dynamicity will be a poor
match with C.  Don't forget, Dylan was years in the future when ObjC
was designed (:-).

>To the best of my
>knowledge, Objective-C lacked static checking and was much less efficient
>than C++.

"Much less efficient"?  At what?  It's possible to win all the battles
and still lose the war.  ObjC was designed to permit certain _kinds_ of
efficiency (like code-sharing and development time) at the expense of
others; C++ was designed to permit certain _kinds_ of efficiency (like
run-time) at the expense of others.  One could quite fairly say that
ObjC dynamism doesn't encourage bloated programs the way that C++ 
templates do, and for the sizes of machines current when ObjC was designed,
that was a major factor in over-all _system_ efficiency.  (Why do I need
to give a certain web browser 16Mb of memory?  Amongst other things, because
of OOP languages that _aren't_ dynamic.  Why don't I use that browser on
machine X? Because I only _have_ 16Mb on that machine, and the OS needs
some of it.)

Efficiency is a property of _programs_, not _languages_.  I once had a
Prolog program that ran faster than the Fortran program it replaced,
and the Fortran compiler generated native code and the Prolog program
didn't.  Reason?  Prolog had encouraged me to think in a way that
suggested a far more efficient algorithm and made it easy for me to write
that algorithm.  

Is there any evidence that _applications_ developed in Objective C in the
NextStep environment are materially less efficient than similar applications
developed in C++ for that or some other environment on the same hardware?
-- 
Unsolicited commercial E-mail to this account is prohibited; see section 76E
of the Commonwealth Crimes Act 1914 as amended by the Crimes Legislation
Amendment Act No 108 of 1989.  Maximum penalty:  10 years in gaol.
Richard A. O'Keefe; http://www.cs.rmit.edu.au/%7Eok; RMIT Comp.Sci.




  parent reply	other threads:[~1997-08-28  0:00 UTC|newest]

Thread overview: 112+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
1997-08-25  0:00 The great Java showcase (re: 2nd historic mistake) Bertrand Meyer
1997-08-26  0:00 ` BruceMount
1997-08-28  0:00   ` Brett J. Stonier
     [not found]     ` <JSA.97Aug28182029@alexandria.organon.com>
     [not found]       ` <3406C150.3EE5EE0E@stratasys.com>
1997-08-29  0:00         ` Jon S Anthony
1997-08-29  0:00           ` Jay Martin
1997-08-29  0:00             ` Jon S Anthony
1997-09-02  0:00             ` W. Wesley Groleau x4923
1997-09-15  0:00       ` Tim Ottinger
     [not found]   ` <5u0nil$atg@mulga.cs.mu.OZ.AU>
1997-08-28  0:00     ` Richard A. O'Keefe [this message]
     [not found]       ` <5u3o1n$hu5@mulga.cs.mu.OZ.AU>
1997-08-28  0:00         ` Nick Leaton
1997-09-15  0:00       ` Tim Ottinger
1997-09-16  0:00         ` W. Wesley Groleau x4923
1997-08-28  0:00     ` not
1997-08-26  0:00 ` Flavius.Vespasianus
     [not found] ` <JSA.97Aug26153546@alexandria.organon.com>
     [not found]   ` <34034658.7DE14518@eiffel.com>
1997-08-27  0:00     ` Jon S Anthony
1997-08-27  0:00 ` James P. White
     [not found]   ` <34047A7D.62319AC4@eiffel.com>
1997-08-27  0:00     ` Bertrand Meyer
1997-08-27  0:00       ` Matthew S. Whiting
1997-08-28  0:00         ` Flavius.Vespasianus
1997-08-28  0:00       ` Mike Coffin
1997-08-29  0:00         ` Robert Dewar
1997-08-30  0:00           ` James P. White
1997-08-31  0:00           ` Jon S Anthony
1997-08-28  0:00       ` James P. White
1997-08-29  0:00       ` Dennis Weldy
1997-09-03  0:00         ` Charles Ditzel
1997-08-27  0:00   ` Robert Dewar
     [not found]   ` <01bcb38a$8ddc1200$1c10d30a@ntwneil>
1997-08-28  0:00     ` Robert Dewar
1997-08-29  0:00       ` Lee Webber
1997-08-28  0:00     ` James P. White
1997-08-28  0:00     ` Robert Dewar
1997-08-28  0:00       ` James P. White
     [not found]         ` <EFnKuI.4rI@ecf.toronto.edu>
1997-08-29  0:00           ` Memory management techniques -- was Re: The great Java showcase Jon S Anthony
1997-08-30  0:00         ` The great Java showcase (re: 2nd historic mistake) Bert Bril
1997-08-31  0:00           ` Jay Martin
1997-08-29  0:00       ` Lee Webber
     [not found]       ` <EFn8CI.D9p@ecf.toronto.edu>
1997-08-29  0:00         ` Laurent Guerby
     [not found]           ` <EFonoz.AFC@ecf.toronto.edu>
1997-08-29  0:00             ` Samuel Mize
1997-08-29  0:00         ` Arthur Nelson
1997-08-29  0:00           ` Patrick Doyle
1997-09-01  0:00             ` Robert Dewar
1997-08-29  0:00         ` Robert Dewar
1997-08-30  0:00           ` Patrick Doyle
1997-08-31  0:00           ` Jon S Anthony
1997-09-01  0:00             ` Robert Dewar
1997-09-02  0:00               ` Jon S Anthony
1997-09-05  0:00                 ` Robert Dewar
1997-09-06  0:00                   ` Jon S Anthony
1997-08-29  0:00         ` Peter Hermann
1997-08-29  0:00       ` Mike Charlton
     [not found]         ` <N.19970829.uput@sisyphus.demon.co.uk>
1997-09-02  0:00           ` Mike Charlton
1997-09-03  0:00             ` Dave Sparks
     [not found] ` <3402FD4D.C196785B@brightwood.com>
1997-08-27  0:00   ` Patrick Doyle
1997-08-28  0:00   ` Paul Johnson
1997-08-28  0:00     ` Brett J. Stonier
1997-08-28  0:00     ` Jeff Brown
1997-08-28  0:00     ` Robert Dewar
1997-08-29  0:00       ` Paul Johnson
     [not found] <5tvvsj$lh2$1@news2.digex.net>
1997-08-27  0:00 ` W. Wesley Groleau x4923
1997-08-27  0:00   ` W. Wesley Groleau x4923
1997-08-27  0:00 ` Jeff Brown
1997-08-28  0:00   ` Patrick Doyle
1997-08-28  0:00     ` Robert Dewar
1997-08-28  0:00 ` Brett J. Stonier
1997-08-28  0:00   ` Jon S Anthony
1997-08-29  0:00     ` James P. White
1997-08-29  0:00   ` Paul Johnson
1997-08-29  0:00     ` Dennis Weldy
1997-08-29  0:00     ` Brett J. Stonier
     [not found]     ` <5u6ovi$5kb$1@news2.digex.net>
1997-09-01  0:00       ` Paul Johnson
  -- strict thread matches above, loose matches on Subject: below --
1997-08-29  0:00 Ell
1997-08-29  0:00 ` Brett J. Stonier
1997-08-29  0:00 ` Jon S Anthony
1997-08-29  0:00 ` Robert Dewar
1997-08-29  0:00   ` Jay Martin
1997-08-30  0:00   ` Joachim Durchholz
1997-08-30  0:00   ` Patrick Doyle
1997-08-30  0:00     ` Jay Martin
1997-09-01  0:00   ` Paul Johnson
1997-09-01  0:00     ` Robert Dewar
1997-09-02  0:00       ` Veli-Pekka Nousiainen
1997-09-02  0:00       ` Jeff Kotula
1997-09-02  0:00       ` Martin Tom Brown
1997-09-02  0:00       ` Matthew S. Whiting
1997-09-03  0:00         ` Robert Munck
1997-09-05  0:00         ` Robert Dewar
1997-09-08  0:00       ` Richard A. O'Keefe
1997-09-13  0:00         ` Mark S. Hathaway
1997-09-16  0:00           ` Des  Kenny
1997-10-28  0:00           ` John English
1997-09-16  0:00         ` Des  Kenny
1997-09-16  0:00           ` Robert Dewar
1997-09-05  0:00     ` Darren New
1997-09-02  0:00   ` W. Wesley Groleau x4923
1997-09-05  0:00     ` Robert Dewar
1997-09-15  0:00   ` Tim Ottinger
1997-09-16  0:00     ` Joachim Durchholz
1997-09-18  0:00       ` Robert Dewar
1997-09-16  0:00     ` Robert Dewar
1997-08-29  0:00 Ell
1997-08-30  0:00 BruceMount
1997-09-04  0:00 Marin David Condic, 561.796.8997, M/S 731-96
     [not found] <97090916235363@psavax.pwfl.com>
1997-09-11  0:00 ` Robert Dewar
1997-09-15  0:00 Ell
1997-09-16  0:00 ` Tim Ottinger
1997-09-17  0:00 ` Doc
1997-09-17  0:00 Ell
1997-09-16  0:00 ` Mark Wilden
1997-09-17  0:00 ` Joachim Durchholz
1997-09-17  0:00 ` Robert B. Love 
1997-09-17  0:00 Ell
1997-09-17  0:00 Ell
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox