home *** CD-ROM | disk | FTP | other *** search
/ NetNews Offline 2 / NetNews Offline Volume 2.iso / news / comp / sys / amiga / programmer / 2913 < prev    next >
Encoding:
Internet Message Format  |  1996-08-05  |  6.3 KB

  1. Path: ar.ar.com.au!not-for-mail
  2. From: storm@ar.ar.com.au (Storm)
  3. Newsgroups: comp.sys.amiga.programmer
  4. Subject: One hardware-basher's manifesto
  5. Date: 6 Feb 1996 17:09:38 +1100
  6. Organization: Cydonia
  7. Message-ID: <4f6rb2$rt3@ar.ar.com.au>
  8. NNTP-Posting-Host: ar.ar.com.au
  9. X-Newsreader: TIN [UNIX 1.3 941216BETA PL0]
  10.  
  11. The argument between "system-friendly" and "hardware-bashing" programmers 
  12. has been going on ever since the first time a program ever crashed on an 
  13. expanded system, I'm sure. But lately it's been pretty prominent in 
  14. comp.sys.amiga.programmer, so I thought I'd just write a few paragraphs, 
  15. explaining my position fully. Who knows, this will either fan the debate 
  16. into a full-fledged flamewar, or hopefully make everyone decide that we 
  17. don't really have that much to argue about.
  18.  
  19. ONE HARDWARE-BASHER'S MANIFESTO
  20. by Storm/Cydonia
  21.  
  22. * All of my statements in this manifesto concern the coding of demos, for
  23.   fun and glory. This is mainly what I code. I have coded a few utilities,
  24.   but they are all done fully using the OS, and none of the comments in
  25.   here apply to them.
  26.  
  27. * My first priority in coding a demo is to make it impressive as possible
  28.   to the majority of it's target audience. This target audience is the Amiga
  29.   demo scene, mainly owners of A1200's, ranging from stock standard machines
  30.   to machines accelerated to 50MHz 68030's.
  31.  
  32. * My personal preference is to target the demo at the lower end of that
  33.   group, for two reasons. First, my own demo machine is a stock A1200. :-)
  34.   Second, the philosophy of demo-coding is, to me, to squeeze the most
  35.   out of a standard machine, not to throw more processing power at an
  36.   effect to make it run smoothly.
  37.  
  38. * I want my demo to work for as many people as possible. Writing a demo that
  39.   crashes or glitches or in some way screws up on some machines, does
  40.   nothing except get me a bad reputation. We've had some problems along
  41.   those lines, for instance our old replay source didn't work on some 040's,
  42.   and it's no fun at all having people say "your demo didn't work on my
  43.   machine".
  44.  
  45. * Because of this, I will always do as much as I know how to do to avoid
  46.   incompatibilities. All my code respects the VBR, flushes the cache after
  47.   modifying code, LoadView(NULL)'s before taking over the display, does not
  48.   use absolute addressing, etc. These are SIMPLE things to do, cause no
  49.   performance hit, and avoid the compatibility problems which absolutely
  50.   plagued demos in the days when people were first beginning to expand
  51.   Amigas beyond the norm.
  52.  
  53. * However, these are all known compatibility problems with known solutions
  54.   to make my code work on known machines. None of this in any way guarantees
  55.   that my code will work on future machines, or indeed on present machines
  56.   that I have no knowledge of.
  57.  
  58. * I am not prepared to take steps which will either noticeably reduce the
  59.   performance of my code on a standard machine, or noticeably increase my
  60.   workload, in order to make my code work on minority configurations which
  61.   it does not currently work on - ie, graphics cards which bypass the
  62.   Amiga chipset. Such compatibility is simply not a high enough priority
  63.   to justify taking such steps.
  64.  
  65. * That goes double for trying to make my code work on FUTURE Amigas. I
  66.   honestly don't care about such things as AAA chipsets and PowerPC CPUs
  67.   until they're on the shelves where people can buy them.
  68.  
  69. * The basic upshot of this is, any compatibility problem which can be
  70.   easily fixed without harming performance, I will fix. Any problems which
  71.   will require substantial extra effort, or will impact on performance, I
  72.   will not fix unless they are cutting out a large slice of my audience.
  73.  
  74. * Anyone who doesn't like this, tough. I'm coding this code because I want
  75.   to. You're not paying anything for it. If it doesn't work on your multi-
  76.   thousand dollar configuration, bad luck, but you haven't lost anything.
  77.   Moaning about this just makes you look like a spoilt brat - just because
  78.   you spent a lot of money on a graphics card doesn't mean that I (who
  79.   obviously never got a cent of that money) should support it.
  80.  
  81. * I don't hate graphics cards, I own one myself (a Retina Z2). But I don't
  82.   consider it to be for games & demos - it's there to give me a high-res
  83.   Workbench.
  84.  
  85. * But just remember that this is a conscious decision on my part. My code
  86.   does not fail on graphics cards because I'm a terrible coder (or c0d3r).
  87.   It fails because I choose not to support graphics cards. To me, coding
  88.   graphical effects (ie demos) with no resources beyond a bitmap and a CPU
  89.   is too boring to be worth doing. If that was what I wanted, I'd be coding
  90.   demos on a PC, where at least I could be pretty much guaranteed of a
  91.   bitmap and a FAST CPU.
  92.  
  93. * And to anyone who says I'm harming the Amiga, or damaging its reputation,
  94.   or holding it back or anything like that - well, any claims that my
  95.   incompatible-with-high-end-machines code has cost the Amiga a single
  96.   person from it's userbase are pure speculation. But I can give you one
  97.   rock-solid fact - if I was NOT writing such code, the Amiga would
  98.   DEFINITELY have lost one person from it's userbase: me. The only reason
  99.   I stick with the Amiga is that it's incredibly fun to code. I have no
  100.   desire whatsoever to switch to a platform where assembly coding is
  101.   painful (80x86) or difficult (RISC), where graphics are limited to either
  102.   a plain bitmap to poke chunky pixels on, or a set of OS calls. If the
  103.   Amiga dies, and nothing replaces it, I'll be giving up programming for
  104.   fun, I'll only be doing it for money.
  105.  
  106. * Oh yeah, anyone who thinks I'm a high-school d3m0-c0d3r kiddie - I'm
  107.   not. I work full time programming on VAX/VMS systems in a 4GL called
  108.   Corvision. I have a degree in computer science. I know computers, but
  109.   I also know what I like, which is why I defy modern trends to write
  110.   hardware-bashing assembly code.
  111.  
  112. * I think I've rambled enough. If we still have any programming issues to
  113.   argue about, let's argue. If there's nothing left but c0d3r vs. OSlamic
  114.   Fundamentalist flaming, let's give it a rest.
  115.  
  116. --                  ______________________________
  117.                     \_/ "\/\/\__"\/ "\/ "\/\__"\_/ 
  118. Storm / Cydonia      / / / / / / / / / / / / ' /       Packing class
  119.                     / /\/>  / / / / / / / / / /__     & kicking arse!
  120.     (coder)         \__/ \_/\__/\__/\/\/\/\/\/ \/
  121.