Xref: utzoo alt.folklore.computers:7586 comp.unix.internals:1181 comp.misc:10685 Path: utzoo!attcan!utgpu!cs.utexas.edu!sdd.hp.com!ucsd!ucbvax!bloom-beacon!deccrl!news.crl.dec.com!pa.dec.com!decuac!hussar.dco.dec.com!mjr From: mjr@hussar.dco.dec.com (Marcus J. Ranum) Newsgroups: alt.folklore.computers,comp.unix.internals,comp.misc Subject: Software Obesity (was Re: Jargon file v2.1.5) Message-ID: <1990Dec2.202402.21977@decuac.dec.com> Date: 2 Dec 90 20:24:02 GMT References: <1990Nov30.172512.5282@sctc.com> Sender: news@decuac.dec.com (Network News) Organization: Digital Equipment Corp., Washington Ultrix Resource Center Lines: 72 pst@ir.Stanford.EDU (Paul Traina) writes: >[...] It's natural >that sofware will grow and become more complex. CPU's have done a >good job of keeping up. I never could understand this attitude. *WHY* is it natural that software will grow? *WHY* is it natural that it become more complex? *WHY* does it have to have ever more expensive processors to run on? Because the idea of eliminating old "features" has never been considered. If cars were designed the same way as software is today, they'd all have buggy-whip holders (from "Car V1.0") and starter cranks (from "Car V2.1") and electric ignitions (from "Car V3.0") and so on. Has anyone ever attempted any kind of studies to quantify the effect (other than on size and CPU requirements, disk requirements, and cost/seat) of adding "features" to software? I'd love to see some data about the aggregate usefulness of software *within its problem area* as features are added. What I mean by *within its problem area* is to study text editors, for example, only in terms of their functionality as text editors - rather than as LISP interpreters or news readers. :) It's been my impression that only a small percentage of any given program's functinality is ever used - possibly for each new set of "features" that are added only a comparable percentage of those are used as well, so the performance cost and monetary cost of the new "features" is largely wasted. I'd love to see a study as to what the adoption rate is of new "features" among users who are familiar with the software already, and already have developed patterns of use. If someone were to double the "features" in, say, X-window, making it half again as large and half again as slow, how long would it be before 10% of those new "features" were in active use? how long would it take for 20%, 30%? - and would it ever hit 100%? My perception, which is doubtless flawed, is that once software hits a certain basic level of functionality any additional features are simply extensions of that software's functionality outside of its problem area. In other words, once the developer has sold you all the functionality you NEED in your spreadsheet, it is extended into a rendering and visualization system as well, giving pie charts, etc, ad nauseam - and, oops, you need another 2 Meg in your machine now. The fallacy here is the pursuit of the "integrated environment" - users are unwilling to have to exit their text editor to read news (for example) - but it's chicken and egg - possibly their unwillingness is a result of the incredible startup time their bloated text editor requires. :) Add to that the confusion between different command interfaces, and it seems that every significant software system tries to evolve into being its own operating system - hogging and allocating all the resources of the host hardware. I don't quite know how it happened this way. Software, being unreal, is probably better able to fit together in modular components than just about anything else - yet I can walk to the hardware store, and buy a light switch that doesn't have an integrated timer/thermostat/LISP interpreter, and I can still build simple, elegant systems with only the functionality I need - at a reasonable cost. The designers of UNIX had it right, UNIX' modularity and simplicity made it ideal for handling just about anything except commercial success. Sorry to ramble. All disclaimers apply, of course. I don't speak for Digital, my cats, or my friends. mjr. -- If your windowing system is placing undue demands on your hardware and operating system, don't ask yourself what can be done to improve the operating system or hardware - ask yourself why you are using that windowing system. [from the programming notebooks of a heretic, 1990] Brought to you by Super Global Mega Corp .com