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=2.8 required=5.0 tests=BAYES_00,INVALID_MSGID, MSGID_RANDY,REPLYTO_WITHOUT_TO_CC autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,1042f393323e22da X-Google-Attributes: gid103376,public X-Google-Thread: 1014db,1042f393323e22da X-Google-Attributes: gid1014db,public X-Google-Thread: 109fba,1042f393323e22da X-Google-Attributes: gid109fba,public From: lga@sma.ch (Laurent Gasser) Subject: Re: Software Engineering is not a hoax... Date: 1997/05/26 Message-ID: <5mc1a2$icf$1@dbs1.sma.ch>#1/1 X-Deja-AN: 243999720 Distribution: world References: Summary: software science progresses Organization: Swiss Meteorological Institute Reply-To: lga@sma.ch Newsgroups: comp.lang.c++,comp.lang.c,comp.lang.ada Date: 1997-05-26T00:00:00+00:00 List-Id: In article , jfbode@nospam.mail.earthlink.net (John Bode) writes: > The problem with using the term "software engineering" is that the practice > of programming is still more art than science. Computer programs are not > like transistors, or gears, or steel I-beams that show up in real-world > engineering. We're not dealing with physical principles, but with the > codification of thought. Programming (in its current form) is more > comparable to composing a symphony or writing a novel than building a > bridge or designing a computer chip. > > And I feel it will always be that way. We can attempt to streamline the > process with OOP, with dynamic languages, with visual programming, but it > is still a codification of thought, and humans do not tend to think > logically. > -- > John Bode > "Paranoia is just reality on a finer scale" -- Strange Days In the domain of codification of thought, computer scientist have made progress. In my daily work, I sometimes encounter very old Fortran 77 code, not respecting the principles of structured programming. Once, it took me one hour on a 100 LOC procedure to be sure that they simply were overlapping a IF-THEN block with a WHILE-REPEAT block thanks a GOTO. It looked something like label_1 CONTINUE CALL read_formatted_file(..., istat) IF (istat == 0) THEN statements : : GOTO label_1 END IF statements The equivalent code in Ada (or in Fortran 90 in my case) could be loop read_formatted_file(..., istat) if (istat /= NoError) then exit; endif; statments : : end loop I am pretty sure that in 15 years from now, a programmer looking at code will immediatly complain if the module is not following the principles of OO or is not designed as an Abstract Data Type. Another science (namely mathematics) has been able to codify thinking. I admit that production of great works has always been a question of creativity. But you rarely see mathematicians fighting against the Aristotelian principles of logic (true or false exclusively, no third case; logic of predicates). -- Laurent Gasser (lga@sma.ch) Computers do not solve problems, they execute solutions.