Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!uunet!hsi!stpstn!cox From: cox@stpstn.UUCP (Brad Cox) Newsgroups: comp.software-eng Subject: Re: Reuse and Abstraction (was: reu Message-ID: <5149@stpstn.UUCP> Date: 2 Jun 90 16:17:48 GMT References: <4979@stpstn.UUCP <102100009@p.cs.uiuc.edu <80449@tut.cis.ohio-state.edu <19614@duke.cs.duke.edu <80685@tut.cis.ohio-state.edu <19760@duke.cs.duke.edu <80884@tut.cis.ohio-state.edu <5122@stpstn.UUCP <19855@duke.cs.duke.edu> <5131@stpstn.UUCP Reply-To: cox@stpstn.UUCP (Brad Cox) Organization: Stepstone Lines: 71 In article <19946@duke.cs.duke.edu> crm@romeo.UUCP (Charlie Martin) writes: >The level of abstraction point is a good one, and is why we've mostly >stopped writing machine language programs. (There are only a few levels >of abstraction where machine language is appropriate.) But every time I >try to get my hands on the modularity/binding technologies point, it >falls apart and seems to turn into "putting things together from >components." If you have higher-level components it is easier, so long >as the higher level componets are suited to what you are trying to do. > >I guess that sounds tautologous now. Can you expand on your point a >little? The distinction is between "building from first principles" (fabrication) and "building from components (assembly). Fabrication involves reuse of only raw materials, while assembly involves reuse of higher-level components. The first involves a flat organizational structure (programming language vendors as providers of low-level raw materials; i.e. int, float, strcmp()), whereas the second involves a deep organizational structure; a software components marketplace. Evolving from our present flat structure (cottage industry) to a deep structure is what the IEEE paper means by a "software industrial revolution". >On the gate-level vs higher-level point, I've used both Objective-C and >C++ and I have to admit I didn't see much difference in the language >per se. There is/was a bigger library of higher level components to >draw on, but then this is the result of longer and better funded >development of these components. That is *precisely* my point. Viewing them as competing *languages* misses the fact one is solely a language and the other an *environment* of off-the-shelf software components (Software-ICs). >So is your second point that Objective-C is that much higher level than >C++, and if so, on what basis? Or is it that the bigger IC libraries >gives OC the advantage. It is "higher-level" in the sense that a soldering iron (for assembling chips to make boards) is a higher-level tool than a photolithography machine (for assembling gates to make blocks, and blocks to make chips). Both are modularity/binding technologies, and both support reuse, but at radically different *levels*. But soldering irons and photolithography machines *do not compete*, but *support* each other. They provide *radically* different services to *radically* different audiences. Photolithography machines require far more skill to use than soldering irons (lower man-productivity) but deliver greater performance (higher machine-productivity). But it is the the pluggability of soldering irons that created the very possibility of today's marketplace in hardware components (by this I mean, it was the invention of the silicon chip and circuit boards that made the very notion of a hardware marketplace thinkable). So it is with Objective-C. >I still don't see that OC is particularly advantageous compared to C++, >but maybe that's a side issue. In any case, it's your product and >your idea, and you're entitiled to some pride of ownership: it really is >a substantial thing. Many people's difficulty here arises from comparing the technologies themselves, rather than their organizational implications. In other words photolithography machines are technologically impressive, rich functionality, need great skill to use well. Soldering irons are simple, and require much lower skill to use effectively. Compared as technologies, photolithography machines are clearly 'superior'. But viewed insofar as their organizational implications, soldering irons created the very possibility of a multi-level marketplace in reusable hardware components. A *lot* more people are capable of using soldering irons than photolithography machines. -- Brad Cox; cox@stepstone.com; CI$ 71230,647; 203 426 1875 The Stepstone Corporation; 75 Glen Road; Sandy Hook CT 06482