9fans - fans of the OS Plan 9 from Bell Labs
 help / color / mirror / Atom feed
From: rog@vitanuova.com
To: 9fans@cse.psu.edu
Subject: Re: [9fans] new compilers
Date: Tue,  4 Apr 2006 13:31:49 +0100	[thread overview]
Message-ID: <0f87505af442699d03a839c3f01022e7@vitanuova.com> (raw)
In-Reply-To: <6e35c0620604031341k3effda87i762a2cc511bdbb82@mail.gmail.com>

actually, the kAudioHardwarePropertyBootChimeVolumeRangeDecibels-type constants
are part of a C interface. i'm not sure if there was an objective-C-style
interface.

i used objective C for a number of years, and i came away with the opinion
that it had initially been quite a neat little (operative word) hack to give
some dynamic binding and a bit of structure to C, but it had turned into
something of a monster. its main problem was lack of modularity - all object
methods lived in the same namespace, and since there were many of them,
huge names were necessitated. the fix for this was to put in place a some
more conventional static class-based typechecking, which was a big mistake
in my view, because one of the nice things about the early objective-C was
freedom of implementation - if you implemented the right methods, then
it didn't matter what class (if any) you inherited from.

in the end objective C suffers from the same flawed inheritance design
as most of the other "object oriented" languages. interfaces are usually
designed by extension rather than by use, so one has to spend much time
writing silly little pieces of non-code to try to mesh what one would
like to do with the design of the interface. the result is often a
tangle of interwoven dependencies that is difficult to understand,
harder to maintain, and almost impossible to refactor.

for something with a stated aim of encouraging software reuse, this style
of OO certainly does a good job of actively discouraging it!

in contrast i've found Limbo's statically typed (but dynamically implemented)
module structure to be excellent for reuse. if objective C
had gone more wholeheartedly down the protocol route, it might have ended
up with something a bit more like this.


  parent reply	other threads:[~2006-04-04 12:31 UTC|newest]

Thread overview: 155+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-03-28  0:40 erik quanstrom
2006-03-28 17:52 ` Lyndon Nerenberg
2006-03-28 18:15   ` Bakul Shah
2006-03-28 18:29     ` Sape Mullender
2006-03-28 18:52       ` LiteStar numnums
2006-03-28 19:13         ` [9fans] [OT] hypothetical questions Russ Cox
2006-03-28 19:28           ` Brantley Coile
2006-03-28 20:26             ` LiteStar numnums
2006-03-28 21:18               ` Lou Kamenov
2006-03-29  6:14                 ` Bruce Ellis
2006-03-28 19:41           ` David Leimbach
2006-03-28 19:15         ` [9fans] new compilers Victor Nazarov
2006-03-28 19:22           ` [9fans] [OT] linus, the early years Charles Forsyth
2006-03-28 20:07             ` Victor Nazarov
2006-03-29 16:33           ` [9fans] new compilers Burton Samograd
2006-03-29 16:49             ` [9fans] [OT] linux origins, why not? Victor Nazarov
2006-03-29 18:04               ` Burton Samograd
2006-03-29 18:45                 ` Federico G. Benavento
2006-03-29 19:41                   ` andrey mirtchovski
2006-03-29 23:27                 ` Dave Eckhardt
2006-03-30  0:38                   ` quanstro
2006-03-30  1:29                     ` Ronald G Minnich
2006-03-30  2:40                       ` quanstro
2006-03-30  1:55                         ` Ronald G Minnich
2006-03-30  2:13                         ` Roman Shaposhnick
2006-03-30  4:26                         ` jmk
2006-03-30 16:08                         ` David Leimbach
2006-03-30 16:02                       ` David Leimbach
2006-03-30 18:14                     ` Dave Eckhardt
2006-03-30 12:46                   ` Brantley Coile
2006-03-30 13:43                     ` Richard Miller
2006-03-30 13:49                       ` Brantley Coile
2006-03-29 18:20               ` Skip Tavakkolian
2006-03-29 18:58                 ` Victor Nazarov
2006-03-29 23:16               ` lucio
2006-03-30  2:00                 ` Martin C. Atkins
2006-03-30  5:06                   ` lucio
2006-03-29 21:17             ` [9fans] new compilers Francisco J Ballesteros
2006-03-29 21:44               ` Wes Kussmaul
2006-04-02 18:17       ` Aharon Robbins
2006-04-02 18:33         ` Bruce Ellis
2006-04-02 19:47         ` lucio
2006-04-02 20:12           ` Skip Tavakkolian
2006-04-02 20:16             ` LiteStar numnums
2006-04-03  4:35               ` lucio
2006-04-03  5:38                 ` George Michaelson
2006-04-03  6:45                   ` Lyndon Nerenberg
2006-04-03  5:38                 ` LiteStar numnums
2006-04-03  8:31                 ` Lyndon Nerenberg
2006-04-03  9:36                   ` uriel
2006-04-03 12:50                     ` Martin C. Atkins
2006-04-03  9:39                   ` lucio
2006-04-03 13:46                 ` Brantley Coile
2006-04-03 14:30                 ` David Leimbach
2006-04-03 16:02                   ` Bruce Ellis
2006-04-03 20:41                     ` Jack Johnson
2006-04-03 21:02                       ` uriel
2006-04-03 21:32                         ` Ronald G Minnich
2006-04-03 23:42                           ` Bruce Ellis
2006-04-04  0:29                           ` Anthony Sorace
2006-04-04  5:02                             ` Bruce Ellis
2006-04-04  3:15                         ` Jack Johnson
2006-04-04  3:28                         ` Jack Johnson
2006-04-04  6:31                           ` David Leimbach
2006-04-04  4:21                         ` lucio
2006-04-05  1:00                         ` Brantley Coile
2006-04-05  4:35                           ` Bruce Ellis
2006-04-04 12:31                       ` rog [this message]
2006-04-03  3:17           ` plan9
2006-04-03  4:17             ` lucio
  -- strict thread matches above, loose matches on Subject: below --
2006-04-03 22:54 erik quanstrom
2006-03-31 14:42 erik quanstrom
2006-03-31 13:27 erik quanstrom
2006-03-31 14:47 ` Bruce Ellis
2006-03-31 12:31 Fco. J. Ballesteros
2006-03-31 12:53 ` Charles Forsyth
2006-03-31 13:23 ` Charles Forsyth
2006-03-31 14:42   ` Bruce Ellis
2006-03-31  9:17 Fco. J. Ballesteros
2006-03-31  9:40 ` Skip Tavakkolian
2006-03-31  9:42 ` Skip Tavakkolian
2006-03-31  9:43 ` Charles Forsyth
2006-03-31  9:46 ` Charles Forsyth
2006-03-31  9:48   ` Skip Tavakkolian
2006-03-31  9:56     ` Skip Tavakkolian
2006-03-31 10:01       ` Bruce Ellis
2006-03-31 10:03       ` Charles Forsyth
2006-03-31 10:08         ` Skip Tavakkolian
2006-03-31 14:58       ` David Leimbach
2006-03-31 15:01         ` Bruce Ellis
2006-03-31 22:02 ` Taj Khattra
2006-04-03 16:21 ` Ronald G Minnich
2006-04-03 17:17   ` Paul Lalonde
2006-04-03 19:01     ` Artem Letko
2006-04-03 19:22       ` Paul Lalonde
2006-03-30 20:14 Steve Simon
2006-03-29  1:18 erik quanstrom
2006-03-28  0:30 erik quanstrom
2006-03-25 13:56 Russ Cox
2006-03-25 19:48 ` David Leimbach
2006-03-25 19:53   ` Burton Samograd
2006-03-25 19:59     ` David Leimbach
2006-03-25 20:02   ` Charles Forsyth
2006-03-25 21:25     ` Brantley Coile
2006-03-25 21:28     ` quanstro
2006-03-25 21:33       ` Brantley Coile
2006-03-25 22:42         ` quanstro
2006-03-25 22:46         ` quanstro
2006-03-26  1:46           ` jmk
2006-03-26  2:52             ` quanstro
2006-03-26  8:14               ` Lyndon Nerenberg
2006-03-26  8:41                 ` Lyndon Nerenberg
2006-03-26 17:06                   ` Bruce Ellis
2006-03-26 17:00             ` David Leimbach
2006-03-27 17:31             ` rog
2006-03-27 19:01               ` Charles Forsyth
2006-03-27 19:15                 ` Paul Lalonde
2006-03-27 19:21                   ` Bruce Ellis
2006-03-30 17:41                   ` rog
2006-03-30 17:44                     ` Charles Forsyth
2006-03-30 18:24                       ` Skip Tavakkolian
2006-03-30 17:51                     ` Christoph Lohmann
2006-03-30 17:54                       ` Sape Mullender
2006-03-30 18:30                         ` Skip Tavakkolian
2006-03-30 18:43                           ` Gabriel Diaz
2006-03-30 18:48                             ` Skip Tavakkolian
2006-03-30 18:51                               ` Gabriel Diaz
2006-03-30 18:51                             ` Charles Forsyth
2006-03-30 21:00                           ` Bakul Shah
2006-03-30 23:16                             ` Skip Tavakkolian
2006-03-30 23:23                             ` Skip Tavakkolian
2006-03-31  6:16                               ` uriel
2006-03-31  7:56                           ` Bruce Ellis
2006-03-31  9:04                             ` Skip Tavakkolian
2006-03-30 23:32                         ` Adrian Tritschler
2006-03-30 17:57                       ` rog
2006-03-30 18:27                         ` rog
2006-03-30 20:46                           ` Roman Shaposhnick
2006-03-31  1:15                             ` Steve Simon
2006-03-31  1:24                               ` Russ Cox
2006-03-31  2:00                               ` Joel Salomon
2006-03-31  2:26                               ` Martin C. Atkins
2006-03-31  8:46                                 ` Charles Forsyth
2006-03-31  8:49                                   ` Bruce Ellis
2006-03-31 21:40                                 ` Taj Khattra
2006-03-31  4:24                             ` Jack Johnson
2006-03-31  4:33                               ` veritosproject
2006-03-30 17:58                       ` Charles Forsyth
2006-03-30 18:03                       ` jmk
2006-03-30 18:13                         ` Brantley Coile
2006-03-30 18:57                       ` Burton Samograd
2006-03-30 19:15                         ` David Leimbach
2006-03-30 19:22                           ` Charles Forsyth
2006-03-30 19:29                             ` Rob Pike
2006-03-30 19:58                               ` David Leimbach

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=0f87505af442699d03a839c3f01022e7@vitanuova.com \
    --to=rog@vitanuova.com \
    --cc=9fans@cse.psu.edu \
    /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).