12 ms·
The Philosophy of Computer Science (2017)
- dang 7y ago2018: https://news.ycombinator.com/item?id=16451072 https://news.ycombinator.com/item?id=16451072 2014: https://news.ycombinator.com/item?id=8685971 https://news.ycombinator.com/item?id=8685971 2011: https://news.ycombinator.com/item?id=3227620 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 https://news.ycombinator.com/newsfaq.html)
- kaanmutlu 7y agogood
- carapace 7y ago"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 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 https://en.wikipedia.org/wiki/Laws_of_Form
- LudwigNagasena 7y ago"Harvard-trained" is a really weird way to say you did your postdoc at Harvard.
- robotresearcher 7y ago'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-postdoc https://academicpositions.com/career-advice/what-is-a-postdo... See also https://www.nature.com/articles/ncb0711-735a https://www.nature.com/articles/ncb0711-735a
- mattkrause 7y agoIt's conventional, but perhaps a little misleading since it is almost entirely "on the job" training--there's almost never any coursework or anything like that, just (hopefully) advice from a more senior researcher.
- nvrspyx 7y agoThat’s the definition of training though; instruction coupled with practice. Why is formal schooling a required form of instruction for it to be considered “training” in your view?
- mattkrause 7y agoTraining doesn't necessarily require three lectures a week + 2 exams, or anything like that, but I think it does require some sort of sustained, deliberate attempt at instruction. I'm very happy with my postdoc, for what it's worth, and the very beginning did have some explicit training. The rest of it though, has much more like a job: you do something, get feedback on it, and make some changes. Repeat and hopefully need to make fewer changes each time. Critically, you don't get a lot of "generalized" feedback; it's coupled to the specific thing that you're both working on and comes from the one person you work for. I think in most other fields, the postdoc equivalent would be something like "jr. <whatever>" or "associate." Medical residencies seem to have a bit more structure, at least from the outside.
- dredmorbius 7y agoSee 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 http://www.cse.buffalo.edu/~rapaport/Papers/phics.pdf Discussed: https://news.ycombinator.com/item?id=10388603 https://news.ycombinator.com/item?id=10388603 (2015) https://news.ycombinator.com/item?id=20912718 https://news.ycombinator.com/item?id=20912718 (6 mos ago) Rapaport is cited numerous times in the Plato article.
- DSingularity 7y agoYeah I wish we would explore the ethics of computer science in a deep and provocative way.
- kragen 7y agoWe have explored the ethics of computer science and a deep and provocative way: https://www.gnu.org/philosophy/ https://www.gnu.org/philosophy/ Unfortunately, many people don't like what we found, so they frequently shoot the messenger.
- jagraff 7y agoPersonally, I've read a lot of GNU/FSF doctrine, and to me it feels very one-sided and dogmatic. I know that the FSF has been one of the loudest voices in the fight for free software, but maybe it wasn't the best one. Especially given the founder.
- kragen 7y agoI look forward to reading your less-one-sided philosophical analysis, then. Is it already online? I think it's easy for someone to come to the conclusion that something is "one-sided and dogmatic" when its conclusions contradict preconceived notions they hold and aren't willing or able to question. Occasionally, though, there is good-faith, well-reasoned disagreement even to well-thought-out philosophical exploration. Your case might be one of those exceptions; if so, I'd like to learn from your thinking. Given that you're leading off with an ad hominem attack on Stallman, though, in the unrebuttable form of a vague insinuation, I'm not that optimistic.
- redis_mlc 7y ago> Personally, I've read a lot of GNU/FSF doctrine, and to me it feels very one-sided and dogmatic. Of course it's dogmatic, you either have freedom or you don't. Try to decline a click-wrap agreement and see how one-sided that is. Apparently your reading did not lead to understanding. > I know that the FSF has been one of the loudest voices in the fight for free software, but maybe it wasn't the best one. It's the only one that I know of. > Especially given the founder. His results speak for themselves. Having said that, expecting somebody who is mainstream to promote radical ideas doesn't make any sense, since that's contradictory.
- gregfjohnson 7y agoA 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.
- SarikayaKomzin 7y agoI like this. Reminds me a bit of another useful triad for software, the Vitruvian principles in architecture: firmitatis (stability), utilitatis (utility), et venustatis (beauty).
- 7y ago
- HeavenBanned 7y agoI 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 7y agoComp 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.
- jeromebaek 7y agoPhilosophy of Computation at Berkeley: http://po.cab http://po.cab
- solidist 7y agoFor those that enjoy these explorations, I'm currently reading the humanistic side of CS: https://mitpress.mit.edu/books/software-arts 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 7y agoThis 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 7y agoInformation is objectively described by notions such as entropy, algorithmic information, randomness deficiency, etc. Information is mind independent and has empirically describable characteristics.
- omeze 7y agoSomeone 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 7y agohttps://www.lesswrong.com/posts/7X2j8HAkWdmMoS8PE/disputing-definitions 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.
- dnprock 7y agoThere'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.
- brachi 7y ago> People in crypto don't understand the design tradeoff between centralization and decentralization. Care to elaborate about that trade-off? And could you be a little more specific on who is 'crypto people? (e.g. everyone from users of a crypto systems, core developers, etc.).
- dnprock 7y agoIn system design, there are tradeoffs. You can't automagically get everything you want. For example, regarding the block size, you can increase the block size to scale transactions or you can do L2 off-chain. Each comes with its own pros and cons. Big blocks are easier to implement and simpler to set up, but they'll require future hard forks. Off-chain scaling is more flexible but they are a lot more complicated. Big block retains decentralization feature. Off-chain scaling will require some centralization in layer 2 to bring the cost down. Both are fine scaling strategies. But the discussion becomes highly political. One side needs to win. And there's DeFi, decentralized finance. It's more like centralized finance dressed up in tech jargon. When you add more layers on top of the main chains, the complexity of the systems increase. To bring down the costs, you'll have to create centralized layer 2 systems.
- unixhero 7y agoHmm it seems to miss a central point: The philosophy of data* I love plato.stanford.edu, and it is one of the best and meticulously curated public internet resource out there.
- bohadi 7y agoFWIW there is an entry on philosophy of information, https://plato.stanford.edu/entries/information/ https://plato.stanford.edu/entries/information/ seems more in the Shannon sense. A PoData* for today could definitely have much written on ethics, and also epistemology and even metaphysics. I wholeheartedly agree with your sentiment, SEP is an astrounding resource.
- tabtab 7y ago"Computer science" is NOT science. Good science is rarely done outside of machine performance issues. How to organize information to be best "digested" by human programmers and users is largely in the realm of psychology and physiology, which are "soft" sciences because we don't really know how the human brain works yet. I've been in long debates about this and stand by it. Somebody once challenged a "pro science" claimer to "prove" that go-to's are objectively worse than nested blocks. The science claimers failed to produce objective evidence. (Background: https://en.wikipedia.org/wiki/Considered_harmful https://en.wikipedia.org/wiki/Considered_harmful, see the part about Edsger Dijkstra's paper.) (I'm not saying goto's are good, only that my preference for blocks is subjective. For one, nested blocks can be indented which makes their structure more visual. Goto's don't have a visual counterpart, at least not without a fancy IDE.)
- anta40 7y agoSo what's CS, then? Probably a mix of applied math+engineering?
- tabtab 7y agoPhysical engineering is more objective. For example, in designing a bridge an engineer is sandwiched between the architect's illustration and the laws of physics. Bridges can't fall. There are various "gut instinct" design choices to select among, but it's a smaller pool of choices than that of a software architect.