home *** CD-ROM | disk | FTP | other *** search
- Path: sparky!uunet!overload!dillon
- From: dillon@overload.Berkeley.CA.US (Matthew Dillon)
- Newsgroups: comp.sys.next.misc
- Subject: Re: Why, Why, WHYYYY?? USE OBJECTIVE-C for IB??
- Distribution: world
- Message-ID: <dillon.0spl@overload.Berkeley.CA.US>
- References: <dillon.0sh6@overload.Berkeley.CA.US> <1992Dec11.163906.2483@webo.dg.com>
- Date: 13 Dec 92 12:30:53 PST
- Organization: Not an Organization
- Lines: 85
-
- In article <1992Dec11.163906.2483@webo.dg.com> dlewine@nf01.webo.dg.com (Donald Lewine) writes:
- |
- >In my experience (over 30 years of professional programming), your choice of
- >algorithm has a much larger effect on performance than your choice of programming
- >language or compiler technology.
- >
- >If programmers spent more time working on their algorithm and less time arguing
- >about the efficiency of their compiler, they would produce faster programs sooner.
- >
- >I have been able to speed up programs by a factor of 1000X or more by changing the
- >basic algorithm. I have never seen a speedup that large from a compiler. [Except
- >in cases where the compiler changes the basic algorithm (e.g. loop unrolling)]
-
- That's nice, but don't dwell on your years of experience too much, I
- know people with at least that much experience who have trouble
- grasping the basics of modern day programming languages (this is not a
- personal insult directed at you). Experience is a relative term and
- the phrase 'years of experience' instills no confidence in me when I'm
- interviewing someone for a job. "It is always the mistake that
- executives make". My view of experience is to put uncommented
- schematic or source code in front of someone and see if they can figure
- out what it does.
-
- In the short term, yes.
-
- In the long term, however, the programming language has a lot to do
- with the maintainability of the software. Programs can start out good,
- but when you loose the original programming team (which happens all to
- often) the software generally degrades to the point where one is unable
- to address new features required by the user base or even to fix bugs
- in a timely fashion. Software complexity has an equivalent effect.
- This premise is bourn out by just about every piece of commercial
- software in existance and is why it is so easy for a new company to
- superceed an older company's software.
-
- People say that you can do anything with any programming language and
- its true enough on theoretical grounds, but not realistic in practical
- terms. Just because you can doesn't mean you do, and like it or not,
- most people stick pretty close to the models a particular language was
- designed for rather then try to program it in a way it was not designed
- for.
-
- Take Objective-C and NeXTStep for example... look how hard it was for
- NeXT to make even the simplest of changes in their interface
- specification (the alloc/init combination instead of new). It *still*
- isn't generalized and has special cases all over the place for fonts
- (the sharing of fonts is not hidden and requires one to view font
- operations in special case situations), certain one-time structures use
- a different initialization model, there are all sorts of
- incompatibilities with multi-threaded operation because it turns out
- that Objective-C's run time system is too dynamic... requiring extra
- locking in order to work properly in a multi-threaded environment. A
- simple call, yes, but a huge gaping special case that became necessary
- when NeXT found out the cost of multi-threading their dynamic caching,
- method call overhead increases 3x best case. I can't even begin to
- describe problems with the distributed objects interface, it is far
- from seamless.
-
- One could argue that the Objective-C paradigm does NOT fit NeXTStep
- like a glove and it is becomming less general, more special-cased, and
- more difficult to maintain. Still better then C, of course, but it
- just goes to show that while there is such a thing as a 'better'
- lanugage, there is no such thing as an ultimate language and even if
- one starts out sticking to the bounds of the language model, ongoing
- development tends to introduce new situations that the language cannot
- easily handle well. If this were not true we would still be
- programming in pseudo-assembly.
-
- -Matt
-
- >--
- >--------------------------------------------------------------------
- >Donald A. Lewine (508) 870-9008 Voice
- >Data General Corporation (508) 366-0750 FAX
- >4400 Computer Drive. MS D112A
- >Westboro, MA 01580 U.S.A.
- >
-
- --
-
- Matthew Dillon dillon@Overload.Berkeley.CA.US
- 1005 Apollo Way uunet.uu.net!overload!dillon
- Incline Village, NV. 89451 ham: KC6LVW (no mail drop)
- USA Sandel-Avery Engineering (702)831-8000
-
-