Path: utzoo!mnetor!uunet!lll-winken!lll-tis!ames!claris!apple!rmh From: rmh@Apple.COM (Rick Holzgrafe) Newsgroups: comp.sys.mac.programmer Subject: Re: Prototyper vs. Doing it Yourself Message-ID: <7690@apple.Apple.Com> Date: 15 Mar 88 19:02:41 GMT References: Reply-To: rmh@apple.UUCP (Rick Holzgrafe) Organization: Apple Computer Inc, Cupertino, CA Lines: 61 In article rs4u+@andrew.cmu.edu (Richard Siegel) writes: > > However, I resist using tools such as MacApp, or Programmer's Extender, >or MacExpress, or Prototyper, simply on the grounds that I'd rather do it >myself. If I do it myself, I've gained an insight into how things work; I've >gotten my hands dirty, and I know exactly where the bugs lie (if there are >any). The learning is sometimes more valuable than getting the job done. My > >=================================================================== >Rich Siegel >Confused Undergrad, Carnegie-Mellon University > >The opinions stated here do not represent the policies >of Carnegie-Mellon University. > >Arpa: rich.siegel@andrew.cmu.edu >UUCP: {decvax,ucbvax,sun}!andrew.cmu.edu!rich.siegel >================================================================== All valid points, Rich. And I'll admit before I start shooting off my mouth, that I haven't yet done any programming in an object-oriented environment (I work in C -- "RSN", they tell me :-). But as an ex-Un*x hack, I have programmed with such luxuries as YACC, which creates parsers from simple descriptions of a grammar, and LEX, which creates scanners from (fairly) simple descriptions of a lexicon. The purpose of these gadgets, ultimately, is the same as the purpose of a compiler vs. an assembler. Writing in assembler, you know EXACTLY what the machine is doing: nothing is hidden: and your code is smaller and runs faster. So why program in a high-level language? The answer is, that in a production environment the learning is rarely more important than getting the job done in a timely fashion. In school, you should learn (I did notice your mailing address :-). In production, you generally should have already learned: you can then decide whether the job is better done by hand or by a power tool. (Once in a while, I usually do take time to learn something new. I don't mean to imply that I am or anyone is a total know-it-all or ever can be!) Brad J. Cox, in his book "Object-Oriented Programming: An Evolutionary Approach" makes the point that for twenty years, the productive capability of hardware engineers has doubled every year, because each year they can grab an ever-more-sophisticated pre-made component off the shelf, instead of re-designing that particular wheel themselves. In the same two decades, while the hardware designer's effectiveness has been increasing exponentially, the software designer's has been increasing only arithmetically (Cox's estimates), largely because we software types can rarely re-use someone else's work. The odd "sort" routine from a sub-routine library, and that's about it. Pretty low-level stuff, while the hardware folks can now grab an entire CPU for around $30. The moral: Power tools are effective: they don't come without price, but the right (!) power tools can be a tremendous productivity aid. So how massive a flame war have I started? (-: *cringe* :-) ========================================================================== Rick Holzgrafe | {sun,voder,nsc,mtxinu,dual}!apple!rmh Communications Software Engineer | AppleLink HOLZGRAFE1 rmh@apple.com Apple Computer, Inc. | "All opinions expressed are mine, and 20525 Mariani Ave. MS: 27-Y | do not necessarily represent those of Cupertino, CA 95014 | my employer, Apple Computer Inc."