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