Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!mnetor!uunet!seismo!rutgers!ames!hao!noao!mcdsun!sunburn!gtx!edge!doug From: doug@edge.UUCP (Doug Pardee) Newsgroups: comp.misc Subject: Assembly Language Message-ID: <892@edge.UUCP> Date: Fri, 7-Aug-87 13:57:03 EDT Article-I.D.: edge.892 Posted: Fri Aug 7 13:57:03 1987 Date-Received: Sun, 9-Aug-87 13:04:15 EDT Organization: Edge Computer Corporation, Scottsdale, AZ Lines: 57 About this assembly-language stuff... Many say that they have no personal need for assembly language, and that this shows that there is no need for assembly language. I have no need for a cement mixer truck. If I ever need to haul some wet cement, I can put it in a plastic bag in the trunk of my car. Better yet, I'll haul a bag of dry cement and mix it on the spot. But does this prove that cement mixer trucks are pointless? Many say that assembly language is more difficult than C or Pascal, because it doesn't look like those languages. Clearly then, COBOL, BASIC, APL, LISP and Prolog are also difficult, because they don't look like C or Pascal. Many say a lot of other things about assembly, most of which aren't true. Things like "takes too much code", and "hard to debug". Those who are saying these things will also tell you that they've never compromised their virtue by having written in assembly themselves. Folks, just because it looks *different* doesn't mean it's hard. ANY language looks hard to someone who doesn't know the language. To an assembly language programmer, C looks hard. It's all in what you're familiar with. Assembly is just another language. Like other languages, it has strong points and it has weak points. Its strong points are efficiency, both in speed and in memory space, unlimited flexibility, and ease of debugging (yes, EASE of debugging). Its weakest point is non-portability. It's also a bit weak where a lot of subroutine calls have to be made using HLL interface specs -- unless you have a good assembler program with nice macro facilities you'll have to do a lot of messing around. As a rule, assembly language programs are actually EASIER for another programmer to pick up and figure out than are C programs (given that the reader is fluent in the language). This isn't because of anything inherent in the language, but simply because assembly programmers usually comment like fiends, while C programmers think their code is self-documenting. In terms of the amount of code you have to write, assembly tends to be in the middle ground. More code than APL or C, less code than Pascal or COBOL. However, the high level of commenting tends to increase the number of characters well beyond the size of the usual (uncommented) Pascal program. Well, actually, there is a bit of truth to the claims that assembly language is hard to write in. Unlike (say) BASIC, you can't program in assembly by trial-and-error. You have to know what you're doing or you aren't going to get anywhere. There are two consequences of this: 1) the inexperienced assembly programmer has to learn an awful lot before he can start writing programs that will run; and 2) programmers of marginal ability might *never* be able to learn enough to get their assembly programs to run. Assembly language programming isn't "impossibly hard", and it *is* still widely used in the non-Unix world. Regardless of what college professors and Unix fans would have you believe. There are a lot of applications out there where portability is of no interest, but performance is critical. For those applications, assembly is clearly the language of choice. -- Doug Pardee, Edge Computer Corp; ihnp4!mot!edge!doug, seismo!ism780c!edge!doug