From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: * X-Spam-Status: No, score=1.6 required=5.0 tests=BAYES_05,INVALID_MSGID, REPLYTO_WITHOUT_TO_CC autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 109fba,baaf5f793d03d420 X-Google-Attributes: gid109fba,public X-Google-Thread: fc89c,97188312486d4578 X-Google-Attributes: gidfc89c,public X-Google-Thread: 103376,97188312486d4578 X-Google-Attributes: gid103376,public X-Google-Thread: 1014db,6154de2e240de72a X-Google-Attributes: gid1014db,public From: patrick@broadvision.com (Patrick Horgan) Subject: Re: What's the best language to start with? [was: Re: Should I learn C or Pascal?] Date: 1996/08/22 Message-ID: <4vgftj$3nh@ns.broadvision.com>#1/1 X-Deja-AN: 175773792 references: <4uodcb$8hr@rational.rational.com> organization: The quite unorganized Patrick reply-to: patrick@broadvision.com newsgroups: comp.lang.c,comp.lang.c++,comp.unix.programmer,comp.lang.ada Date: 1996-08-22T00:00:00+00:00 List-Id: In article <4uodcb$8hr@rational.rational.com>, rlk@rational.com (Bob Kitzberger) writes: > > But efficiency is not the be-all and end-all. You have to balance > efficiency with ease of use, ease of maintenance, etc. The > fastest or most efficient solution is not always the "best" > solution. > That's true but Tim had a good point. As the years have gone by I've found myself searching more and more for (and hitting occasionally) elegant solutions. I know that's an inexact term, but let me see if I can flounder around a bit and make it more confusing.;) When I find an elegant solution much of the code falls out. The solution gets simpler. It seems to come from a better understanding of the problem. An elegant solution seems to arise out of the problem domain with a life of it's own demanding to be implemented. Its a best-fit solution. When I find one (and I think years of thinking really hard and learning hard lead to finding more of them), it almost always ends up being the best of all worlds. It's efficient. It's easy to use. It's clear and easy to maintain. I don't think you get here without a lot of experience in good code and bad code, good ideas and bad ideas, and I know that this will offend some, but really, really, low level code like assembler code is one of the ingredients that go into your palette to bring you to a place where you can do this. Add in some intuition and some other right brain stuff, and you start getting developers that are head and shoulders above the rest of the folks. You start getting people that come up with the elegant solutions. I've seen some of them trying to communicate in this (too) long discussion and being frustrated because people didn't understand what they were saying. It seemed so obvious to them, but they were talking in some cases to people without the background to understand their arguments. Most people in this discussion that said you needed to learn assembler didn't mean that there was a particular reason that assembler led you to the holy grail of development. They meant that assembler, and object oriented design, and algorithms, and math, and poetry (too strange?;) and a lot of other stuff are the pieces from which they're building their gestalts. It's the things from which an elegant design and resultant elegant implementation falls out. It takes a lot of knowledge and a lot of experience. Sure, what you learn from becoming a good assembler programmer is only part of the puzzle, and if that was all you had you wouldn't be a good developer over- all. It IS part of the puzzle though, and people that think it's not aren't as good as they would be if they had the breadth of experience. It all helps, it's all important. -- Patrick J. Horgan patrick@broadvision.com Have horse will ride. Opinions mine, not my employer's except by most bizarre coincidence.