[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)