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.3 required=5.0 tests=BAYES_00,INVALID_MSGID autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: fc89c,666fe02f45914704 X-Google-Attributes: gidfc89c,public X-Google-Thread: 1014db,666fe02f45914704 X-Google-Attributes: gid1014db,public X-Google-Thread: 10db24,666fe02f45914704 X-Google-Attributes: gid10db24,public X-Google-Thread: 109fba,666fe02f45914704 X-Google-Attributes: gid109fba,public X-Google-Thread: 103376,666fe02f45914704 X-Google-Attributes: gid103376,public From: eachus@spectre.mitre.org (Robert I. Eachus) Subject: Levels of abstraction (was Re: What's the best language to learn?) Date: 1996/08/27 Message-ID: #1/1 X-Deja-AN: 176819336 distribution: su references: organization: The Mitre Corp., Bedford, MA. newsgroups: comp.edu,comp.lang.ada,comp.lang.c,comp.lang.c++,comp.unix.programmer Date: 1996-08-27T00:00:00+00:00 List-Id: In article "Arkady V.Belousov" writes: > ...This code something more complicated, but they also "even > portable" and MUCH!!!! more efficient... > P.S. Not much, but my (not showed there) trim function is more > efficiency, because they manipulate on instance of String class, > which know they length. In Ada 95, there is not one Trim for strings, there are 11 (or 22 if you count the corresponding packages for Wide_Strings). I won't list them all here, but basically there are four different profiles on three (or six) different string representations. Of course, in any Ada implementation the bodies of those subprograms are going to be written in Ada. I'm bringing this up, not as an argument that Ada is better, but to show that there are different levels of abstraction, and trying to decide that one language is better than another based on level of abstraction is totally missing the point. Programmers need to operate at the level of abstraction which is appropriate for the problem at hand. As long as a software engineer has a set of tools in his toolbox that can work at all necessary levels, the tool from his personal toolbox that he chooses may not be the best tool for the job, but it will be a good tool for that job, and one he or she is comfortable with. Now I could argue that for down and dirty programming assembler is best, at a slightly higher level you should switch to C, and above that use an OO language. Or I could just work in Ada at all levels and gain the advantages of a seamless development environment. (Which I will choose depends on the project. On small projects at a single level of abstraction, and where the code will not be maintained for a long period, the answer will often be some language other than Ada.) To get back to the original question that prompted this thread, one reason that Ada is a very good first programming language is that it is one in which you can operate at all levels of abstraction. (and first year student should NOT be exposed to too many of them!) -- Robert I. Eachus with Standard_Disclaimer; use Standard_Disclaimer; function Message (Text: in Clever_Ideas) return Better_Ideas is...