[HN Gopher] The Philosophy of Computer Science ___________________________________________________________________ The Philosophy of Computer Science Author : olalonde Score : 111 points Date : 2020-03-17 17:35 UTC (5 hours ago) (HTM) web link (plato.stanford.edu) (TXT) w3m dump (plato.stanford.edu) | DSingularity wrote: | Yeah I wish we would explore the ethics of computer science in a | deep and provocative way. | kragen wrote: | We _have_ explored the ethics of computer science and a deep | and provocative way: https://www.gnu.org/philosophy/ | | Unfortunately, many people don't like what we found, so they | frequently shoot the messenger. | dang wrote: | 2018: https://news.ycombinator.com/item?id=16451072 | | 2014: https://news.ycombinator.com/item?id=8685971 | | 2011: https://news.ycombinator.com/item?id=3227620 | | (Links are for the curious. Reposts are fine after about a year: | https://news.ycombinator.com/newsfaq.html) | gregfjohnson wrote: | A framework I have recently found useful for thinking about my | work as a computer programmer is a classic set of philosophical | concerns: | | Truth, goodness, and beauty. | | That is to say, software development has an intellectual | dimension, a moral dimension, and an aesthetic dimension. | | For me, the intellectual questions primarily concern program | correctness. Is this code bug-free? Is it robust and stable? I | tend toward the "computer science as mathematics" epistemology of | Dijkstra and Hoare. Invariants; inductive reasoning; temporal | logic. At least at the level of individual functions, I find that | it is feasible to express with rigor and clarity what the | function is intended to do, and to reason with precision through | to a conclusion that the implementation fulfills the intent. And, | there is a test for every line of code. A favorite quote from | Knuth: "Don't trust the following code. I have only proven it | correct, I have not tested it!" | | The moral questions concern the uses for which the code is | designed, and the uses to which it will be put. I work on medical | device embedded software these days, and the moral dimension of | this work is a very meaningful and concrete benefit of this | choice. I used to work on software development tools to support | avionics development for the B-2 bomber. While I don't dismiss | the latter as unambiguously immoral, it certainly was more | problematic for me, an ongoing source of angst and struggle. | | The aesthetic issues seem to me to be two-fold: how beautiful is | the software from the standpoint of the user? And, how beautiful | is the source code? I have seen (and written) much code that is | frankly an ugly mess. I have also upon occasion had an | inspiration about how to re-write a piece of code. Tons of code | gets deleted, and the new code is simple, clean, elegant, and | inevitable. I would go so far as to claim that at times I have | been graced to write code that turned out to be beautiful and | aesthetically pleasing. It seems to me that the "Clean Code" | movement encourages creation of code that is elegant and | beautiful. | | I find that this triad of concerns inter-relate. Beautiful code | is more likely to be correct, and conversely. Mindfully written | code that is done with clarity and integrity tends to be both | more beautiful and correct. | User23 wrote: | These relate directly to the three normative sciences: | | 1) Logic, the normative science of what is true. | | 2) Ethics, the normative science of what is good. | | 3) Aesthetics, the normative science of what is beautiful. | | I believe the above formulation is due to Dijkstra, but I can't | recall precisely which work I saw it in. He certainly held all | three in high esteem and that philosophy was at the root of | many of his insights. For example, he explicitly made a | distinction between correctness and pleasantness. The former is | a matter of logic and the latter is a matter of aesthetics. It | follows that they are separate and independent concerns. The | vast majority of software is not logically correct, but is | nonetheless more or less pleasing to its users. | | As for ethics, it's not just for things like the defense | industry and medicine. For example the change to the C standard | from having a set of permissible responses to undefined | behavior to the actively hostile anything goes situation we now | have is a matter of ethics. That behavior is both correct in | that it satisfies the specification and pleasant in that it | allows for aggressive optimization, but it's not very good for | the users who get their NULL checks optimized away. Arguments | that the bad behavior is correct or allows optimization don't | address the ethical concern at all or deny its existence | altogether and thus can never refute it. | | The normative sciences are remarkable in their broad | applicability across domains, which makes them worthy of study | by all educated persons, but they are especially important for | software developers since we can potentially affect so many | people's lives. They even apply here on HN. We should all try | to make our contributions true, good (nourishing for | intellectual curiosity), and elegant. | igravious wrote: | Ah, a Peircean I see. | crispinb wrote: | Nice. Seems like a satisfying approach. | | The ethical dimension has been a struggle for me. For reasons | not relevant here projects I have worked on have tended to be | either trivial or for companies whose ethics are actively | dubious (business in my country is in general actively hostile | to non-mercenary concerns). I've pretty much dropped out of dev | work in large part for that reason. | SarikayaKomzin wrote: | I like this. Reminds me a bit of another useful triad for | software, the Vitruvian principles in architecture: firmitatis | (stability), utilitatis (utility), et venustatis (beauty). | kaanmutlu wrote: | good | dredmorbius wrote: | See also William J. Rapaport, emeritus professor of computer | science at SUNY Buffalo, _Philosophy of Computer Science_ : | | http://www.cse.buffalo.edu/~rapaport/Papers/phics.pdf | | Discussed: | | https://news.ycombinator.com/item?id=10388603 (2015) | | https://news.ycombinator.com/item?id=20912718 (6 mos ago) | | Rapaport is cited numerous times in the Plato article. | dnprock wrote: | There's an emerging field of Computer Science as Economics | Discipline. That's the field of cryptocurrency. It is currently | plagued with (pseudo) economists and scammers. Or people don't | really understand system design (but they don't know it). It | deals with money so there is a lot of misinformation and greed. | | People in crypto don't understand the design tradeoff between | centralization and decentralization. So they end up selling fake | dreams like decentralization can fix everything. Bitcoin is | decentralized at layer 1. But in layer 2, people still want to | have the same level of decentralization when they design the | Lightning Network. Then, some will buy into the idea that LN will | fix everything and still be decentralized. | jeromebaek wrote: | Philosophy of Computation at Berkeley: http://po.cab | solidist wrote: | For those that enjoy these explorations, I'm currently reading | the humanistic side of CS: | https://mitpress.mit.edu/books/software-arts | | There is navel gazing and equivocation in some of initial | reading, but probably worth the read. I'm on the first chapter | and intrigued to read more. | ganzuul wrote: | This is a bit surprising since it doesn't treat information as a | totally human concept. It discusses 'semantic interpretation' but | for some reason concerns itself with implementation, which I | think should be irrelevant. | | I discovered this independently and soon after found it echoed in | an important textbook (Datalogi, Hans Lunell) around these parts, | around 20 years ago. | | In short; only data exists in the machine. The patterns we coax | out of the machine are only meaningful to us, as humans, after we | have interpreted the data and turned it into information. A | computer never processes information; only data. | | If one deeply desires a deeper structure to data one can look at | processes of convergence, which naturally leads one to study | artificial neural networks for their working examples. | Implementation however must be irrelevant to information because | they are not in a bijective relationship. | yters wrote: | Information is objectively described by notions such as | entropy, algorithmic information, randomness deficiency, etc. | | Information is mind independent and has empirically describable | characteristics. | omeze wrote: | Someone hands me a thumb drive and it consists of one byte, | 0000 0001. | | On Monday, the owner of the thumb drive tells me the contents | are a counter of how many apples they had in their kitchen on | new year. | | On Tuesday, the owner tells me the contents are a boolean for | whether they took a vacation in 2014. | | What is the entropy of the data? | fossuser wrote: | https://www.lesswrong.com/posts/7X2j8HAkWdmMoS8PE/disputing | -... | | You can deduce that the order of some data implies it's | likely information. | | A person can also have a small amount of data be | information even if it would be hard to deduce otherwise. | | Seems like arguing about this is just arguing about the | definition of a word. | frenchyatwork wrote: | Unfortunately, the reason why it seems like arguing about | the definition of a word is that there are there are more | concepts at play here than we have words to describe | them. When people talk about information as in | information theory, what they're talking about is devoid | of actual semantic contact, but when normal people people | talk about information, that normally implies some sort | of semantic content. | yters wrote: | Information theory addresses semantics through mutual | information. 'Meaning' entails reference, and when A | refers to B they have mutual information. Mutual | information is how Shannon measures the carrying capacity | of a channel. | yters wrote: | A better example is the difference between the contents of | a normal English book vs a randomly generated string of | letters. The former has a lot of structural properties the | latter lacks, plus shares a large amount of mutual | information with a source independent from the physical | properties of the book. | ganzuul wrote: | Approximated perhaps, but I would argue that in evaluation it | is subjective because it is always compared to something | else. | | The issue abstracts to determinism vs. infinite and unbounded | physical entropy because we can't separate ourselves from the | system. Decoherence and mixing of quantum 'information' is | part of the puzzle, and I would like to claim processes of | convergence are another. | | It becomes difficult to not overload terms while discussing | this topic. | hackinthebochs wrote: | >The patterns we coax out of the machine are only meaningful to | us, as humans, after we have interpreted the data and turned it | into information. | | I disagree. The number of processes that do something | computation-like out of the space of all processes is | vanishingly small. That we can input some informative sequence | of bits into a computer, and the computer transforms that | sequence into output which is then a different informative | sequence of bits, tells us that computers are intrinsically | information processors, and that information is not in general | subjective. | carapace wrote: | "Computer science could be called the post-Turing decline in the | study of formal systems." (One of my favorite jokes. Dijkstra's I | think.) | | FWIW, the foundation of it all is the act of making a | _distinction._ | | "In the beginning was the void, and the void was without form." | | Operationally, if the thing in your brain that makes distinctions | is suppressed (by e.g. a stroke) you literally lose the ability | to distinguish between your body and the world and enter into an | "oceanic bliss". | | > "My Stroke of Insight: A Brain Scientist's Personal Journey", | (2008) is a New York Times bestselling and award-winning book | written by Dr. Jill Bolte Taylor, a Harvard-trained and published | neuroanatomist. In it, she tells of her experience in 1996 of | having a stroke in her left hemisphere and how the human brain | creates our perception of reality and includes tips about how Dr. | Taylor rebuilt her own brain from the inside out. | | ~ https://en.wikipedia.org/wiki/My_Stroke_of_Insight | | (There's also a TED talk.) | | Semantically, distinction is the sole act required to produce | logic (and therefore computers and teh science thereof.) See | "Laws of Form". | | > "Laws of Form" is a book by G. Spencer-Brown, published in | 1969, that straddles the boundary between mathematics and | philosophy. | | ~ https://en.wikipedia.org/wiki/Laws_of_Form | gen220 wrote: | Coincidence, but this is also the first lesson in the Tao Te | Ching! :) | | The lesson is our desired things (beauty, wisdom, wealth) are | defined by their contradictions, and are therefore not self- | standing. The only thing which is self-standing is | contradiction itself. | | When you step back, it argues, you see that contradiction | (distinction) is that from which all things stem. If you remove | "desire" from the equation, you can see things for what they | are: mystery. Removing desire from your actions, however, is | not very desirable in practice! | | The recommendation (i.e. the behavior of the sage) is to | _practice_ doing nothing, and not-talking. The implication | (IMO) is that, without their contradictions, action and speech | have no meaning. | | What is new is old :) | LudwigNagasena wrote: | "Harvard-trained" is a really weird way to say you did your | postdoc at Harvard. | robotresearcher wrote: | 'Training' is a perfectly conventional way to describe a | postdoc role. | | > So, What is a Postdoc? > [...] A postdoc is a temporary | position that allows a PhD to continue their training as a | researcher and gain skills and experience that will prepare | them for their academic career. | | https://academicpositions.com/career-advice/what-is-a- | postdo... | | See also https://www.nature.com/articles/ncb0711-735a | HeavenBanned wrote: | I have a Bachelor's in Philosophy and now I'm studying Computer | Science formally. | | I must say having the Philosophical background helps immensely | when thinking up of novel, ethical and utilitarian projects to | build. Computer Science and Philosophy truly do go hand in hand. | yters wrote: | Comp sci is a good upper bound on materialism, and provides a | rigorous basis for distinguishing material and immaterial | substances. E.g. if we detect a halting oracle we can conclude | it is immaterial, insofar as materialism is bounded by that | which is computable. | | In that sense it is a way to scientifically address the | philosophical concept of substance dualism, without getting | lost in a bunch of speculative arguments. Also is a good avenue | for making substance dualism a technologically useful theory. ___________________________________________________________________ (page generated 2020-03-17 23:00 UTC)