Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Posting-Version: version B 2.10.2 9/18/84; site topaz.ARPA Path: utzoo!watmath!clyde!burl!ulysses!allegra!mit-eddie!genrad!teddy!panda!talcott!harvard!seismo!topaz!josh From: josh@topaz.ARPA (J Storrs Hall) Newsgroups: net.lang Subject: Re: levelheight Message-ID: <354@topaz.ARPA> Date: Mon, 21-Jan-85 21:25:11 EST Article-I.D.: topaz.354 Posted: Mon Jan 21 21:25:11 1985 Date-Received: Wed, 23-Jan-85 06:08:32 EST References: <2340@hplabsc.UUCP> <4948@utzoo.UUCP> <6292@boring.UUCP> Organization: Rutgers Univ., New Brunswick, N.J. Lines: 37 > > > I wonder whether this is widespread. The problem with safety devices > > is that people rely on them to do their thinking for them in situations > > where they shouldn't. > I don't think this is a property of safety devices. I don't get the > impression that people drive worse if they're wearing a safety belt, for > instance. I sure as hell do. And I know many people who do, but wouldn't admit it. Let me opine that there are *three* different approaches to this high-levelness/typing morass (at least...). Let me try to show how they apply to, say, numbers: 1) Assembly style: The "language" doesn't know about objects, just operations. You must keep track of the "type" of each location in your head. (For this reason, good assy. language programmers tend to have very large heads :^) 2) Pascal style: The language knows about all the types and keeps strict track of them to let you know when you make a mistake. Essentially the compiler works as an automated cribsheet to help you keep track of the mass of detail you had to keep in your head before. 3) APL style: The language presents the single concept "number" to the programmer, who never has to worry about the implementation thereof. The programmer never even knows whether that number was actually represented as a bit, integer, float, whatever. The machinery of the system does all the worrying. Disclaimer: I do not claim to defend all the odd customs and mores of APL, but advance this concept as an example. Styles 2 and 3 have the common problem that the implementation is restrictive; that is, the implementor (designer) must have had in mind the kind of thing you are trying to do, or you can't do it.