• Harry Hindu
    5.1k
    "I think everyone should learn how to program a computer, because it teaches you how to think".
    -Steve Jobs

    Philosophy is commonly understood to be the study of knowledge, thinking about thinking, or what is proper and improper to think.

    It seems to me that the skills necessary to do both well are very similar. Programming teaches you how to create complex, consistent systems and that skill is essential to what philosophers do. Object-oriented languages treat reality as if it were divided into Aristotelian “substances", so programming seems to require some understanding of ontologies. "Ontology" is a term used both in philosophy and computer science and means basically the same thing. It refers to the nature of the thing that we are talking about or modeling.

    Part of the process of creating a computer program is the use of variables. Variables are symbols that stand for some quantity or some other string of symbols, or an array of other variables. Words are like the variables in a computer program. They need to be defined for some function to use them properly. If they aren't defined then the function will produce an error. This is the problem that I see occur most in philosophy - where the terms themselves aren't properly defined to do any work with, or that the function references the wrong part of the array if the variable/word has multiple definitions. A word can have an array of definitions and if you confuse which one you are working with, then you will get an error.

    So, just as creating a proper computer program entails the proper use of variables, doing philosophy entails the proper use of words in clearly defining what it is that you are referring to when using that variable/word.

    One of the first things you need to do as a programmer is decide what exists and how it works so that you can model it with code. For instance, there is something that exists called, "purchasing an airline ticket", and there is a process to it - a how it works. In doing so, you have to figure out what the basic objects are and how they interact. Customers can have attributes like credit card numbers, seat assignments, email addresses, and can perform functions like placing orders, checking in, canceling, etc. Another object could be "flights" would would then have attributes like destinations, origins, expected departures, etc. Seats would have properties like row, windowed, occupied, etc. If any of these objects in the code don't accurately model the real world or how they interact properly, then you program isn't going to be useful.

    If philosophers don't accurately model the world with their words, then whatever conclusions they reach won't be very useful either.

    If philosophy is the practice of thinking clearly about life, then good programming and good philosophy go hand in hand, just as bad programming and bad philosophy do. It is about thinking clearly, not ambiguously.

    I would love to hear feedback from the community.
  • Changeling
    1.4k
    I would love the hearHarry Hindu

    I would love to* hear (to infinitive verb pattern)
  • jgill
    3.9k
    Words are like the variables in a computer program. They need to be defined for some function to use them properly. If they aren't defined then the function will produce an error. This is the problem that I see occur most in philosophy - where the terms themselves aren't properly defined to do any work with, or that the function references the wrong part of the array if the variable/word has multiple definitions. A word can have an array of definitions and if you confuse which one you are working with, then you will get an error.Harry Hindu

    Amen to that. :up: "Garbage in = garbage out"
  • Jamal
    9.9k
    The difference between computer programming and philosophy is like the difference between making a table and making a sculpture: if you've gone wrong your code will produce an error and your table won't stand up right, but in philosophy and sculpture you never get that: it's harder to tell. In philosophy, there's no agreement as to what the proper objects, settings, and parameters should be in the first place. Philosophy is the practice of trying to work that out.
  • Pfhorrest
    4.6k
    I agree wholeheartedly and wish I had double majored in philosophy and computer science (which I had considered at the time) instead of philosophy and multimedia arts. The programming makes a much more natural match to the philosophy... and would have paid a lot better, too.
  • _db
    3.6k
    Programming, as well as computer science, have been built around the notion of abstraction, i.e. simplifying complexity by ignoring details. Abstraction requires a mind that can detect and then assign identities to repetitions in the form of metaphors, i.e. useful make-believe. Working with computers is as much of a material exercise as it is an imaginative and magical (autistic) one.

    Programming teaches reductionism and abstraction. Break it down, then build it back up, and in doing so transform the real into the ideal, a castle-in-the-sky.
  • Jamal
    9.9k
    There's a difference between computer science and programming. It's like the difference between pure mathematics and engineering. I'm not educated in computer science but I learned how to code through experience. There's nothing about programming that feels relevant to philosophy, to me. I'm an engineer, or craftsman. For others, doing more comp sci kinds of things, I imagine it's different.

    It might be the case that the way I think even in everyday software engineering is somehow useful as a way of training me how to think in a disciplined way that might be helpful for philosophy, but it doesn't really seem that way. When I'm programming, it doesn't feel like I'm thinking as such, as much as it feels like working on an engine with a toolbox. If it feels like thinking at all, it's like thinking with my fingers.
  • EnPassant
    670
    Programming, chess, mathematics and other games do help you to think with precision. Anyone who wants to philosophize would do well to learn to think with clarity.
  • Hanover
    13k
    I had momentarily been interested many many years ago in an MS in AI at UGA. https://www.ai.uga.edu/ms-artificial-intelligence

    It's where philosophy, computer science, and linguistics meet. I went to law school instead, but I did talk to a professor there, and he was very encouraging, and felt like my background in philosophy would give me a leg up.

    If someone here has gone down that road, I'd be interested in hearing what sort of work you do.
  • Pfhorrest
    4.6k
    When I fantasize about have double majored in CS and phil (“software engineering” wasn’t a major yet then, and was covered under CS) I imagine I would have tried going into AI as the most obvious application of those two fields together.

    If I were to have triple majored, the third field would have been linguistics, so it’s interesting that that has AI applications too. I see linguistics, philosophy, and information and communication industries generally as sort of the core axis in my map of different endeavors:

    fields.png
  • Jamal
    9.9k
    I wanted to take the AI course at university when I first started learning programming but they abandoned it at the last minute and I ended up doing tic-tac-toe in C++.

    Yeah, I see linguitics, AI, and cognitive science as areas in which philosophy really makes a difference today.
  • Harry Hindu
    5.1k
    :kiss: Yep, syntax matters.

    The difference between computer programming and philosophy is like the difference between making a table and making a sculpture: if you've gone wrong your code will produce an error and your table won't stand up right, but in philosophy and sculpture you never get that: it's harder to tell. In philosophy, there's no agreement as to what the proper objects, settings, and parameters should be in the first place. Philosophy is the practice of trying to work that out.jamalrob
    When do you have a sculpture? It seems that "sculpture" needs to be defined in order to know whether you've made one or not. If not, the the term is meaningless. I could call the way I slapped my mash potatoes on a plate a "sculpture". Picking my nose could qualify as "doing philosophy" if we aren't agreeing on what philosophy is and not agreeing is good. Is not agreeing a good thing or a bad thing when it comes to defining something?

    Once it is defined you can create a program to use it, or a philosophy to work with it. If you haven't clearly defined what it is you are talking about, then what are you philosophizing about?

    You claim that the parameters haven't been worked out, yet the only parameter that is used is logic - even when trying to show logic isn't the only parameter.

    This is from the What is certain in philosophy thread:
    If A is on B then B is under A
    X is on drugs
    Drugs is under X. — A Seagull
    You're confusing the symbol with its meaning. The "on" in the second statement doesn't mean the same as the "on" in your first, therefore the conclusion doesn't follow. It's not really about the symbols, but what the symbols mean.
    — Harry Hindu

    Quite so, but when you apply 'mending' to logic or words you lose the rigour of the logic and it becomes indistinguishable form non-logic.
    A Seagull

    I like to try to solve these types of problems by simulating the problem by recreating it in a program.

    One of the most fundamental laws of logic is the law of non-contradiction, along with the law of identity. Words are just scribbles or sounds when they don't mean something, just as variables are just scribbles when they aren't defined. What they refer to, or mean, has to be clearly defined for any subsequent logical parameters using them to be useful.

    Some computer programs require you to not only define the variable, but what kind of variable it is, an integer, string, boolean value, etc. If you use the wrong type of variable in the wrong function, you will get an error. For instance if you use a string variable to perform a mathematical calculation it will generate an error.

    Another type of error is if your variable is an array and you don't refer to a particular index in the array that exists, then you will generate an error. An array is like a word that has several definitions. If you don't refer to the right definition, you won't get the proper output. You might not get an error, but the output would be erroneous, as in it doesn't reflect reality.

    So what I think has happened in Seagull's post is that the first statement one definition of "on" has been established - the opposite of "under".

    The second statement is more like referring to the array without the index number - as if "on" only has one definition - the one used in the first statement. The index number was referenced in the first statement but not in the second, hence the ambiguity of which definition is being used. The identity of "on" is never maintained throughout the argument. The moment you lose the non-contradictory identity of what it is you are talking about, you are no longer talking about anything.
  • TheMadFool
    13.8k
    A word can have an array of definitions and if you confuse which one you are working with, then you will get an error.Harry Hindu

    In my humble opinion, where philosophy, inclusive of any other logically rigorous field, and programming overlap in a very significant way is language. As you correctly mentioned, you can't do any programming until and unless you have completely mastered the chosen high level language; too, computer languages are short on vocabulary but long on semantic precision. What this means is that, if you use the correct words and the proper syntax, it's impossible for the computer to misunderstand you and also for you to misunderstand the computer. This exactitude in communication between a computer and its coder is missing in philosophy because of the obvious reason that human language has more going on with the words and also with the way they're employed.
  • Frank Pray
    12
    "and would have paid a lot better too . . ." A much needed lighter tone to heavy subject. I too appreciate Harry's analogy. What seemed to almost yell at me in Harry's posting, but was not said, was that the "ontology" or "what is" is only part of the questioning process, because all coding is designed to reach an end result, and that implies a goal, and a goal implies a "why." The "object" could as readily be labeled the "objective." Once the objective is known, such as assigning passengers their seats aboard an aircraft, every piece of coding has relevance and utility by reference to the objective. The success or failure of the coding at any stage in the process is measured by how efficiently (or elegantly) it contributes to the desired end result. All to say, to apply the coding analog to philosophy, the first and supremely important question may be: what is the end objective of human life?
  • Frank Pray
    12
    I'm having great fun following the coding analogy. Yes, I see the critical first importance of defining the key variables and using them according to syntactical rules. Good mental hygiene in everyday conversation would require some real skill of identifying the misuse of terms and calling out the need for a clarifying definition. The sad truth about most human communication is that we proceed with the false assumption that we each have a precise common understanding of the terms we're using with one another. Taking this linguistic dilemma out of the laboratory and into the streets, I'm wondering if you have any "seat of the pants" tactics to use in daily conversation that helps the participants to come to common terms. Being pedantical with your lover is not usually the first best approach.
  • Heracloitus
    500
    I don't really care much to equate programming with philosophical thinking. At most it can only map to a logical modality of thought. In programming you create the world entirely and the only thrown errors are the ones which you explicitly check for. Programming doesn't help you to think, it helps you to put limitations on thought. To set bounderies. Programming is all rules and no pathos. Yet philosophy is brimming over with affect (yes even the analytical tradition and the so called logical positivism).
  • Harry Hindu
    5.1k
    This exactitude in communication between a computer and its coder is missing in philosophy because of the obvious reason that human language has more going on with the words and also with the way they're employed.TheMadFool
    If it were exact, there would be no bugs or glitches.

    It's a matter of integrating each our private languages into a public one, just as the computer has it's language of 1's and 0's - machine language - that the higher languages have to be translated to via a compiler. Some series of 1's and 0's means the same thing as "If x > y then do z", just with different languages.

    All to say, to apply the coding analog to philosophy, the first and supremely important question may be: what is the end objective of human life?Frank Pray

    Programming doesn't help you to think, it helps you to put limitations on thought. To set bounderies.emancipate
    Other programmers would agree with Frank, in that you program to solve problems, not to place limits on thinking, but to provide a means of solving virtually any problem by simulating with code. Variables allow you to define your own meanings, and produce your own conditions and ontologies, but they are only useful if they simulate the real world in some way.

    I think the problem with some philosophers that question the use of logic to solve problems is that they like keeping things mysterious. Ambiguous term use is a means of keeping logic from attempting to solve the problem. If you can never define what it is you are talking about and are evasive and contradictory, then it seems to me that you like having the problem more than having a solution.

    Taking this linguistic dilemma out of the laboratory and into the streets, I'm wondering if you have any "seat of the pants" tactics to use in daily conversation that helps the participants to come to common terms. Being pedantical with your lover is not usually the first best approach.Frank Pray
    Daily conversations usually don't include talk about "consciousness", "what it is like to be a bat", "direct vs. indirect realism", "metaphysics", and the other terms we use so often on this forum, so it generally isn't a problem like it is here, in the context of questioning the fundamentals of what we know. I think some of us come to this forum to escape the social games and roles that we play using words the way we do in our everyday lives. We take a break from being fake so that we can be real on these forums. Brown-nosing your boss can only be done so much before you begin to question your own integrity.
  • Heracloitus
    500
    I think the problem with some philosophers that question the use of logic to solve problems is that they like keeping things mysterious. Ambiguous term use is a means of keeping logic from attempting to solve the problem. If you can never define what it is you are talking about and are evasive and contradictory, then it seems to me that you like having the problem more than having a solution.Harry Hindu

    The problem is not that some philosophers keep things ambiguous, but that some believe ambiguity can be eliminated. It is OK that there is still some fuzzyness around the edges!

    Logic is just a tool. Useful, yes. But certainly it is only one aspect of thought.
  • Jamal
    9.9k
    I don't really care much to equate programming with philosophical thinking. At most it can only map to a logical modality of thought. In programming you create the world entirely and the only thrown errors are the ones which you explicitly check for. Programming doesn't help you to think, it helps you to put limitations on thought. To set bounderies. Programming is all rules and no pathos. Yet philosophy is brimming over with affect (yes even the analytical tradition and the so called logical positivism).emancipate

    :up:
  • Frank Pray
    12
    I'm something of a pragmatist when it comes to philosophy. The philosopher seeks wisdom, and wisdom for the sake of living not in seclusion, but in relation to the citizens and culture in which he or she was born. So, the idea of defining the terms and proceeding sequentially can be applied, just not with the formalism or unforgiving methods of coding. Steven Covey articulated the communication skill of "seeking first to understand and then to be understood." Maybe a coding variation of that would be "seek first to understand the terms, then to use them to be understood."
  • Harry Hindu
    5.1k
    The problem is not that some philosophers keep things ambiguous, but that some believe ambiguity can be eliminated. It is OK that there is still some fuzzyness around the edges!

    Logic is just a tool. Useful, yes. But certainly it is only one aspect of thought.
    emancipate

    So do your words refer to the fuzzy edges or concrete center? If one is referring to the edges while another is referring to the center, are they talking past each other?

    Is logic a tool or an aspect of thought? It doesn't seem coherent to claim it is both. If you could clarify, that'd be great.

    It is a tool for proper thought. If you aren't interested in thinking properly, then can you actually claim to be doing philosophy considering logic lays out the rules for thinking properly about the other fields?

    How do you distinguish between a delusion and fuzzy thinking? Delusions are thoughts that are uninhibited by facts.
  • Frank Pray
    12
    It's a fair point that philosophy will have its specialized terminology. That's fine when experts speak among themselves, a sort of shorthand that communicates packed meaning for those who know the terms. But it is a thing of beauty to hear a qualified expert explain complex ideas to a jury totally unfamiliar with the specialized terms of his expertise. The great expert witness compromises nothing in the meaning of his or her science by converting technical concepts into the vernacular. I've seen experts with not a hint of condescension use technical medical or economic terms for example, then explain them wonderfully in clear ordinary language, leaving everyone in the room to wonder "why didn't they just say so?" By analogy, I would argue that the philosopher who cannot step out of his academic circle to explain an idea to people having no background in formal philosophy either does not know his subject thoroughly or is too self-absorbed to care to connect with others. Maybe this is where the coding analogy comes into play: don't just define the relevant variables at the outset, but define them in a way that is comprehensible to the folks you hope to inform. After all, people use applications to achieve their objectives, not those of the programmer.
  • Harry Hindu
    5.1k
    Programming is about automating the solution to a problem.

    Programmers usually start off creating programs for themselves, to solve their own problems. It just so happens that others have similar problems, or that the algorithm can be applied to solve other problems. I often find myself copy and pasting code because I'm solving the same problem, or I just create a function that automates the problem solving when called, providing the output of one function as the input of the other function.

    The problem isn't experts defining the terms on this forum. Is Aristotle an expert on the topics of this forum? Are we permitted to disagree with his use of terms? Who here is an expert on the topic at hand? You'd think that the computer programmer would be, but then look at all the people disagreeing with my use of terms.

    What I find strange is the assertion that ambiguities can't be eliminated which seems to imply no ambiguity of me being wrong in claiming that they can, and should be for proper thinking.

    If ambiguities can't be eliminated, then emancipate's and jamalrob's posts could actually be agreeing wholeheartedly with everything I have said.

    Jamalrob and emancipate are trying to have their cake and eat it too.
  • Nuke
    116
    If philosophers don't accurately model the world with their words, then whatever conclusions they reach won't be very useful either.Harry Hindu

    It can be proposed that nothing made of thought can accurately model the real world. This isn't a problem of the philosopher or any philosophy but of the medium all philosophers and all philosophies are made of, thought.

    Thought operates by dividing a single unified reality in to conceptual parts. A profound bias for division is a key property of thought, and this bias distorts all products of thought.

    Here's an example to illustrate. My model of this post is that it contains "my ideas". This model presumes I am a separate thing, and that these are unique ideas that arise from that source. This feels true, and it's a useful model in many ways, but...

    I am not a separate thing. And these ideas have been circulating around civilization for thousands of years. The ideas don't belong to me, or to anybody, but are instead a property of the global human mind.

    A great deal of philosophy is powered by the illusion I've described above. Thought creates the "me" through it's process of conceptual division, and then the "me" attempts to enlarge itself by claiming ownership of ideas which typically have already been shared countless times in a variety of ways.
  • Banno
    25.3k
    Laughed out loud - literally - at the way you reduced programming to using variables in the OP:
    Part of the process of creating a computer program is the use of variables. Variables are symbols that stand for some quantity or some other string of symbols, or an array of other variables. Words are like the variables in a computer program.Harry Hindu

    As if all the other terms in a programs were not also words; as if all all words were nouns. As if the only thing words do is refer.
  • Harry Hindu
    5.1k
    Nouns engage in actions or functions, which verbs refer to. Adjectives refer to properties of the noun.

    Variables are scribbles whose meaning can be customized on the fly, while the other words are used to perform functions on the meaning of the variables, what they refer to, not the scribble itself.

    If a word doesn't refer then words are just sounds that make people do things, just as an alarm wakes you up from sleep.

    If you want to address the specific examples I have provided or provide your own, then we can start there. But your amusement certainly isn't a good evidence that anything that I have said is wrong. You need to try a bit harder.
  • Banno
    25.3k
    "Wrong" is a bit harsh; misguided, perhaps

    On occasions, I teach kids. I've several times been involved in setting up and running philosophy for children. It's never long before I start to question the wisdom of such a curriculum. So much of philosophy is bad or clumsy.

    I also teach coding, and have found it a much more direct, effective way of teaching "thinking" - especially sits such as code.org, which comfortably straddle the concrete /abstract divide for eight year olds by using games.

    But following through on the analogy above, it seems to me that you do philosophy in much the way a programmer would program if they only used variables - it doesn't work.
  • Frank Pray
    12
    emancipate seems to doubt the good faith search for truth among philosophers who hide behind "mysterious" terms. Do such charlatans exist? Surely. But emancipate doesn't say they dominate the world of honest philosophers who genuinely love and seek truth. If he did, I don't think he'd be poking around in a philosophy forum.

    Jamalrob presents a tougher case. His argument is that coding doesn't work as a model for philosophical inquiry because it lacks "pathos," meaning, I surmise, coding is a cold mechanical set of rules that produce nothing really important to the process of philosophical inquiry. Many machines are quite useful despite lacking emotion, and it would be troublesome indeed if a chainsaw had a fit of anger just when your legs were exposed to the blade. Nor did you make the argument that coding was more than an analog for the process of seeking a solution. Nor did you advocate for coding as a source of useful premises. I understood your argument to be that coding is just a tool for how to think about a solution to a specific kind of problem, in the same sense that the scientific method is the preferred method to find answers to certain types of problems, e.g., discovering a vaccine for COVID-19.

    We could spend a lot of time in the next world unraveling the undefined meanings of the terms "coding," "process," "pathos," "thinking," "program," "scribbles" and "tools," and I'm grateful that won't happen here, but it is useful to see that we've used these terms with unspoken assurance that we each have the same understanding of what they mean and how they apply.
  • Frank Pray
    12
    it seems to me that you do philosophy in much the way a programmer would program if they only used variables - it doesn't work.Banno

    Interesting observation. Not being a coder myself, it reasons nonetheless that for the process path to have one or more predetermined destinations, some constants have to be present in order to manage the variables [you can tell by the way I'm framing this idea I know no coding].
    But what interests me about your comment is how you would carry your thought further to apply it to the "non-variables" in a philosophical inquiry. We live in a time of rampant relativism when "constants" are criticized as imposing absolutes when no viewpoint is more valid than another. You write that a line of code that was constructed of only variables "does not work." Would you say the same of a value system that held one viewpoint is as valid as any other?
  • Heracloitus
    500
    Programming is about automating the solution to a problem.Harry Hindu

    And there are many different ways to solve a problem in programming depending on the programmer, paradigm or programming language. Object orientated is only one paradigm. Functional programming, for example, will have a very different approach - function composition rather than classes and property inheritance. Even the way a problem is framed is arbitrary.

    What I find strange is the assertion that ambiguities can't be eliminated which seems to imply no ambiguity of me being wrong in claiming that they can, and should be for proper thinking.Harry Hindu

    Is it easier to comprehend if I say that ambiguity cannot be completely eliminated? The best we can do is a good enough approximation. Good enough to work with, we can have a discussion and understand each other to a certain extant, not completely but enough. This is the problem with language as transmission of thought: lack. Logic doesn't solve this because it necessarily omits what it considers to be the excess of thought, in an attempt to remove ambiguity.

    I dispute the notion that 'proper thinking' and philosophy should aim towards logical reduction.
  • Harry Hindu
    5.1k
    "Wrong" is a bit harsh; misguided, perhapsBanno
    How exactly is "misguided" not the same as "wrong"? You say that it's "harsh", but if you're trying to spare my feelings, my feelings, and you trying to spare them, have nothing to do with what I said being wrong or right.

    On occasions, I teach kids. I've several times been involved in setting up and running philosophy for children. It's never long before I start to question the wisdom of such a curriculum. So much of philosophy is bad or clumsy.

    I also teach coding, and have found it a much more direct, effective way of teaching "thinking" - especially sits such as code.org, which comfortably straddle the concrete /abstract divide for eight year olds by using games.
    Banno
    A curriculum in philosophy for children should simply be a course in critical thinking, which a computer coding course could be a choice because coding teaches critical thinking.

    The history of philosophy should probably be reserved for high school and college elective courses, or those majoring in philosophy - which seems to be not much different than a major in theology.

    But following through on the analogy above, it seems to me that you do philosophy in much the way a programmer would program if they only used variables - it doesn't work.Banno
    I don't recall ever saying that programmers only use variables to solve problems, or that making sure words are clearly defined solves all philosophical problems. I think what I have shown is that this is part of the process, yet a necessary part, just as avoiding appealing to emotion is a necessary part of solving problems. All the rules are necessary and are dependent on the other rules to be followed in order to solve the problem. If I wrote a program that only showed a profit for a company because I wanted to spare the CEO's feelings, then that company wouldn't be a company for very long.
bold
italic
underline
strike
code
quote
ulist
image
url
mention
reveal
youtube
tweet
Add a Comment

Welcome to The Philosophy Forum!

Get involved in philosophical discussions about knowledge, truth, language, consciousness, science, politics, religion, logic and mathematics, art, history, and lots more. No ads, no clutter, and very little agreement — just fascinating conversations.