gilgalad@dip.eecs.umich.edu (Ralph Seguin) (06/02/90)
Hi. I've been watching the discussion of how difficult it is to program the Amiga versus other systems. I've seen a lot of nonsense. Somebody has been making claims that it is relatively difficult to program the Amiga. It is just as easy, and often far easier to write stuff for the Amiga than most other systems around. See ya, Ralph gilgalad@dip.eecs.umich.edu gilgalad@zip.eecs.umich.edu gilgalad@caen.engin.umich.edu Ralph_Seguin@ub.cc.umich.edu gilgalad@sparky.eecs.umich.edu USER6TUN@UMICHUB.BITNET Ralph Seguin | In order to get infinitely many monkeys to type 565 South Zeeb Rd. | something that actually makes sense, you need to Ann Arbor, MI 48103 | have infinitely many monkey editors as well. (313) 662-1506
laba-1ei@e260-2f.berkeley.edu (Joseph Chung) (06/02/90)
In article <2487@zipeecs.umich.edu> gilgalad@dip.eecs.umich.edu (Ralph Seguin) writes: >Hi. I've been watching the discussion of how difficult it is to >program the Amiga versus other systems. I've seen a lot of nonsense. >Somebody has been making claims that it is relatively difficult to >program the Amiga. It is just as easy, and often far easier to write >stuff for the Amiga than most other systems around. > Try this one on for size: In an IBM (no flames please!), if I want to put a character anywhere on the screen, I just 1. load a segment register with the segment of the screen. 2. write the proper byte to the screen location (using a simple offset) (In short, is a basic POKE command!) How would you accomplish this in an Amiga? Let's see. 1. Create my own screen, or should it be my window (damn, where did I put my copy of NewWindow struct ...) The above is just one very tiny example. In short, I would like you to show me how programming a multitasking system can be *easier* than programming a monotasking one. -jc -- Joseph Chung == You can always find what you're not looking for! == laba-1ei@web.berkeley.edu
cmcmanis@stpeter.Eng.Sun.COM (Chuck McManis) (06/02/90)
In article <1990Jun2.063414.10292@agate.berkeley.edu> laba-1ei@e260-2f (Joseph Chung) writes: >Try this one on for size: > >In an IBM (no flames please!), if I want to put a character anywhere on the >screen, I just >1. load a segment register with the segment of the screen. >2. write the proper byte to the screen location (using a simple offset) (In >short, is a basic POKE command!) > >How would you accomplish this in an Amiga? Well, how about : win = fopen("CON:640/200/0/0","w+"); fprintf(fp,"\e[%d;%dH%s",y,x,"X"); Prints the character X at x, y. Of course in your rather rude IBM example you just bang on the hardware, the equivalently rude thing on the Amiga is : IntuitionBase = OpenLibrary("intuition.library",0L); GfxBase = OpenLibrary("graphics.library",0L); rp = &(IntuitionBase->FirstScreen->RastPort); Move(rp, x, y); Text(rp, "X", 1); Of course this screws up the display, just like the IBM example given does. The only difference between this and making it nice is getting your own rastport which means opening your own window which is really trivial in AmigaBASIC and in C it is also pretty trivial. My final comment on all this silliness is wait until you get a real job and someone asks you to put characters on an "X11" window. Hooboy, that may be too difficult for you. This is one of the reason why "years and years" of experience programming the IBM PC just doesn't cut it in my book. -- --Chuck McManis Sun Microsystems uucp: {anywhere}!sun!cmcmanis BIX: <none> Internet: cmcmanis@Eng.Sun.COM These opinions are my own and no one elses, but you knew that didn't you. "I tell you this parrot is bleeding deceased!"
phoenix@ms.uky.edu (R'ykandar Korra'ti) (06/02/90)
In article <1990Jun2.063414.10292@agate.berkeley.edu> laba-1ei@e260-2f (Joseph Chung) writes: >In article <2487@zipeecs.umich.edu> gilgalad@dip.eecs.umich.edu (Ralph Seguin) >writes: >>It is just as easy, and often far easier to write >>stuff for the Amiga than most other systems around. >In an IBM (no flames please!), if I want to put a character anywhere on the >screen, I just [write directly to a memory location] >How would you accomplish this in an Amiga? >1. Create my own screen, or should it be my window (damn, where did I put > my copy of NewWindow struct ...) Very invalid. This is giving the IBM the benefit of having a screen set up already, which is always done automatically by the hardware. (Even ignoring the fact that it's the only screen available, and that you're insuring that your programme will be harder to port by writing directly to the hardware). Give the Amiga the same benefit - in the form, say, of an open, full-screen CLI - and you can put a character at location X using a simple escape code sequence. (You can also do this with the IBM, as I'm sure you know.) Now: let's try it the other way (reversing the prejuduce for a moment): Let's open a graphics screen with at least one window and pull-down menus and a mouse pointer. At the same time, we want to keep our original command screen (Workbench on the Amiga; the text-based command.com "screen" on the IBM) available through some sort of switching mechanism (of your choice.) Using pre-supplied windowing routines other than those provided by the operating system or a standard compiler (say, Turbo Pascal) is NOT allowed. I think you'll find it's a lot easier on the Amiga, no? >In short, I would like you to show >me how programming a multitasking system can be *easier* than programming a >monotasking one. Multi-tasking versus mono-tasking is not a factor in difficulty of programming. See: windows 3.0, where you sample MS-DOS programme will run concurrently with other MS-DOS programmes (Multitasking, sort of) or along with pure MS-DOS (Single-tasking) thanks to the wonders of virtual machines. - R'ykandar. -- | R'ykandar Korra'ti | Editor, LOW ORBIT | PLink: Skywise | CIS 72406,370 | | Elfinkind, Unite! | phoenix@ms.uky.edu | phoenix%ms.uky.edu@ukcc.bitnet | | "Careful, mom, the toys are loose!" - from The Wizard of Speed and Time |
navas@cory.Berkeley.EDU (David C. Navas) (06/03/90)
In article <1990Jun2.063414.10292@agate.berkeley.edu> laba-1ei@e260-2f (Joseph Chung) writes: >In an IBM (no flames please!), if I want to put a character anywhere on the >screen, I just >1. load a segment register with the segment of the screen. >2. write the proper byte to the screen location (using a simple offset) (In >short, is a basic POKE command!) >How would you accomplish this in an Amiga? >1. Create my own screen, or should it be my window (damn, where did I put > my copy of NewWindow struct ...) >The above is just one very tiny example. In short, I would like you to show >me how programming a multitasking system can be *easier* than programming a >monotasking one. Now, now, Joe -- it's not all that bad. Try using -- Write(Output(), "Hello World", 11) [I hope I have that in the correct order] On an IBM, you have to: make sure if you have an appropriate graphics card, load the *correct* segment register and load the *proper* byte. Which can end up being just a wee bit more complicated than a 'simple' poke. In fact, in my experience (which is about to become painfully broader) accessing any memory in a PC is a pain in the butt. But that's a tangent... Now, of course if you wanted to *draw* a character into the *graphics* screen, lessee, you need to... [you get the picture, right?] It's clear you've never seen how the Mac applications have to talk to *their* interface. Darn good thing they had a toolbox!! >Joseph Chung >== You can always find what you're not looking for! == >laba-1ei@web.berkeley.edu David Navas navas@cory.berkeley.edu "Excuse my ignorance, but I've been run over by my train of thought." -me
ammrk@swbatl.sbc.com (Mike R. Kraml) (06/03/90)
In article <136558@sun.Eng.Sun.COM> cmcmanis@stpeter.Eng.Sun.COM (Chuck McManis) writes: >In article <1990Jun2.063414.10292@agate.berkeley.edu> laba-1ei@e260-2f (Joseph Chung) writes: >>Try this one on for size: >> >>In an IBM (no flames please!), if I want to put a character anywhere on the >>screen, I just >>1. load a segment register with the segment of the screen. >>2. write the proper byte to the screen location (using a simple offset) (In >>short, is a basic POKE command!) >> >>How would you accomplish this in an Amiga? > >Well, how about : > win = fopen("CON:640/200/0/0","w+"); > fprintf(fp,"\e[%d;%dH%s",y,x,"X"); > >Prints the character X at x, y. > >Of course in your rather rude IBM example you just bang on the hardware, >the equivalently rude thing on the Amiga is : > IntuitionBase = OpenLibrary("intuition.library",0L); > GfxBase = OpenLibrary("graphics.library",0L); > rp = &(IntuitionBase->FirstScreen->RastPort); > Move(rp, x, y); > Text(rp, "X", 1); > >Of course this screws up the display, just like the IBM example given >does. The only difference between this and making it nice is getting >your own rastport which means opening your own window which is really >trivial in AmigaBASIC and in C it is also pretty trivial. > >My final comment on all this silliness is wait until you get a real job >and someone asks you to put characters on an "X11" window. Hooboy, >that may be too difficult for you. This is one of the reason why >"years and years" of experience programming the IBM PC just doesn't >cut it in my book. Yes... I had to Reprint all of this wonderfull Followup! Excellent reply Chuck, you took the words right out of my mouth!!!!!! >-- >--Chuck McManis Sun Microsystems >uucp: {anywhere}!sun!cmcmanis BIX: <none> Internet: cmcmanis@Eng.Sun.COM >These opinions are my own and no one elses, but you knew that didn't you. >"I tell you this parrot is bleeding deceased!" -- ============================================================================= Mike Kraml - Manager-Separations MECHANIZATION - SWBT - (The Techies) UUCP: {uunet, bellcore, texbell}...!swbatl.sbc.com!ammrk =============================================================================
ckp@grebyn.com (Checkpoint Technologies) (06/04/90)
In article <1990Jun2.063414.10292@agate.berkeley.edu> laba-1ei@e260-2f (Joseph Chung) writes: >Try this one on for size: > >In an IBM (no flames please!), if I want to put a character anywhere on the >screen, I just >1. load a segment register with the segment of the screen. >2. write the proper byte to the screen location (using a simple offset) (In >short, is a basic POKE command!) > >How would you accomplish this in an Amiga? >Let's see. >1. Create my own screen, or should it be my window (damn, where did I put > my copy of NewWindow struct ...) You must admit that was not a great example. On both IBM (clone) systems and the Amiga, in C, you can open a file to the console and use ANSI control sequences for input and output; in fact one program can be written which will work equally well on both the IBM and the Amiga. (And further, you can be more sure that the program will work correctly on the Amiga because there's no prerequisite that the user choose to install the ANSI.SYS screen driver.) -- First comes the logo: C H E C K P O I N T T E C H N O L O G I E S / / \\ / / Then, the disclaimer: All expressed opinions are, indeed, opinions. \ / o Now for the witty part: I'm pink, therefore, I'm spam! \/
pa2027@sdcc13.ucsd.edu (Knight 'o Shadows) (06/04/90)
In article <1990Jun2.063414.10292@agate.berkeley.edu> laba-1ei@e260-2f (Joseph Chung) writes: >In an IBM (no flames please!), if I want to put a character anywhere on the >screen, I just >1. load a segment register with the segment of the screen. >2. write the proper byte to the screen location (using a simple offset) (In >short, is a basic POKE command!) > >How would you accomplish this in an Amiga? >Let's see. >1. Create my own screen, or should it be my window (damn, where did I put > my copy of NewWindow struct ...) > >The above is just one very tiny example. In short, I would like you to show >me how programming a multitasking system can be *easier* than programming a >monotasking one. > >-jc >-- >Joseph Chung >== You can always find what you're not looking for! == >laba-1ei@web.berkeley.edu Say what??? You're comparing a text environment with a GUI! Let's see you put a character somewhere under Windows or GEM!!! I can do it that easily opening a console window too on the Amiga. You're comparing Apples to Oranges here... Also programming under AmigaDos is inherently multi-tasking. I don't have to worry about multitasking (unless I want too). All I do is write the program without breaking rules, and ta da! it'll multitask. Before you try flaming an architecture, know what you're talking about first!!! thanks, -Brad McQuaid -- Michael Butler - "Water, water everywhere nor any drop to drink"- S.T. Coleridge and Iron Maiden//// Brad McQuaid - When reality obscures your dreams, mind becomes a graveyard of memories, that wander like the lonely breeze... -Fates Warning, No Exit
bknight@runxtsa.runx.oz.au (Phillip Mills) (06/04/90)
gilgalad@dip.eecs.umich.edu (Ralph Seguin) writes: > Hi. I've been watching the discussion of how difficult it is to > program the Amiga versus other systems. I've seen a lot of nonsense. > Somebody has been making claims that it is relatively difficult to > program the Amiga. It is just as easy, and often far easier to write > stuff for the Amiga than most other systems around. As far as my experience in programming goes the AMIGA is really easiy compared to some machine's! Example is the Apple IIGS (which I used to own) - Very easy to construct something but Bloody damn difficult to conform to the WEIRD satndars I tis easier to write software for the AMIGA than any other computer either using an Assembler or 'C' Development language! Oh Well that is my opinion any way! (Try Programming a mac *:) ) See YA! bknight@runxtsa.runx.oz.au
new@udel.EDU (Darren New) (06/04/90)
In article <1990Jun2.063414.10292@agate.berkeley.edu> laba-1ei@e260-2f (Joseph Chung) writes: >In an IBM (no flames please!), if I want to put a character anywhere on the >screen, I just >1. load a segment register with the segment of the screen. >2. write the proper byte to the screen location (using a simple offset) (In >short, is a basic POKE command!) Uh huh. And what exactly is the segment register for the screen? Last I looked, even the two original available screens (CGA and Monochrome) did not have the same base segment for the screen memory. Lets take a different example: wait five seconds on any computer running MS-dos. -- Darren
gpsteffler@tiger.uwaterloo.ca (Glenn Steffler) (06/05/90)
In article <20990@estelle.udel.EDU> new@ee.udel.edu (Darren New) writes: >In article <1990Jun2.063414.10292@agate.berkeley.edu> laba-1ei@e260-2f (Joseph Chung) writes: >>In an IBM (no flames please!), if I want to put a character anywhere on the > >did not have the same base segment for the screen memory. Lets take >a different example: wait five seconds on any computer running MS-dos. > -- Darren Ummm...do you mind I ask why you limit a PC to running MS-DOS...Getting a five second timout is as easy as a simgle function call, and a procedure address it needs to vector to once the delay has been accomplished... if you happen to be programming in Windows. ---- Co-Op Scum Glenn Patrick Steffler gpsteffl@sunee.uwaterloo.ca gpsteffl@sunee.waterloo.edu
jmelv@madnix.UUCP (John Melvin) (06/05/90)
In article <1990Jun2.063414.10292@agate.berkeley.edu>, laba-1ei@e260-2f.berkeley.edu (Joseph Chung) writes: > In article <2487@zipeecs.umich.edu> gilgalad@dip.eecs.umich.edu (Ralph Seguin) > writes: > >Hi. I've been watching the discussion of how difficult it is to > >program the Amiga versus other systems. I've seen a lot of nonsense. > >Somebody has been making claims that it is relatively difficult to > >program the Amiga. It is just as easy, and often far easier to write > >stuff for the Amiga than most other systems around. > > > > Try this one on for size: > > In an IBM (no flames please!), if I want to put a character anywhere on the > screen, I just > 1. load a segment register with the segment of the screen. > 2. write the proper byte to the screen location (using a simple offset) (In > short, is a basic POKE command!) > > How would you accomplish this in an Amiga? > Let's see. > 1. Create my own screen, or should it be my window (damn, where did I put > my copy of NewWindow struct ...) > > The above is just one very tiny example. In short, I would like you to show > me how programming a multitasking system can be *easier* than programming a > monotasking one. > Let's at least compare apples to apples, not oranges. Your example is based more on the added complexity of a GUI interface rather than the specifics of programming on machine or another. I can tell you first hand you IBM becomes quite a bit more like an Amiga once you load up you brand-spanking-new Windows 3.0 (esp. with regard to the 'setup' necessary to have a screen to talk to). It is _not_ the multitasking nature that 'forces' more difficulty, but rather the environment attempting to be achieved (specifically the intelligent managing of limited resources). Oh, just to be nasty, I'd like to 'poke' my char at the 40 1/2 column on the screen -- oh, guess that won't work on a strictly columnar screen that is the IBM default :). Anyhow, using the console device on the Amiga is just like the PC in terms of difficulty if you want a strictly column-based, easy to use, minimal programmer difficulty method of output. How boring. John [d*mmit] [pnews] [let] [me] [post] [this] [article] [with] [appropriate] [context] [included!] -- =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= John P. Melvin "Magic is real -- unless declared integer." // UUCP: {harvard|rutgers|ucbvax}!uwvax!astroatc!nicmad!madnix!jmelv \X/ AMIGA
laba-1ei@e260-3c.berkeley.edu (Joseph Chung) (06/05/90)
Since I posted the original REPLY that generated so much flames, I feel that I must clarify my position. I in no way endorsed the IBM PC when I said it was easier to program. I own an Amiga and I like it very much, (yea even programming it!) Now, maybe all your emminences out there can help a little guy out. I've toyed with the Pets, 64's, AppleII's, IBM's, and Amigas, and in all cases I found it easier to get things done on everything else but the Amiga. When I first bought the Amiga, I faced one of my steepest learning curves. But hey, maybe I just find this type of programming harder. I didn't know all of you had such an easier time learning to program it (compared to a few of the aforementioned systems). So what's wrong here ?? :) And why did some of you (you know who you are!) out there resort to more than friendly :) replies? I took those messages with the utmost respect and care. -jc -- Joseph Chung == You can always find what you're not looking for! == laba-1ei@web.berkeley.edu
northrup@wpi.wpi.edu (Jim Northrup) (06/05/90)
In article <1990Jun5.084107.162@agate.berkeley.edu> laba-1ei@e260-3c (Joseph Chung) writes: >.............................I in no way endorsed the IBM PC when I said it >was easier to program...................................................... >.....................................................................I've >toyed with the Pets, 64's, AppleII's, IBM's, and Amigas, and in all cases I >found it easier to get things done on everything else but the Amiga. >When I first bought the Amiga, I faced one of my steepest learning curves. >But hey, maybe I just find this type of programming harder................ I agree with you, 100%. But it's not really the _Amiga_ that's so hard to program, so much as GUI's in general. As somebody pointed out, writing for MS-Windows or a Mac would be also be hard. I understood you message as you posted it in the first place: GUI's in general, and the Amiga in particular, are in fact harder to program than any of the machines you mentioned above, which typically come without GUI's. As far as GUI's go, though, the Amiga probably has a fairly easy one to program. (e.g. I'm writing X-windows applications now. Ugh!) >.............................................................I didn't know >all of you had such an easier time learning to program it (compared to a few >of the aforementioned systems). Unless they'd programmed GUI's before, I wouldn't believe them if they said they had an easy time with the Amiga than with (say) a non-Windows PC. In summary, you're right, they're wrong. :-) -- Jim Northrup northrup@wpi.wpi.edu Assistant Professor, Mathematical Sciences WPI, Worcester MA 01609
cosell@bbn.com (Bernie Cosell) (06/05/90)
I think you people are missing part of the point. Granted that programming for a really flexible GUI on a multitasking machine has some inherent difficulties. NONETHELESS, AmigaDos has a bunch of what I think are bad design decisions that make it a *lot* harder than it should have had to be. [NB: I can't compare this to programming either the PC or the MAC [I understand that the latter is a REAL nightmare!], but only to programming on 'big' systems... I didn't get my Amiga as the king of small machines, but rather as the smallest 'real' machine, and so I evaluate NOT in contrast to the other little boxes, but as a small incarnation of a BIG one...] 1) the absence of resource tracking. This decision pollutes the Amiga at every level. It makes msot routine programming tasks a (relative) nightmare, since you have to be anal-retentive to a degree I find a constant nuisance. Freeing locks, closing open files, freeing memory, etc, etc. It makes interrupt-handling code a mess, it means that it is hard to get rid of a runaway program... altogether a loser. 2) Having the sender be the 'owner' of messages. Having a message-passing paradigm within the operating system is a lovely and clever idea. Having messages be the 'property' of the *sender* was a serious mistake: again, making programs more complicated, making it overall much more likely that the machine gets screwed up, etc. The problem is that, as with resource tracking, this decision makes it unnecessarily difficult to clean up a process, and also means that the code has to be uglified to have wait's to make sure that everything that was sent gets replied to. A different plan (which we happen to use in a system here and works out just fine) is to have the current holder of a message be its owner, and so be responsible for freeing it (or forwarding it, or whatever the recipient wants to do with it). It means that you can just "send it and forget it", instead of having to ensure that you wait for the reply before you exit your process. Instead of treating the reply as a REAL reply, just treat it as an *independent* message going in the reverse direction... means that if the requestor is gone, for whatever reason, the replier can just discard the message and the system happily hums along... nothing lost, no gurus, no nothing.. /Bernie\
jmeissen@oregon.oacis.org (John Meissen) (06/05/90)
People think the Amiga is difficult to program for a variety of reasons, but so far I haven't seen any that make sense. For instance,... In article <56964@bbn.BBN.COM> cosell@bbn.com (Bernie Cosell) writes: >I think you people are missing part of the point. Granted that >programming for a really flexible GUI on a multitasking machine has >some inherent difficulties. NONETHELESS, AmigaDos has a bunch of what >I think are bad design decisions that make it a *lot* harder than it [etc. etc.] >1) the absence of resource tracking. This decision pollutes the Amiga >at every level. It makes msot routine programming tasks a (relative) >nightmare, since you have to be anal-retentive to a degree I find a >constant nuisance. Freeing locks, closing open files, freeing memory, >etc, etc. It makes interrupt-handling code a mess, it means that it is >hard to get rid of a runaway program... altogether a loser. Oh, give me a break. This is just lazy programming. Any programmer that wasn't careful about closing open files and freeing memory, etc., wouldn't be working for me for very long. And I don't care WHAT system he is writing programs for. It can be nice to have the system clean up after you when you make mistakes, but it's not commercial quality software when your program depends on it. >2) Having the sender be the 'owner' of messages. Having a >message-passing paradigm within the operating system is a lovely and >clever idea. Having messages be the 'property' of the *sender* was a >serious mistake: again, making programs more complicated, making it [long dissertation deleted] This is another misconception. Remember, there isn't any resource tracking on the Amiga. No process is the "owner" of any memory. It's merely convention that a process return a message when it is through with it. This has more to do with synchronization than ownership. When the message comes back, you know the recipient is finished with it. There's nothing at all preventing you from implementing a different scheme within the framework of your own programs. > /Bernie\ -- John Meissen .............................. Oregon Advanced Computing Institute jmeissen@oacis.org (Internet) | "That's the remarkable thing about life; ..!sequent!oacis!jmeissen (UUCP) | things are never so bad that they can't jmeissen (BIX) | get worse." - Calvin & Hobbes
ckp@grebyn.com (Checkpoint Technologies) (06/06/90)
In article <1990Jun5.084107.162@agate.berkeley.edu> laba-1ei@e260-3c (Joseph Chung) writes: > >Since I posted the original REPLY that generated so much flames, I feel that >I must clarify my position. I in no way endorsed the IBM PC when I said it >was easier to program. I own an Amiga and I like it very much, (yea even >programming it!) > >Now, maybe all your emminences out there can help a little guy out. I've >toyed with the Pets, 64's, AppleII's, IBM's, and Amigas, and in all cases I >found it easier to get things done on everything else but the Amiga. If you're really interested in a simple Amiga programming environment, then you should read the Bantam AmigaDOS manual and nothing else. Then you can use Read() and Write() with CON: for input and output, and it's about as simple as you want it to be. You can even get mouse click messages, raw keycodes, and window configuration information. But if you think that doing windows, menus, gadgets, requesters, screens, views and viewports, bobs, sprites, and such sophisticated Amiga things, when acting as a task in a multi-tasking system, should be as simple as doing single-tasking text applications on the IBM, then you are just going to be dissapointed. Get used to it. -- First comes the logo: C H E C K P O I N T T E C H N O L O G I E S / / \\ / / Then, the disclaimer: All expressed opinions are, indeed, opinions. \ / o Now for the witty part: I'm pink, therefore, I'm spam! \/
daveh@cbmvax.commodore.com (Dave Haynie) (06/06/90)
In article <1990Jun5.084107.162@agate.berkeley.edu> laba-1ei@e260-3c (Joseph Chung) writes: >Now, maybe all your emminences out there can help a little guy out. I've >toyed with the Pets, 64's, AppleII's, IBM's, and Amigas, and in all cases I >found it easier to get things done on everything else but the Amiga. I think "toy-ed" is the operative word. Pets, 64's, AppleII's, and IBMs (at least under MS-DOS) are very fundamentally the same, to the programmer. You own most everything, and do whatever you feel like with it. This also has a severe tendency toward making the machine you're programming a toy, or something similar. On the C64, for instance, even straightforward programs poke to the screen, jump to illegal places in ROM, etc. So the ROM is essentially a part of the C64 hardware design now, and you'll never get an improved C64 that's C64 compatible. Even the C128 resorts to a new mode and completely different ROM to use new features. The MS-DOS machines were a little better, but not much -- MS-DOS applications are very hardware specific, and most of the new OSs for PClone machines like DesqView or MS-Windows use quite a bit of magic to get the average MS-DOS program to run. The '386 chip helps here, but doesn't change a kludge from being a kludge. >When I first bought the Amiga, I faced one of my steepest learning curves. >But hey, maybe I just find this type of programming harder. I didn't know >all of you had such an easier time learning to program it (compared to a few >of the aforementioned systems). Like I said, the aforementioned systems are all very similar. If you've spent years programming minicomputers, systems like those you mentioned would seem much more difficult to you than the Amiga. It all depends on your point of view. I learned BASIC on a Cyber 72, then a PET, then I spend several years programming on a Sorcerer, then moved to a DEC-20, then UNIX on a PDP-11, then an Intel 8080 development machine, then VMS on a VAX. After all of that, I found things like the C64 and C128 far too weak for any serious programming. The Amiga was the first PC I really felt comfortable with. >So what's wrong here ?? :) Your prespective. Program nothing but an Amiga for a year or two and then try going back. >Joseph Chung -- Dave Haynie Commodore-Amiga (Amiga 3000) "The Crew That Never Rests" {uunet|pyramid|rutgers}!cbmvax!daveh PLINK: hazy BIX: hazy "I have been given the freedom to do as I see fit" -REM
cmcmanis@stpeter.Eng.Sun.COM (Chuck McManis) (06/07/90)
In article <1990Jun5.084107.162@agate.berkeley.edu> (Joseph Chung) writes: >When I first bought the Amiga, I faced one of my steepest learning curves. >But hey, maybe I just find this type of programming harder. I didn't know >all of you had such an easier time learning to program it (compared to a few >of the aforementioned systems). >So what's wrong here ?? :) It is all relative to what you have done before. Is there really a lot of difference be learning that poking addresses X, Y, and Z will put a C64 into Hi-res color mode, versus calling function OpenScreen() with parameters X, Y, and Z will get you an Amiga Screen in Hi-res color mode? If you learn how to program on a PC maybe it is tougher than if you learned how to program on a window based box. I think a lot of people took offense at the implication in your message that the Amiga was _gratuitously_ harder to program. Meaning that for some reason the designers had made up a bunch of rules on programming just to make it harder to program. This was of course not the case and everyone let you know what they thought. -- --Chuck McManis Sun Microsystems uucp: {anywhere}!sun!cmcmanis BIX: <none> Internet: cmcmanis@Eng.Sun.COM These opinions are my own and no one elses, but you knew that didn't you. "I tell you this parrot is bleeding deceased!"
eachus@linus.mitre.org (Robert I. Eachus) (06/07/90)
In article <136762@sun.Eng.Sun.COM> cmcmanis@stpeter.Eng.Sun.COM (Chuck McManis) writes:
It is all relative to what you have done before. Is there really a lot
of difference be learning that poking addresses X, Y, and Z will put
a C64 into Hi-res color mode, versus calling function OpenScreen() with
parameters X, Y, and Z will get you an Amiga Screen in Hi-res color mode?
The major difference, I think is learning how NOT to think
sequentially. I have run into a number of former application
programmers who never could learn this, and therefore had to be
assigned away from systems programming and even compiler writing.
The test I always use now is whether someone can write re-entrant
code. If they can do that, the Amiga is a lot easier to program for
than Suntools, or X-windows, or even a PC. If they can't, anything
they do for an interactive environment will be either buggy or
frustrating to use. Unfortunately, a lot of games, even some I paid
money for, seem to fall in this category.
(Note to game authors: Put a bug in your code using the debugger,
or use the one you are currently debugging, so that the game will die.
Now select Quit from the menu. Nothing happens? Don't release it.
If it cleans up all of its memory and exits, it passes my FIRST test
for games.)
--
Robert I. Eachus
Amiga 3000 - The hardware makes it great, the software makes it
awesome, and the price will make it ubiquitous.
jdutka@wpi.wpi.edu (John Dutka) (06/07/90)
In article <12338@cbmvax.commodore.com> daveh@cbmvax (Dave Haynie) writes: >years programming on a Sorcerer, then moved to a DEC-20, then UNIX on a Finally! Someone who admits to programming on a DEC-20. I did some FORTRAN programming for mechanical/aerospace engineering applications on a DEC-20 a few years ago, and programming on an Encore Multimax now just isn't the same. :) -- | husc6!m2c!wpi!jdutka | "Hey, baby - wanna do some HEAT TRANSFER? | | jdutka@wpi.wpi.edu | Heh, heh, heh!" | | John Dutka, Jr. | -Mechanical Engineers On The Prowl | | jdutka%wpi.wpi.edu%mitvma.bitnet __________________________________________|
xanthian@zorch.SF-Bay.ORG (Kent Paul Dolan) (06/10/90)
In article <1990Jun2.063414.10292@agate.berkeley.edu> laba-1ei@e260-2f (Joseph Chung) writes: >In article <2487@zipeecs.umich.edu> gilgalad@dip.eecs.umich.edu (Ralph Seguin) >writes: >>Hi. I've been watching the discussion of how difficult it is to >>program the Amiga versus other systems. I've seen a lot of nonsense. >>Somebody has been making claims that it is relatively difficult to >>program the Amiga. It is just as easy, and often far easier to write >>stuff for the Amiga than most other systems around. >> > >Try this one on for size: > >In an IBM (no flames please!), if I want to put a character anywhere on the >screen, I just >1. load a segment register with the segment of the screen. >2. write the proper byte to the screen location (using a simple offset) (In >short, is a basic POKE command!) > >How would you accomplish this in an Amiga? >Let's see. >1. Create my own screen, or should it be my window (damn, where did I put > my copy of NewWindow struct ...) > >The above is just one very tiny example. In short, I would like you to show >me how programming a multitasking system can be *easier* than programming a >monotasking one. No problem! You are considering programming in the small, which is the wrong place to be looking for the benefits of programming the Amiga. Look instead at programming in the large. Many companies look at the large installed base of IBM-PC's and their clones, and say "$$$!!! That's the place to write programs for sale!". Then they get into the beta testing stage of a product and find: more than 20 incompatible printer formats, requiring a separate driver for each; half a dozen incompatible display technologies, requiring either separate drivers or complex code; at least two incompatible mouse technologies, requiring separate drivers; several incompatible raster image export and import formats, ditto; two or more incompatible memory expansion technologies, each with several incompatible software access technologies, ditto; imperfect or incompatible BIOS emulations, requiring separate product releases; a buggy and poorly maintained operating system, causing headaches all through the development cycle; and the list goes on. I was fired from a company a year ago because my (within size spec, within speed spec, meeting functional spec, bug free) code had "held up their development process" (actually, they'd overspec'ed their needs by a factor of four in complexity); the product release date had slipped seven months in the nine months I was there as a member of an 18 person development team! A year later, the product is _still_ not released, and this from about the fifth largest software developer for the PC family. A project originally intended to require 12 months has taken at least 30. Trying to develop _substantial_ code (not screen pokes) in the PC marketplace is at least one order of magnitude harder than it is in the Amiga market, I would guess, and the problem continues to worsen. Kent, the man from xanth. <xanthian@Zorch.SF-Bay.ORG> <xanthian@well.sf.ca.us> (What held up their development the most was the classic problem Fred Brooks described in The Mythical Man Month: throwing bodies at a late software project. The team went from 9 to 26 from the time the schedule started slipping. Each new person required that work be devised for them to do; most of the existing work was single threaded through one programmer, hard to teach or subdivide, so _new_ features were added to the product, making it late than ever. Still, their stock keeps going up. ;-)
GWO110%URIACC.BITNET@brownvm.brown.edu (F. Michael Theilig) (06/11/90)
On 10 Jun 90 09:47:10 GMT you said: > >You are considering programming in the small, which is the wrong place to >be looking for the benefits of programming the Amiga. > >Look instead at programming in the large. Many companies look at the large >installed base of IBM-PC's and their clones, and say "$$$!!! That's the >place to write programs for sale!". Then they get into the beta testing >stage of a product and find: > >more than 20 incompatible printer formats, requiring a separate driver for >each; > >half a dozen incompatible display technologies, requiring either separate >drivers or complex code; > >at least two incompatible mouse technologies, requiring separate drivers; > >several incompatible raster image export and import formats, ditto; > >two or more incompatible memory expansion technologies, each with several >incompatible software access technologies, ditto; > >imperfect or incompatible BIOS emulations, requiring separate product releases; > >a buggy and poorly maintained operating system, causing headaches all through >the development cycle; > >and the list goes on. > While I sorda agreed when I read the first few posts about smaller systems being easier to program (I migraded up from the C64), doing anything complex on a smaller system is a serious pain. On the C64 you had two useable language options: BASIC and ML. BASIC was slow and very limited, and writing major code (I did a BBS which was *HUGE*!) was almost impossible. The assemblers I used (better ones were available) were slow, buggy, and a pain to use. The Amiga is complicated almost to a fault (definate learning curve), and the C64 was simplistic to a fault. Once I get fully up and running with Amiga programming, I know I'll never want to leave it. ---- F. Michael Theilig - The University of Rhode Island at Little Rest GWO110 at URIACC.Bitnet GKZ117 at URIACC.Bitnet "Gooooood coffee."
BAXTER_A@wehi.dn.mu.oz (06/13/90)
In article <21622@snow-white.udel.EDU>, GWO110%URIACC.BITNET@brownvm.brown.edu (F. Michael Theilig) write> > The Amiga is complicated almost to a fault (definate learning curve), > and the C64 was simplistic to a fault. Once I get fully up and running > with Amiga programming, I know I'll never want to leave it. > > ---- > F. Michael Theilig - The University of Rhode Island at Little Rest > GWO110 at URIACC.Bitnet > GKZ117 at URIACC.Bitnet > > "Gooooood coffee." Hmm. I don't know why people keep saying that. The Amiga is not that complicated. If you just bought it and you want to write a BBS, THAT's complicated. When I bought it, I wanted to write my startup sequence. The only problem I had was the idiot company forgot to include the instruction manual, forgot to mention it wasn't in the box, let some complete moron write it, and got got tin-pot company to publish it, so I had to travel 2,000 miles to buy it. All we need is good, clear, accessible manuals. The new programmers docs are fine. I hope they have started putting the ADos book in the box. Regards Alan