Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!mnetor!uunet!husc6!hao!oddjob!gargoyle!ihnp4!cbosgd!mandrill!hal!ncoast!crds@ncoast.UUCP From: crds@ncoast.UUCP (Glenn A. Emelko) Newsgroups: comp.lang.misc,comp.software-eng Subject: Re: Software Technology is NOT Primitive Message-ID: <4943@ncoast.UUCP> Date: Mon, 26-Oct-87 07:19:34 EST Article-I.D.: ncoast.4943 Posted: Mon Oct 26 07:19:34 1987 Date-Received: Sat, 31-Oct-87 05:42:59 EST References: <3405@ece-csc.UUCP> <638@its63b.ed.ac.uk> Sender: crds@ncoast.UUCP Distribution: comp Organization: Cleveland Public Access UN*X, Cleveland, Oh Lines: 69 Xref: mnetor comp.lang.misc:806 comp.software-eng:17 Lawrence (and all), I have been involved at an engineering level in both hardware and software design for about 10 years. Across these years I have seen advances in both industries, but I must say that I am more impressed with what I see in the way of hardware technology. In some ways, it seems, software has degraded somewhat because of hardware progress. This has been, and most likely shall continue to be one of my pet peeves of the whole industry. First of all, I can remember (as many of you can too) machines which had 4K of memory, or 16K, and still had to have a rudimentary OS running which could perform some tasks and still allow the user to load a program. In those rough times, people were very concerned and concious about storage, both on disk, as well as memory usage. This forced software engineers to think creatively, to tighten code, and to produce very powerful LITTLE algorithms that could do many things and could be called from many other parts of the code. Code was many times designed to be recursive, if not reentrant, 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, and really could care less if there are four subroutines in their code which could be combined into one general purpose all encompasing sub. 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. In fact, I have noted many specific cases of generally sloppy, slow, and out-and-out crude coding techniques passing as "state of the art," simply because it is running on a machine that is so blindingly fast that it does make that code seem reasonable. Case and point: I can recall designing a sorting algorithm for a data management system which was very popular in the early '80s for a specific Z80 based computer, and then one day pulling out a copy of the "state of the art" data management/spread sheet program of '84, which ran on a 8088 based system, and benchmarking them against each other for about 20 different test cases (already sorted, sorted reverse, alpha only, numeric only, fractional numbers, alpha numerics, and numerous data sets), and watching the Z80 based computer beat the 8088 based system 10 to 1 at WORST! And as an added note, the sort on the Z80 was stable, and the one on the 8088 was not!!! Yes, I am talking about the "most popular" spreadsheet of 1984, and a lowly Z80 machine ripping it to shreads! Is this the current state of software technology? Yes, I believe so. 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? This would give me 200 times the power, considering the advances in hardware!! I would like to get my hands on a copy of "current software" which shows me this capability, please email me info, or respond on the net. Yes, these opinions are specifically mine, and reflect upon nothing other than my own personal experiences, pet peeves, and general bullheadedness. Feel free to differ with any or all of the above, but at least get a laugh out of it. I find it funny myself. Glenn A. Emelko ...cbosgd!hal!ncoast!crds Somehow, this borrowed caption seems appropriate: "When I want your opinion, I'll give it to you."