Path: utzoo!utgpu!news-server.csri.toronto.edu!bonnie.concordia.ca!nstn.ns.ca!news.cs.indiana.edu!know!samsung!usc!apple!uokmax!d.cs.okstate.edu!minich From: minich@d.cs.okstate.edu (Robert Minich) Newsgroups: comp.sys.mac.system Subject: Re: True Multitasking, True Object-oriented, True anything. Message-ID: <1991Jan22.035748.275@d.cs.okstate.edu> Date: 22 Jan 91 03:57:48 GMT References: <6082@stpstn.UUCP> Organization: Oklahoma State University Lines: 48 by cox@stpstn.UUCP (Brad Cox): |>I think you've used just about one of the most vague terms in the comuting |>world. | | The software swamp is full of such vague terms. IMHO, this stems from a | semi-religious belief, or dogma, that there is a single, best meaning | for any term; i.e. a panacea meaning that applies to everything, at every | level of granularity. | | Mature domains, like hardware engineering, don't get into these hassles, | which in my opinion, is only a sign of software's immaturity. | My Nov90 IEEE software article, Planning the Software Industrial Revolution, | proposes that we bypass this immature confusion by adopting the hardware | engineering vocabulary, and particularly its impatience with those who | seek single, 'true', panacea solutions: | | Rack-level integration: as in Unix heavyweight processes; preemptive | Card-level integration: lightweight coroutines; non-preemptive | Chip-level integration: loosely coupled objects as in Smalltalk/Objective-C | Block-level integration: tightly-coupled objects packaged as subroutines | Chip-level integration: tightly-coupled objects; expressions, variables, etc How would applying some precise terms from hardware terminology, whose mapping to software entities is at best strained, lead to less confusion? I don't see the need for a NEW vocabulary when the existing one can work just fine. The use of "true" to describe software entities can be likened to using "true integration" to (mis)describe any of the above hardware entities. How about if we just use "preemptive multitasking" to describe itself and let "multitasking" refer to any number of schemes where two or more otherwise unrelated threads of execution are active at one time? We can use "multithreaded application" to describe a single program that has multiple threads of execution. Here are the definitions I propose: preemptive multitasking -- this shouldn't need to be explained! multiprogramming -- multiple tasks executing with one thread per task (typical time sharing) mulithreading -- more than one thread of execution in a single application True (tm) -- a term used by those who don't know how to communicate -- |_ /| | Robert Minich | |\'o.O' | Oklahoma State University| "I'm not discouraging others from using |=(___)= | minich@d.cs.okstate.edu | their power of the pen, but mine will | U | - "Ackphtth" | continue to do the crossword." M. Ho