{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,6,19]],"date-time":"2025-06-19T04:49:44Z","timestamp":1750308584933,"version":"3.41.0"},"reference-count":8,"publisher":"Association for Computing Machinery (ACM)","issue":"3","license":[{"start":{"date-parts":[[2017,6,1]],"date-time":"2017-06-01T00:00:00Z","timestamp":1496275200000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.acm.org\/publications\/policies\/copyright_policy#Background"}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["Queue"],"published-print":{"date-parts":[[2017,6]]},"abstract":"<jats:p>Programmers must be able to tell a story with their code, explaining how they solved a particular problem. Like writers, programmers must know their metaphors. Many metaphors will be able to explain a concept, but you must have enough skill to choose the right one that\u2019s able to convey your ideas to future programmers who will read the code. Thus, you cannot use every metaphor you know. You must master the art of metaphor selection, of meaning amplification. You must know when to add and when to subtract. You will learn to revise and rewrite code as a writer does. Once there\u2019s nothing else to add or remove, you have finished your work. The problem you started with is now the solution. Is that the meaning you intended to convey in the first place?<\/jats:p>","DOI":"10.1145\/3121437.3127495","type":"journal-article","created":{"date-parts":[[2019,4,29]],"date-time":"2019-04-29T18:25:04Z","timestamp":1556562304000},"page":"52-62","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":2,"title":["Metaphors We Compute By"],"prefix":"10.1145","volume":"15","author":[{"given":"Alvaro","family":"Videla","sequence":"first","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"320","published-online":{"date-parts":[[2017,6]]},"reference":[{"unstructured":"Bailey N. T. J. 1957. The Mathematical Theory of Epidemics. Arnold.  Bailey N. T. J. 1957. The Mathematical Theory of Epidemics. Arnold.","key":"e_1_2_1_1_1"},{"unstructured":"Charles Baker (Ed.). 1967. What a programmer does. Datamation (April); http:\/\/archive.computerhistory.org\/resources\/text\/Knuth_Don_X4100\/PDF_index\/k-9-pdf\/k-9-u2769-1-Baker-What-Programmer-Does.pdf  Charles Baker (Ed.). 1967. What a programmer does. Datamation (April); http:\/\/archive.computerhistory.org\/resources\/text\/Knuth_Don_X4100\/PDF_index\/k-9-pdf\/k-9-u2769-1-Baker-What-Programmer-Does.pdf","key":"e_1_2_1_2_1"},{"volume-title":"The Shallows","author":"Carr N.","key":"e_1_2_1_3_1"},{"doi-asserted-by":"publisher","key":"e_1_2_1_4_1","DOI":"10.1145\/41840.41841"},{"volume-title":"The Information: A History, a Theory, a Flood","year":"2011","author":"Gleick J.","key":"e_1_2_1_5_1"},{"volume-title":"Metaphors We Live By","author":"Lakoff G.","doi-asserted-by":"crossref","key":"e_1_2_1_6_1","DOI":"10.7208\/chicago\/9780226470993.001.0001"},{"volume-title":"The Mathematical Theory of Communication","author":"Shannon C. E.","key":"e_1_2_1_7_1"},{"unstructured":"Yorgey B. 2009. Abstraction intuition and the \"monad tutorial fallacy.\" https:\/\/byorgey.wordpress.com\/2009\/01\/12\/abstraction-intuition-and-the-monad-tutorial-fallacy\/  Yorgey B. 2009. Abstraction intuition and the \"monad tutorial fallacy.\" https:\/\/byorgey.wordpress.com\/2009\/01\/12\/abstraction-intuition-and-the-monad-tutorial-fallacy\/","key":"e_1_2_1_8_1"}],"container-title":["Queue"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3121437.3127495","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3121437.3127495","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,18]],"date-time":"2025-06-18T19:05:07Z","timestamp":1750273507000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3121437.3127495"}},"subtitle":["Code is a story that explains how to solve a particular problem."],"short-title":[],"issued":{"date-parts":[[2017,6]]},"references-count":8,"journal-issue":{"issue":"3","published-print":{"date-parts":[[2017,6]]}},"alternative-id":["10.1145\/3121437.3127495"],"URL":"https:\/\/doi.org\/10.1145\/3121437.3127495","relation":{},"ISSN":["1542-7730","1542-7749"],"issn-type":[{"type":"print","value":"1542-7730"},{"type":"electronic","value":"1542-7749"}],"subject":[],"published":{"date-parts":[[2017,6]]},"assertion":[{"value":"2017-06-01","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}