Portability and the Ivory Tower (was Re: Book on Microsoft C)

Edward J Driscoll ejd at caen.engin.umich.edu
Fri Apr 7 02:17:00 AEST 1989


In article <8131 at chinet.chi.il.us>, les at chinet.chi.il.us (Leslie Mikesell) writes:

>I don't see how anyone who uses news can avoid understanding the
>generality of plain-text applications.  If these messages had
>any particular hardware dependence, most of us wouldn't see them. 
>That's not going to change anytime soon.

Actually, I haven't avoided understanding it, thank you very much.
I don't claim that there is no such thing as a good plain-text
application, nor that all code should be hardware dependant.  What
I claim is that a programmer can have valid reasons for using
machine-dependant code.  I claim that those reasons typically have
something to do with making maximum use of the user's hardware,
or using it in as efficient a manner as possible.  I would call
them justifiable if the user derives sufficient benefit from them,
or, in a more commercial bent, if the user buys your product because
of them.  There have been plenty of convincing examples of
things that make it possible to write such high-utilization, highly-
efficient code in a reasonably portable manner, and I applaud them.
Am I convinced that is is ALWAYS possible?  No, not really.  Even
the people who provided such examples acknowledged that they have
their limitations and costs (runs on such-and-such a group of machines,
consumes X amount of resources, slows the thing down Y small amount,
etc).  The posters seem generally willing to live with such costs,
and that's fine, if their users are willing to live with them too.
What I've been saying is that such costs should not be blindly
dismissed, they should be taken into account just in case it
DOES make a difference to the consumer/end-user/whomever.

As far as the particular example of the NEWS, it's just that. A
particular example of a program where portability is indeed a 
primary concern.  (Actually, it's only the data that has to
come out portably -- and even NON-portable programs can produce
portable data, but I'll humor you. :-)).  BUT, if someone offered
me a more sophisticated reader than 'rn', perhaps something that 
let me see a list of all the articles in the group and click on 
the ones I wanted to read, and use a scrollbar instead of the 
MORE filter -- I'd probably use it, even if it did use 
machine-dependant code to do it.  (Is anyone going to offer me 
such a program?  Please?)


>If you own the code and have the resources to rewrite it, then fine,
>but otherwise it would be foolish to bet your company that someone
>else is going to do it in time to keep you in business if you outgrow
>your current equipment.

You would only be slightly less foolish to assume that said someone
else is going to take their portable code and recompile for your
new machine in time to keep you in business.  Yes, it is going to
take them less time, although they're probably going to run into
a few glitches anyway unless they wrote a truly, perfectly portable
program.  But as long as we're posing the problem, I wouldn't gamble
that just because the thing claims to be portable that I'll have
a new version in my mailbox within two days.


>For some purposes, you need state of the art equipment that goes beyond
>current standards - perhaps graphics or engineering work where the
>special features pay for themselves without regard for anything else.
>I certainly can't see anything about your message to indicate that
>it came from any special kind of machine...  

As I said, I don't believe in making sweeping judgements either way.
I think there are plenty of cases of both types of programs. 


>I meant that software should take portability into consideration to
>avoid the need to make backwards-compatible hardware later.  Look
>at the market that IBM has locked up as long as people run
>programs written for the 370 which the current machines still
>emulate - and that is just for fill-out-the-form functionality.

Or, equivalently, make the hardware backwards-compatible to avoid
the need to worry about it in the software now.  They are both
solutions to the problem.  You are showing a preference for the
software solution, and you seem to be in very good company.  On
the other hand, I see a lot of manufacturers making that 
backwards-compatible hardware.  If you can get the software to
do everything the user wants in a portable manner, good.  But,
if I have to use nasty code to get what the user wants, that's what I'll
do, and I'll deal with the next generation of hardware when it gets
here.  The odds are probably good that both the hardware and the
software people are worrying about how to take advantage of new 
technology while minimizing the impact on the currently
existing systems.  I just don't think you can claim that
minimizing changes is ALWAYS *more* important than getting the
most out of the current technology.  Maybe you can claim it,
but I don't think I'll believe you if you do.   

>Les Mikesell

---
"Portable?  Hell, I can carry it with one hand!"
Ed Driscoll
The University of Michigan
ejd at caen.engin.umich.edu
-- 
Ed Driscoll
The University of Michigan
ejd at caen.engin.umich.edu



More information about the Comp.lang.c mailing list