Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!mnetor!uunet!seismo!sundc!pitstop!sun!amdcad!ames!ptsfa!ihnp4!homxb!mtuxo!mtune!codas!usfvax2!pdn!pdnbah!reggie From: reggie@pdnbah.UUCP (George Leach) Newsgroups: comp.lang.misc,comp.software-eng Subject: Re: Software Technology is NOT Primitive Message-ID: <1684@pdn.UUCP> Date: Thu, 29-Oct-87 13:30:23 EST Article-I.D.: pdn.1684 Posted: Thu Oct 29 13:30:23 1987 Date-Received: Wed, 4-Nov-87 04:09:55 EST References: <3405@ece-csc.UUCP> <638@its63b.ed.ac.uk> Sender: usenet@pdn.UUCP Reply-To: reggie@pdnbah.UUCP (George Leach) Distribution: comp Organization: Paradyne Corporation, Largo, Florida Lines: 90 Summary: Lets return to the good old days Xref: mnetor comp.lang.misc:823 comp.software-eng:32 In article <4943@ncoast.UUCP> crds@ncoast.UUCP (Glenn A. Emelko) writes: >Lawrence (and all), [stuff deleted....] >.............................................. and it was expected >that the software engineer knew alot about the machine and environment (in >terms of the hardware) that was hosting the program, which allowed for tricks >and little magical wonders to happen (laughing, in other words, the designer >took advantage of what was available). In contrast, today, many designers >know nothing about the destination machine (it's a UNIX box?), and most are >not very concerned about how much memory, disk space, or anything else that >they use........... Man have you missed the boat! That kind of thinking just does not cut it anymore! Sure, it is fine to tweek and tighted up stuff to run optimal upon a specific hardware platform, if you plan on never moving that software to another machine. However, the tasks that software must serve continue to become more complex as we see greater advances in hardware. At the same time, software must remain *PORTABLE*, so as to minimize the effort involved in moving existing software to new hardware platforms to gain the advantage they offer. Furthermore, we are seeing emphasis being put upon reusing code. Why is it that we still find many COBOL programmers out there hacking away on IBM mainframes? The answer is there is too much money tied up in software, that to switch to something else must outweight the effort to retrain the programming staff, divert manpower to port or rewrite the *EXISTING* code, propagate bug fixes from the existing code to the new or ported code during the effort, and all without adding any more functionality. Years ago when I first started I did all I could to optimize my Fortran programs running under VM/CMS on the IBM 370. The same machine that we used for development was the production machine as well. We only had to worry about *ONE* machine! Contrast that to being charged with delivering a system to a community of users who want maximum flexibility in choosing the hardware to run the applications upon. So instead of tweeking my C programs to the VAX 11/785 or something, I must program for maximum *PORTABILITY*, so that my customers can buy from any vendor that supports the strain of UNIX that I develop upon. If you don't think that this is important or desirable, then why are there so many hardware vendors out there offering some strain of UNIX and an unprecedented number of agreements between vendors (eg. AT&T and Sun, AT&T, Intel and Microsoft,..) to bring those versions closer together? > >Further more, it seems, now that we have 3-MIPS and 5-MIPS and higher-MIPS >machines being sold over the counter at reasonable prices, very little time >is spent by the software engineer to really PUSH that machine to it's gills. Jon Bentley, Chris van Wyke and P.J. Weinberger published a Technical Report a few years back on Optimizing C code for the VAX 11/7800. Of how much use is that knowledge to us today? I haven't kept up with the advances in the newer VAX machines, but if we could migrate these optimizations upward, fine! However, the minute I am asked to port an C program from a DEC machine runing under ULTRIX to a Pyramid machine runing OSx or a Sun runing SunOS or a CCI or........., I'm outa luck! > >At the same time that I have shared these "beefs" about software development, >I have mentioned advances in hardware which allows the software guru to get >lazy and still be considered current. We have processors today which can >out-run the processors of 1978 (10 years ago) by 20 to 1. We have software >today which can probably be out-run by the software of 1978, even when we use >it on that powerful processor. Sure, it's USER FRIENDLY, ERGONOMIC, etc., but >does it keep pace with the advances in the industry? Why don't I see ANY >software advances that are even an order of magnitude above 1978? I don't see much software today that is asked to perform at the same functional level as software written in 1978! In 1978, having an Alphanumeric terminal at one's disposal was state of the art! Today it is bitmapped graphical based workstations. How can you compare any piece of software written with 1978 requirements to one of today? Why don't we compare the performance of a 1960's muscle car against the cars of today that must be fuel efficient, air conditioned, have an AM/FM/Cassette radio, computerized dashboard, conform to federal ] emissions standards, and still be a fast car! The demands placed upon the product are different. And so it is with software. As fast as hardware evolves, so do the demands placed upon software to take advantage of the hardware. Software must deal with graphics, databases, networks, etc.... This was not the case in 1978! George W. Leach Paradyne Corporation {gatech,codas,ucf-cs}!usfvax2!pdn!reggie Mail stop LF-207 Phone: (813) 530-2376 P.O. Box 2826 Largo, FL 34649-2826