What I find problematic about the design here, however, is that it is overly referential at the cost of direct information transfer to the reader. Rather than communicate a logical chain of thought regarding a principle, it communicates that such-and-such a thing is thought by so-and-so to be a this-or-that. It seems to have been produced within a system that prioritizes thought-originator-referencing. Which would be fine except I'd imagine that most people who read "The Philosophy of Computer Science" probably aren't expecting what seems a lot like an extended bibliography.
In philosophy, it's usually the case that if you simply presented the idea, without reference to the thinker, you'd definitely provoke misunderstandings, if not incomprehension. Philosophers don't have a common conceptual vocabulary, so when you think a given thinker is referring to a given idea (say, logic) you can really only say for certain that they're referring to their understanding of the idea.
Further, they don't have a common vocabulary for describing ideas - often to the point that you get 'young' and 'old' versions of the same thinker (for instance, Hume) because they use words in different ways within their own corpus.
So, if you wanted to present a logical chain of ideas, you'd have to develop first, your own logic that is a superset of all the contained systems of thought. Then, you'd have to develop a vocabulary that unifies disparate concepts without reducing their complexity.
Predictably, most philosophers have come to the conclusion it's easier just to organize thought by thinkers rather than ideas. Non-philosophers tend to see this as some kind of veiled appeal to authority - but it isn't really. Philosophers are very happy to pervert, break, or alter the corpus of a given thinker in order to do something new with it.
The strength of philosophy depends on rigorous questioning, and rigorous questioning does not tend to lead to monolithic bodies of thought - and that's what you'd need to produce the kind of logical and lexical superset an idea-oriented approach would need to be practical. Without substantial agreement on very many basic questions, such an approach would undoubtedly just do violence to the ideas.
I agree it'd be cool to see the other version of this too.
A program may direct its attention to any sort of digitally represented piece of information–as computer science progresses the things that can be represented expand over time. What in the main analytic philosophers care about are philosophical concepts which are a subset of all knowledge. Therefore by this reckoning computer programming is not applied analytic philosophy.
You are also suggesting that there is some sort of pure/applied distinction within analytic philosophy. That's unorthodox. If there were such a distinction though you're suggesting that software engineering might be the way we take philosophical formalisms and apply them to the world. I think philosophers would argue that philosophy already does that.
"As a philosophical practice, [analytic philosophy] is characterized by an emphasis on argumentative clarity and precision, often making use of formal logic, conceptual analysis, and, to a lesser degree, mathematics and the natural sciences."
That is exactly what you do when you are doing computer programming. So computer programming is the practice of applying the techniques of analytic philosophy to computers.
That is exactly the issue - computing is the closest thing we will ever have to Platonic Idealism. You can create simple, elegant, symmetric worlds. Many people instead assume that whatever poorly designed programming language is around at the moment is the be-all, end-all Platonic world that they must inhabit, and then proceed to come up with all kinds of dumb workarounds because the programming language does not model whatever they are trying to express, all the while patting themselves on the back for being clever and creating "abstractions."
OO patterns do not make any kind of sense. There is no "generality" or "abstraction" about Singletons or Factories. They are made-up nonsense terms for ad-hoc techniques people hacked together to work around the problems they had trying to apply certain classes of OO languages to modeling certain kinds of problems in the real world.
So the contrast should be between different philosophic schools - if patterns (and OO inheritance) is like Platonism, what would materialism be? I think DSLs and DDD is a kind of materialist view on computer programming. And DDD's emphasis on clear and precise naming and concepts is very much what analytic philosophy is also concerned with.
Without digressing too much from the topic however, I think OO has it's place. Sometimes it's rather like constructing scaffolding prior to building a small dog house, unnecessarily complex.
Incidentally I've seen Wadler suggest we call the field Informatics. I'd prefer that I think. The word science is doing too much work nowadays and computer science is only a science in the formal science kind of way, if that's even correct. It's definitely not a science in the way biology or chemistry are. By that reasoning I'd prefer the philosophy of informatics. Floridi has suggested the philosophy of computing and information but that's cumbersome. There's also philosophy of the digital which tries to cast its net the widest.
FWIW, several of Taleb's key points expound on some statements by Hume [3] and Seneca [4], so he does value certain works/ideas nominally considered philosophy.
[1] https://medium.com/incerto/the-intellectual-yet-idiot-13211e... (Taleb shares several of his articles/book-excerpts on Medium)
[2] https://www.youtube.com/watch?v=omsYJBMoIJU
[3] https://philosophynow.org/issues/69/Nassim_Nicholas_Taleb
[4] https://www.youtube.com/watch?v=k4MhC5tcEv0&feature=youtu.be...
PS: Having written this comment on HN makes me feel very weird, stating (my understanding of) the opinions of some particular person, but I just felt like responding to a sincere question.
The answer might be “his work hasn’t really intersected with academic philosophy”, that’s fine, I’m just curious to hear about it from people who have done more than read a Wikipedia page about him.
I don't think Taleb would say his work was more important or "surprising" than the work of Mandelbrot, an academic.
The presuppositions of programs or to program
Example: https://arxiv.org/pdf/math/0602053v3.pdf
> The epistemological status of computer science
Do Neural Nets learn or memorize? What's the difference and how do we know what Neural Nets do?
Example: https://arxiv.org/pdf/1706.05394.pdf
https://plato.stanford.edu/entries/simulations-science/#EpiC...
Thanks for the links. I'll definitely check this out.
There is no need to disparage people who geek out about edge cases in classification systems.
This is just a normal PhD in Computer Science.