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.4 required=5.0 tests=BAYES_50,INVALID_MSGID autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: fdb77,4873305131bf4d94 X-Google-Attributes: gidfdb77,public X-Google-Thread: 10261c,90121986704b5776 X-Google-Attributes: gid10261c,public X-Google-Thread: 109fba,4873305131bf4d94 X-Google-Attributes: gid109fba,public X-Google-Thread: 10c950,90121986704b5776 X-Google-Attributes: gid10c950,public X-Google-Thread: 103376,4873305131bf4d94 X-Google-Attributes: gid103376,public X-Google-Thread: 1014db,4873305131bf4d94 X-Google-Attributes: gid1014db,public From: jstevens@samoyed.ftc.nrcs.usda.gov (John Stevens) Subject: Re: ADA and Pascal SUCK, C,C++, and Java are the only languages you need!! Date: 1997/11/06 Message-ID: #1/1 X-Deja-AN: 287453378 References: <34557f2b.1934172@news.mindspring.com> <34566fe9.447229@news.mindspring.com> <345673af.1413708@news.mindspring.com> <3456A374.5BF2@public.hz.zj.cn> <63b4ao$ctf$1@news.inc.net> Organization: USDA/NRCS Information Technology Center Newsgroups: comp.lang.ada,comp.lang.c,comp.lang.c++,comp.lang.java.advocacy,comp.lang.pascal.ansi-iso,comp.lang.pascal.misc Date: 1997-11-06T00:00:00+00:00 List-Id: On Thu, 30 Oct 1997 17:11:26 -0600, Scott Baierl wrote: > >Smart programmers spend their time learning programming languages that help >them solve the real-world problems in their particular application domain. Umm. . . no. Smart programmers live, learn, and grow up to be sofware engineers. Software engineers live, learn, and grow up to be system architects. System architects live, learn, and grow up to be Computer Scientists. The constant in all this is to move from the concrete, to ever more abstraction, to higher levels of complexity, and to greater numbers of relationships and levels of relationship nesting. A programmer applies his knowledge of C to write a sorting algorithm for integers using a cook book algorithm. A software engineer queries his architect, develops designs that match the system architechture, can be maintained, are of good quality and can be easily and effectively tested. And then he probably helps program. An architect surveys his customers business area, looks at the current set of problems to be solved, and the tasks that need doing, matches this information against both mature and newer art to design a system that can be used to solve immediate problems, streamline communications between hitherto separate or even antagonistic sub-systems, provide business level control and support, constrain, and assist in the adaption of that system to unexpected events or changes. And then he probably helps do some of the engineering and coding. A Computer scientist is capable of all of the above, including the addition of questions of morality and societal impact, as well as being able to produce new art to solve problems that have not yet become part of existing business systems. Analogy: The architect is the guy standing at the top of the hill. He surveys this hill, decides that the inhabitants of this hill are wasting time and energy by growing to much food, and that this is occuring because to much of this food is being wasted. He decides that what is needed is: a monetary system to make it easier to track and control the flow of food, a communications system to allow the inhabitants to organize the flow of food from places where it can be produced to places where it cannot be, and a system of roads to do the actual transportion of the food to different parts of the hill. One of the engineers gets the task of solving part of the transportation problem by being asked to design the necesary bridge to get across a particularly troublesome ravine. The architect tells the engineer to make the bridge out of wood, a minimum of two lanes wide, and capable of supporting up to x number of tons. The engineer decides what kind of bridge would be easiest/best to build to cross this particular ravine: suspension, trestle, etc., and draws up the specific plans taking into account good engineering practice (water sealing the wood, designing a safety factor (x tons + 30%, for example) adding on whatever state-of-the art traffic flow control options are needed, and available, and putting up signs that specify the weight limit of the bridge. The programmers are the guys carrying the planks, swinging hammers, drilling holes and sawing wood. The keep a weather eye on each plank, making sure that it has no flaws, is of good quality, and properly sealed. They also make best effort to ensure that the holes drilled are correct in size and placement, that the pieces are cut to best fit, etc. All the while this is going on, the Scientist is also standing on top of the hill, but instead of looking down at the hill beneath his feet, he is looking out over the sea that surrounds the island this hill sits on, dreaming of ways (flying, anyone?) to get from this hill, to another hill on the next island. Which is why arguing about which language is best is probably outside the scope of most of our area of responsibility. Most of us here are not architects, or even engineers. >I know Pascal, C, C++, COBOL, Fortran, Java, Basic and several variants of >Assembler. None of them is difficult to learn. Each language has its >strong and weak points. I happen to think that C++ is probably the most >versatile language of the bunch, which is why I use it more than the others. Me, I think that combining languages gives you much more versatility. John S.