From mboxrd@z Thu Jan 1 00:00:00 1970 Message-Id: <200105221928.MAA02159@ohio.river.org> From: Richard Uhtenwoldt To: 9fans@cse.psu.edu In-Reply-To: <20010426234625.1EBA119A40@mail.cse.psu.edu> References: <20010426234625.1EBA119A40@mail.cse.psu.edu> Subject: [9fans] software quality and popularity Date: Tue, 22 May 2001 12:28:14 -0700 Topicbox-Message-UUID: a5521cd8-eac9-11e9-9e20-41e7f4b1d025 geoff.9fans@collyer.net writes: >Popularity and quality are not related. (A more pessimistic view is >that they are related, but inversely. The current state of operating >systems, languages and software generally tends to support that view.) William K. Josephson writes: >In fact, in my experience, the Plan 9 >source code is far *more* portable to other environments than most >Unix source is between Unix variants, for instance. well, you see, if all code written for Plan 9 can be easily ported to Unix, but the code written for Unix is difficult to port to Plan 9 (because Unix is not as well thought out and well factored as Plan 9), then people who want to use apps without having to port/rewrite/write them will choose Unix, because the apps available for Unix will tend to be a superset of the apps available for Plan 9. so here we have a process whereby bad engineering actually increases a platform's popularity. (Dijkstra noted a similar process back in the 1970s in which DP department workers increased their job security by choosing overly complex solutions, which IBM was happy to sell to them.) and even people like me, who appreciate well-engineered, well-factored software, choose to use one of the popular, poorly-engineered platforms, because the socioeconomic utility of a platform is essentially proportional to the number of users of the platform. (reasons for this omitted for space reasons.) so, I put up with the cost in my wasted time of the poor engineering to get the socioeconomic benefits of the popularity. eventually a critical mass of (millions of) users will come to recognize the true costs of poorly-engineered software, resulting in popular software as well-engineered as Plan 9, but that is not going to happen this decade. what is going happen this decade to help along the eventual popularity of well-engineered software more than anything else is the replacement of data formats, communications protocols, APIs with secrets and "owners" (firms with the ability to prevent their competitors from making full use of the data format, etc) with data formats, protocols and APIs without secrets and owners. so, even tho the open-source platforms like Linux are poorly engineered, the more popular they get, the better for unpopular platforms, and thus well-engineered platforms in the long term, because Linux's data formats, protocols and APIs have no secrets and no "owners" so that the unpopular platforms can hook into them more effectively. one example of this hooking in is the consulting of Linux device-driver source code by Plan 9 developers. this hooking in gives the users of the unpopular platform a bigger fraction of the socioeconomic benefits of Linux than they could get from the unpopular platform's trying to hook into proprietary platforms, because the "owners" of the proprietary platforms will tend to prevent competition from other platforms by denying those benefits.