Well, what Stephen said, it can be the problem treating philosophy and the world around us like a computer language. In philosophy, you object, for example, using ‘free will’ or ‘the gaze’ as valid philosophical concepts because of the ambiguity of their meaning. But computer coding will not help you with solving that problem, I think. If you use an ambiguous object as an input you’ll still get, let’s say, unexpected value as a result. It’s not the functions that are the problem in philosophy or the understanding the world, but how we define the concepts or the objects. 😏
But the same goes for philosophy, isn’t it? I’m in programming for over 30 years and just getting started with philosophy. So I really do wonder how you see computer coding can help you in defining complex philosophical concepts? The logical functions that are both used in philosophy and computing are not the issue, i think. What the problem might be are the concepts used in premises/code. But I may not understand you properly….☺️
Yes, the same goes for philosophy. That’s why I don’t see them as radically different but complementary. There is a reason why you, a computer scientist, like philosophy, and me, a philosopher, like computer science. 😀
I’ll need to reread to digest this, but what a fascinating idea. I love the intersection between philosophy and programming. I’ve always wanted to learn more about philosophy. Perhaps translating Python concepts is the way to go!
Looking forward to it. And the symmetry is perfect since OOP was primarily developed to make programming look and feel a bit less like the computer sees it and a bit more like humans see the world.
In Python we often say that "everything is an object", as, I suppose, everything is in an "instance of a concept" in the world around us.
And every operation, every interaction, every process in Python is controlled by some special method in some class, often hidden from the main stage—so, everything is controlled by some feature of one of the concepts.
Composition in OOP is another concept that fits perfectly to your thoughts above, when an object has another object (or a different class) within it
I find your discussion of Difference and Rhizome somewhat reductionist, contracting both ideas to their most denuded form, thus destroying the nuance, ambiguity and subtly of their intended construct. One does need to be able to play with fuzzy concepts, imbued with legacies of cultural references, and appreciate their multiple nature, before applying the scalpel in order to make the knife.
Hi! So this might sound nuts, but seriously, get yourself a thesaurus, and a French thesaurus. Also, if you look at artwork, visual imagery of these ideas, it really helps (my) mind grip the ideas more tangibly cognitively. With most of the European philosophers- well any philosophy really - they read deep and wide. Poetry, literature, arts, sciences, everything. Also, I find trying to form a gestalt before I try to cleave and cut, helps me contextualise. In a sense it’s engineering, but with fuzzy logics, not neat definitions with itemised characteristics reduced to their leanest form. If you’ve read or listened to any Iain McGilchrist you’ll know what I mean about not leaning too heavily too soon into left-brain analytics. Let the mind range free to explore the associations bound-up in that imagery. I can recommend Richard Kearney on all of the French philosophers. I think you’ll appreciate his way of unpacking our more obscure Continental philosophers. He writes particularly on Philosophy of the Imagination which might be a rich seam to explore.
It's just that I have rarely seen these concepts used to explain something 'in the wild' in such a way to increase my understanding. Every time I read something where these two concepts are used I ended up being even more confused about what I was reading.
That was my partial experience, could be that I have not read enough.
Do you have anything to recommend? What should I read to see the usefulness of these two concepts? Please don't say either Derrida or Deleuze, I can't read that stuff anymore, bores me to death.
Wait until you analyze monads in functional programming
It goes right into *theology* and ideas of *purity*. I’ll never forget talking about theological concepts like hypostatic union with a Haskell programmer and he caught on basically immediately and started relating it to monads!
re Platypus: modern biology regards each taxon (platypus, mammal, reptile) as being comprised of ALL and ONLY the descendants of a single ancestral individual. There is no fuzziness. When this isn't the case the taxon is polyphyletic, paraphyletic etc. and the classification needs to be revised to fix this. What you describe is "identification", the attempt to put the correct name on a specimen.
Oh man this is easily one of the best things I've read online in ages. I laughed my ass at many of your references, it was so refreshing. The last part about oop and concept creation is very on point. II teach it the opposite way, my CS students first learn oop and then, in the later years of the major, we'll have philosophical discussions about, you know, AI and consciousness and whatnot, and we get to pull on all these conceptual resources from basic software engineering.
Now here's one for you: the rules that make classes and instances work in Python, what is called a "type system", is what's called nominal typing, which is the traditional type system in OOP. That is, we say GuideDog is a Dog because you explicitly declared so. But in Python you also have a form of structural typing, which is kinda things are what they look like. So you can say, for example, anything that has a .swim() method is something that can swim, regardless of where in the class hierarchy it lies. Python calls this "duck typing". If it swims and quacks, it's a duck.
Now my question from you is, how does this look like in philosophy? Is there such a difference in where concepts come from?
Thanks, Alejandro! We’re all attacking the same beast, just from different directions 😀
I don’t know enough about these differences between nominal and structural typing to give a good answer, but this reminds me of something from graphic design: the Bauhaus dictum that ‘form should follow function’. Is this the distinction you mean? One where function follows the form and another where form follows the function?
Well maybe it's kinda like that, let me elaborate a bit.
In nominal typing you declare how things are related to each other, and then the language forces you to honor that declaration. Your GuideDog has to behave like a Dog to some extent (look out Liskov's substitution principle), but in structural typing is kind of the opposite, you don't declare beforegand this is a Dog, you just define a thing with some functionality (some structure, actually, that is, some methods with specific signatures), and then wherever you need, you can create a new concept out of thin air by saying now in this function I need something that barks, and the language will (if it has type checking) only let you use an object whose type has the requested structure. So you kinda create types when you use them, instead of when you implement them.
Yes, it does, I get it now. I guess the difference between analytic and continental philosophy could map nicely to it, where analytic could be nominal (determining the structure and set membership beforehand) and continental structural (declaring things as concepts in context, or as needed).
That's interesting, I was under the impression the difference between analytic and continental was more or less the same as empiricism versus rationalism...
Well, what Stephen said, it can be the problem treating philosophy and the world around us like a computer language. In philosophy, you object, for example, using ‘free will’ or ‘the gaze’ as valid philosophical concepts because of the ambiguity of their meaning. But computer coding will not help you with solving that problem, I think. If you use an ambiguous object as an input you’ll still get, let’s say, unexpected value as a result. It’s not the functions that are the problem in philosophy or the understanding the world, but how we define the concepts or the objects. 😏
The thing about programming, as I understand it, is that you can’t really be good at it if you don’t define your concepts well.
Good programming practice forces you to be clear, precise, and modular in your conceptual engineering.
That’s why I think it is uniquely beneficial for learners of all backgrounds.
But the same goes for philosophy, isn’t it? I’m in programming for over 30 years and just getting started with philosophy. So I really do wonder how you see computer coding can help you in defining complex philosophical concepts? The logical functions that are both used in philosophy and computing are not the issue, i think. What the problem might be are the concepts used in premises/code. But I may not understand you properly….☺️
Yes, the same goes for philosophy. That’s why I don’t see them as radically different but complementary. There is a reason why you, a computer scientist, like philosophy, and me, a philosopher, like computer science. 😀
Understanding (and possibly controlling) the mess called life? 😂
Yep 😀
I’ll need to reread to digest this, but what a fascinating idea. I love the intersection between philosophy and programming. I’ve always wanted to learn more about philosophy. Perhaps translating Python concepts is the way to go!
Thanks, Stephen!
I do plan to write a longer piece (perhaps even a book) called Python for Philosophers, where I’ll expand more on this.
I’m sure I’ll have a lot to learn from your writing too!
I want to do the EXACT opposite! Philosophy for Pythonistas.
Looking forward to it. And the symmetry is perfect since OOP was primarily developed to make programming look and feel a bit less like the computer sees it and a bit more like humans see the world.
In Python we often say that "everything is an object", as, I suppose, everything is in an "instance of a concept" in the world around us.
And every operation, every interaction, every process in Python is controlled by some special method in some class, often hidden from the main stage—so, everything is controlled by some feature of one of the concepts.
Composition in OOP is another concept that fits perfectly to your thoughts above, when an object has another object (or a different class) within it
I find your discussion of Difference and Rhizome somewhat reductionist, contracting both ideas to their most denuded form, thus destroying the nuance, ambiguity and subtly of their intended construct. One does need to be able to play with fuzzy concepts, imbued with legacies of cultural references, and appreciate their multiple nature, before applying the scalpel in order to make the knife.
Hi! So this might sound nuts, but seriously, get yourself a thesaurus, and a French thesaurus. Also, if you look at artwork, visual imagery of these ideas, it really helps (my) mind grip the ideas more tangibly cognitively. With most of the European philosophers- well any philosophy really - they read deep and wide. Poetry, literature, arts, sciences, everything. Also, I find trying to form a gestalt before I try to cleave and cut, helps me contextualise. In a sense it’s engineering, but with fuzzy logics, not neat definitions with itemised characteristics reduced to their leanest form. If you’ve read or listened to any Iain McGilchrist you’ll know what I mean about not leaning too heavily too soon into left-brain analytics. Let the mind range free to explore the associations bound-up in that imagery. I can recommend Richard Kearney on all of the French philosophers. I think you’ll appreciate his way of unpacking our more obscure Continental philosophers. He writes particularly on Philosophy of the Imagination which might be a rich seam to explore.
Thanks, I’ll check that out!
Maybe you're right, I don't know.
It's just that I have rarely seen these concepts used to explain something 'in the wild' in such a way to increase my understanding. Every time I read something where these two concepts are used I ended up being even more confused about what I was reading.
That was my partial experience, could be that I have not read enough.
Do you have anything to recommend? What should I read to see the usefulness of these two concepts? Please don't say either Derrida or Deleuze, I can't read that stuff anymore, bores me to death.
Wait until you analyze monads in functional programming
It goes right into *theology* and ideas of *purity*. I’ll never forget talking about theological concepts like hypostatic union with a Haskell programmer and he caught on basically immediately and started relating it to monads!
Thanks, I’ll check that out too!
one of the best articles that I've read so far this year. Huge congrats for this post
Thanks, Lorenzo!
re Platypus: modern biology regards each taxon (platypus, mammal, reptile) as being comprised of ALL and ONLY the descendants of a single ancestral individual. There is no fuzziness. When this isn't the case the taxon is polyphyletic, paraphyletic etc. and the classification needs to be revised to fix this. What you describe is "identification", the attempt to put the correct name on a specimen.
Oh man this is easily one of the best things I've read online in ages. I laughed my ass at many of your references, it was so refreshing. The last part about oop and concept creation is very on point. II teach it the opposite way, my CS students first learn oop and then, in the later years of the major, we'll have philosophical discussions about, you know, AI and consciousness and whatnot, and we get to pull on all these conceptual resources from basic software engineering.
Now here's one for you: the rules that make classes and instances work in Python, what is called a "type system", is what's called nominal typing, which is the traditional type system in OOP. That is, we say GuideDog is a Dog because you explicitly declared so. But in Python you also have a form of structural typing, which is kinda things are what they look like. So you can say, for example, anything that has a .swim() method is something that can swim, regardless of where in the class hierarchy it lies. Python calls this "duck typing". If it swims and quacks, it's a duck.
Now my question from you is, how does this look like in philosophy? Is there such a difference in where concepts come from?
Thanks, Alejandro! We’re all attacking the same beast, just from different directions 😀
I don’t know enough about these differences between nominal and structural typing to give a good answer, but this reminds me of something from graphic design: the Bauhaus dictum that ‘form should follow function’. Is this the distinction you mean? One where function follows the form and another where form follows the function?
Well maybe it's kinda like that, let me elaborate a bit.
In nominal typing you declare how things are related to each other, and then the language forces you to honor that declaration. Your GuideDog has to behave like a Dog to some extent (look out Liskov's substitution principle), but in structural typing is kind of the opposite, you don't declare beforegand this is a Dog, you just define a thing with some functionality (some structure, actually, that is, some methods with specific signatures), and then wherever you need, you can create a new concept out of thin air by saying now in this function I need something that barks, and the language will (if it has type checking) only let you use an object whose type has the requested structure. So you kinda create types when you use them, instead of when you implement them.
Hope it makes a bit more sense ;)
Yes, it does, I get it now. I guess the difference between analytic and continental philosophy could map nicely to it, where analytic could be nominal (determining the structure and set membership beforehand) and continental structural (declaring things as concepts in context, or as needed).
The caveat is that in continental philosophy you’d rather call this approach ‘post-structural’ than structural, though.
That's interesting, I was under the impression the difference between analytic and continental was more or less the same as empiricism versus rationalism...