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=-0.3 required=5.0 tests=BAYES_00,HK_RANDOM_FROM, INVALID_MSGID autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,36208f5925ed5269 X-Google-Attributes: gid103376,public From: bglbv@my-dejanews.com Subject: Re: non-consecutive ranges Date: 1999/05/01 Message-ID: <877lqszppo.fsf@bglbv.my-dejanews.com>#1/1 X-Deja-AN: 472935149 References: <7gct90$7hr$1@nnrp1.dejanews.com> X-Complaints-To: abuse@freeuk.net X-Trace: nnrp2.clara.net 925580054 212.126.149.163 (Sat, 01 May 1999 18:34:14 BST) NNTP-Posting-Date: Sat, 01 May 1999 18:34:14 BST Newsgroups: comp.lang.ada Date: 1999-05-01T00:00:00+00:00 List-Id: Ehud Lamm writes: > We can connect this to the idea of abstraction in general. Great > scientists are usually regarded to be those that aside from using various > scientific abstractions (like differntial equations, newtonian mechanics, > thermodynamics etc.), grasp the inner details - thus knowing when things > are applicable and when they are not and the theory etc. needs to be > modified. No, that's just the definition of a _competent_ scientist. To qualify as great, a scientist must also have had at least two good original ideas in his/her career. [Bad ideas don't count, as one tends not to keep track of their originality.] Back to programming: a competent programmer also needs some understanding of the underlying details. In order to successfully use floating point arithmetic, you need to know about rounding and about the fact that not all real numbers are representable. If you want to write efficient code, you need to know both about the properties of the algorithms that apply to your problem and about existing constraints on how various features of your programming language are implemented. The role of abstraction isn't to let us permanently forget the details, but rather to help us keep the interdependencies between the various parts of a large program at a manageable level.