• No results found

3.14 CS as “Neither”

3.14.7 Is CS Magic ?

Figure 3.4: https://www.gocomics.com/wizardofid/2014/04/24, c

2014, John L. Hart FLP

To engender empathy and create a world using only words is the closest thing we have to magic.

—Lin-Manuel Miranda (2016)25

The great science-fiction author Arthur C. Clarke famously said that “Any sufficiently advanced technology is indistinguishable from magic” (http://en.wikipedia.org/wiki/ Clarke’s three laws). Could it be that the advanced technology of CS is not only indis- tinguishable from magic, but reallyismagic? Not magic as in tricks, but magic as in Merlin or Harry Potter? As one CS student put it,

Computer science is very empowering. It’s kind of like knowing magic: you learn the right stuff and how to say it, and out comes an answer that solves a real prob- lem. That’s so cool.

—Euakarn (Som) Liengtiraphan, quoted in Hauser 2017, p. 16

Brooks makes an even stronger claim than Clarke:

The programmer, like the poet, works only slightly removed from pure thought- stuff. He [sic] builds castles in the air, creating by the exertion of the imagination . . . . Yet the program construct, unlike the poet’s words [or the magician’s spells?], is real in the sense that it moves and works, producing visible outputs separate from the construct itself. . . . The magic of myth and legend has come true in our time.One types the correct incantation on a keyboard, and a display screen comes to life, showing things that never were nor could be.

(Brooks, 1975, pp. 7–8, my emphases).

(For a nice illustration of computational implementations of “things that never were”, see Figure 3.5. And compare what von K´arm´an says about engineering, quoted later in this book in§5.3.)

Figure 3.5: Computers can “show . . . things that never were nor could be”.

https://www.google.com/books/edition/From Animals to Animats 3/kcMoUj3aIfoC?hl=en&gbpv=1&printsec=frontcover

What is “magic”? Here’s how one anthropologist defines it:

In anthropology, magic generally means beliefs in the use of symbols to control forces in nature . . . . (Stevens, 1996, p. 721, col. 1)

A definition of magic can be constructed to say something like the follow- ing: Magic involves the human effort to manipulate the forces of nature directly, through symbolic communication and without spiritual assistance.

(Stevens, 1996, p. 723, col. 2).26

Clearly, programming involves exactly that kind of use of symbols. Or, as Abelson & Sussman put it in their introductory CS text (which we discussed in§3.14.4):

A computational process is indeed much like a sorcerer’s idea of a spirit. It cannot be seen or touched. It is not composed of matter at all. However, it is very real. It can perform intellectual work. It can answer questions. It can affect the world by disbursing money at a bank or by controlling a robot arm in a factory. The programs we use to conjure processes are like a sorcerer’s spells.They are care- fully composed from symbolic expressions in arcane and esoteric programming languages that prescribe the tasks we want our processes to perform.

(Abelson et al., 1996, my italics)27

26For more on definitions of ‘magic’, see Stairs 2014.

How is magic supposed to work? Anthropologist James G. Frazer (1915) “had sug- gested that primitive people imagine magical impulses traveling over distance through ‘a kind of invisible ether.’ ” (Stevens, 1996, p. 722, col. 1). That sounds like a descrip- tion of electrical currents running from a keyboard to a CPU, or information traveling across the Internet, or text messaging.

According to another anthropologist, Bronisław Malinowski,

The magical act involves three components: theformula, therite, and the condi- tion of theperformer. The rite consists of three essential features: the dramatic expression of emotion throughgestureand physical attitude, the use of objects and substances that areimbued with power by spoken words, and, most important, the

wordsthemselves. (Stevens, 1996, p. 722, col. 2, my italics; citing Malinowski)

A “wizard”,gesturingwith a “wand”,performsa “spell” consisting of aformulaex- pressed in thewordsof an arcane language; the spell has real-world effects,imbuing objects with power.

We see all of this in computing:Programsplay the role of spells; theprogrammer

plays the role of the wizard;a mouse, trackpad, or touchscreenplays the role of the wand; programming languages(or, in the case of Siri or Alexa, English itself) plays the role of the arcane language; andcomputations are “powered” by “words” with real-world effects.

Here is another aspect of the role of symbols in magic:

[A symbol] can take on the qualities of the thing it represents, and it can take the place of its referent; indeed, as is evident in religion and magic,the symbol can become the thing it represents, and in so doing, the symbol takes on the power of its referent. (Stevens, 1996, p. 724, my italics)

We see this happening in computers when we treat desktop icons (which are symbols) or the screen output of a WYSIWYG word processor (such as a page of a Microsoft Word document) as if they were the very things they represent. More significantly, we see this in the case of those computer simulations in which the simulation of some- thing reallyisthat (kind of) thing: In online banking, the computational simulation of transferring funds between accountsisthe transferring of funds; digitized signatures on online Word or PDF documents carry legal weight; in AI, computationally simulated cognition (arguably) is cognition (Rapaport, 2012b, §8). And a National Research Council report (cited by Samuelson et al. 1994, p. 2324, notes 44, 46; p. 2325, note 47) talks about user interfaces as “illusions”:

Unlike physical objects, the virtual objects created in software are not constrained to obey the laws of physics. . . . In the desktop metaphor, for example, the elec- tronic version of file folders can expand, contract, or reorganize their contents on demand, quite unlike their physical counterparts. (Samuelson et al., 1994, p. 2334)

Newell says some things about the nature of physical symbol systems (that is, com- puters) that have “magical” overtones. The symbols of such a system “stand for some entity”, that is:

An entity X designates an entity Y relative to a process P, if, when P takes X as input, its behavior depends on Y. (Newell, 1980, p. 156)

Here, I take it that what Newell means is that P’s behaviorreallydepends on Yinstead of on X, even though X (not Y) is P’s input. But that seems to be the essence of magic; it is “action at a distance: The process behaves as if inputs, remote from those it in fact has, effect it” (Newell, 1980, p. 156). Process P behaves as it does because of a symbolic “spell” cast at a distance from P itself.

Perhaps computers are not justmetaphoricallymagic (as Arthur C. Clarke might have said); theyaremagic (as Brooks said)!

However, thereis a difference between computing and “the magic of myth and legend”: The latter lacks (or at least fails to specify) any causal connection between incantation and result, whereas computation is quite clear about the connection: Re- call the emphasis on algorithms (and see the discussion in§3.15.2.1.2, below). Thus, although CS may have the outward appearance of magic, and even accomplish (some of) the things that magic accomplishes, the way that it does it is different. CS has a method; magic does not. Actually, CS has more in common with magictricksthan with “real” magic.

Further Reading:

“I’m writing a book on magic,” I explain, and I’m asked, “Real magic?” By real magic people mean miracles, thaumaturgical acts, and supernatural powers. “No,” I answer: “Conjuring tricks, not real magic.”Real magic, in other words, refers to the magic that is not real, while the magic that is real, that can actually be done, is not real magic.(Lee Siegel, quoted in Dennett 2017, p. 318, my italics)

Magic tricks require intermediary steps that accomplish the illusions of magic:

Alan Perlis referred to AI researchers as “illusionists” because they try to create the illusion of intelligence. He argued they should be considered stage magicians rather than scientists. (Parnas, 2017, p. 5)

Another way to put this is that magictricks—and computation—work “locally”, whereas “real” magic is “non-local”:

The idea of locality emerged early in the history of science. For the Greek atomists, it was what distinguished naturalistic explanations from magical ones. Whereas the gods were believed to be capable of acting nonlocally, by simply willing remote events to occur, genuine causality for the atomists was always local, a matter of hard little atoms bumping into one another. (Holt, 2016, p. 50)

(In this regard, quantum mechanics would be more “magical” than computing, because it violates the principle of locality, allowing what Einstein called “spooky action at a distance”.) Put another way, magic does what it does magically; CS does those things computationally:

Everything going on in the software [of a computer] has to be physically supported by something going on in the hardware. Otherwise the computer couldn’t do what it does from the software perspective—it doesn’t work by magic.But usually we don’t have to know how the hardware works—only the engineer and the repairman do. We can act as though the computer just carries out the software instructions, period. For all we care, as long as it works, it might as wellbemagic. (Jack- endoff, 2012, p. 99, my boldface, italics in original)

Further Reading:

That CS does computationally what magic does magically is reminiscent of the situation in Isaac Asimov’s (1953)Foundationtrilogy, where the character known as “the Mule” does things intuitively that Hari Selden’s followers needed to do step by step. But they did it so quickly that it was equivalent in input-output behavior to what the Mule did. This is related to the knowing- how/knowing-that distinction that we looked at earlier:

The baseball player, who’s thrown a ball over and over again a million times, might not know any equations but knows exactly how high the ball will rise, the velocity it will reach, and where it will come down to the ground. The physicist can write equations to determine the same thing. But, ultimately, both come to the identical point. (Geoffrey Hinton, quoted in Mukherjee 2017, p. 51

As the logician Joseph R. Shoenfield wrote, “a [computational] method must bemechanical. . . . [M]ethods which involve chance procedures are excluded . . . .[M]ethods which involve magic are excluded. . . . [M]ethods which require insight are excluded” (Shoenfield, 1967, p. 107, italics in original, my boldface).

The difference between magic and computation is related to the difference between what Den- nett (1995, Ch. 3,§4) calls ‘skyhooks’ and ‘cranes’: “Skyhooks” are “imaginary” (or magical) devices that do their work (such as lift things up) miraculously, with no explanation; “cranes” are real (non-magical) devices that do the same thing “in an honest, non-question-begging fashion”. For other comments on computer science and magic, see Crowcroft 2005, p. 19, note 2; Green 2014b; and Figure 3.6.

For a good overview of the philosophical and computational analysis of causation, see Maudlin 2019b, as well as various articles on ‘cause’, ‘causality’, and ‘causation’ in theStanford Ency- clopedia of Philosophy.

Figure 3.6: http://rhymeswithorange.com/comics/october-26-2017/, c

2017 RWO Studios