Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!mnetor!uunet!husc6!hao!oddjob!gargoyle!ihnp4!cbosgd!osu-cis!tut!tut.cis.ohio-state.edu!mumble@karl From: karl@mumble.cis.ohio-state.edu (Karl Kleinpaste) Newsgroups: comp.lang.misc,comp.software-eng Subject: Re: Software Technology is NOT Primitive Message-ID: <697@tut.cis.ohio-state.edu> Date: Tue, 27-Oct-87 08:17:12 EST Article-I.D.: tut.697 Posted: Tue Oct 27 08:17:12 1987 Date-Received: Sat, 31-Oct-87 05:44:34 EST References: <3405@ece-csc.UUCP> <638@its63b.ed.ac.uk> Sender: news@tut.cis.ohio-state.edu Reply-To: karl@tut.cis.ohio-state.edu Distribution: comp Lines: 66 Xref: mnetor comp.lang.misc:807 comp.software-eng:18 In-reply-to: crds@ncoast.UUCP's message of 26 Oct 87 12:19:34 GMT crds@ncoast.UUCP writes: 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!! In watching this discussion, it seems the only metric which people want to apply to software is performance. Raw performance, how many widgets can you prefrobnicate in minimal picoseconds. It seems to me that this is not the right way to view software. Aside from the fundamental problems of P?=?NP and similar questions, I tend not to like looking at software from the sole standpoint of how fast it goes. Yes, speed is important - anything written by a programmer should be designed to be fast, as fast as possible. I think I do much more than an adequate job of that in the code I write. But I am not looking for pure speed in what I design; I am also looking for new functions, new capabilities, a different way of doing something, a different way of looking at an old problem. Consider the case of bit-mapped window displays. The hardware to implement them is relatively simple. A largish memory, an ability to move large bit patterns fast, possibly a dedicated co-processor for managing the whole beast. The rest is software. I think this is an excellent example of a wonderful marriage between advances in hardware and software. Hardware provided the ability to do something in new software. The new software provides new capabilities and new power for the user of the whole package. Now consider the resulting power of that package. I'm sitting in front of a Sun3 using X. The hardware provided here is exactly what is needed to support the software concepts required. But to me, the resulting power of this box is really embodied in what the software is doing. On my screen right now, there are 10 windows. All of them are doing useful things. Granted, some of them are not doing very interesting things; I have an analog clock in one corner, and two load meters in another. But that still leaves 7 other windows doing real, vital, practical work. Even those two load meters are vital to my work, because it's those meters that I will be watching to see if something causes a performance spike, and that will cue me to go look at the indicated system to see what's going wrong. So in practical terms, I have 9 simultaneous activities going on which are of value to me. That's roughly an order of magnitude improvement over the days of 1978, when I sat in front of a dumb CRT, connected to exactly one system, doing exactly one thing. The parallelism inherent in my brain is being put to positive use. I didn't even need parallel hardware to do it. An approximation of parallelism through timesharing is sufficient for my mind to fill in the remaining gap. I am not attacking or denigrating the advances in hardware in any way whatever. (My graduate work was in software performance increases, after all, trying to take better advantage of existing recent hardware improvements.) But I think that software has come rather a long way in the last 10 years. It just hasn't come to us in terms of raw performance. It's exactly those areas of user-friendliness, ergonomics, and expanded user capability that provide the final improvement in the real power of the machine. -=- Karl