- By Spencer Haven

- January 13, 2023
- Advice

Philosophy often gets a bad rap for being a pointless and futile endeavor. What does a degree in studying metaphysics, epistemology, or logic get you other than a job at Pizza Hut? As interesting as questions like, “Does God exist?” can be, shouldn’t they be relegated between the hours of one and four in the morning over drinks with friends?

To these critiques, I like to remind people that not only can most of your assumptions and beliefs about the world be traced back to philosophers, there are a lot of pretty cool technologies out there that once only existed in the abstract writings of philosophers until the technology was able to catch up and make practical use from them. Even universities, where so much innovation has been born, originated with Plato in 387 BC when he created the first university called The Academy (which is why education is called academics).

Similarly, there is a lot of terminology in Computer Science that can be traced back to the philosophers who are credited with laying its foundation. If you’ve ever worked with developers, you’ll often hear them use terminologies such as backend logic, languages, objects, arrays, strings, boolean operators, and arguments. Here are some notable philosophers who developed these ideas and why developers owe their jobs to them.

Let’s start with George Boole (1815–1864). Developers who are a bit more attentive may already have an idea of his contributions based on his name. Boole was a mathematician, philosopher, and logician who worked on differential equations (no big deal). While it was not his focus or intention, in attempting to help systemize Aristotelian logic, Boole inadvertently started a movement that would completely replace it. To put this into perspective, Aristotelian logic had been dominant for over 2,000 years. What Boole did was essentially the mathematical equivalent of Copernicus beginning to realize that maybe the Earth was not the center of the universe.

At the time of Boole, Artiotilian logic used syllogistic arguments and deductive reasoning to prove something. For example,

All men are mortal.

Socrates is a man.

Therefore, Socrates is mortal.

This seems to work well, though Boole wanted to help it a bit by adding truth values to logic, such as “False”, “True”, “and”, “or,”, “some”, and, “all”. Thereby removing some ambiguity to logical arguments that can arise and making logical arguments more similar to the way algebra describes numerical operators.

Next came Georg Cantor (1845–1918), a German mathematician who pioneered Set Theory, now a central part of Computer Science and the cornerstone of modern mathematics. As the name suggests, Set Theory studies collections of objects. It’s extremely difficult to explain the significance of Set Theory, especially because the idea of objects and numbers being a collection of sets seems nothing more than stupidly obvious. That, paired with the fact that Set Theory is actually incredibly dense and complicated, makes it challenging to explain Cantor’s contribution. Because I can’t even quite find a good way to explain it simply, I’ve asked my good friend ChatGPT to help simply explain Set Theory:

*{2, 4, 6, 8, 10, …}*

*The order in which the elements of a set are listed is not important, and repeated elements are not allowed. For example, the set {1, 2, 3, 4} is the same as the set {4, 3, 2, 1}, but it is different from the set {1, 2, 3, 4, 4}. There are different types of sets, such as finite sets (sets with a finite number of elements), infinite sets (sets with an infinite number of elements), and empty sets (sets with no elements). Set Theory is the foundation of mathematics and is used in many different areas of study, including algebra, geometry, and topology.*

*In Set Theory, there are also various operations that can be performed on sets, such as union, intersection, and difference. The union of two sets is a set that contains all the elements of both sets. The intersection of two sets is a set that contains only the elements that are common to both sets. The difference of two sets is a set that contains the elements that are in one set but not in the other.*

*There are also several axioms, or fundamental principles, of Set Theory that are used to define the properties of sets and the operations that can be performed on them.*

Keep in mind, that was me asking to explain Set Theory in simple terms. Along with rebuilding a major cornerstone of math, Cantor’s work on Set Theory set the stage for database structure and query languages, such as SQL.

If Boole and Cantor were the ones who began prepping the pieces for modern-day logic, math, and computer science, Gottlob Frege (1848–1925) was the master logician who put the puzzle together. Frege took the work of Boole and Cantor and pushed it forward to completely rewrite logic altogether, coming up with what’s known as first-order logic.

What first-order logic does is replace the syllogistic forms of logic altogether with quantifiable ones, using Boolean operators and Set Theory to make an argument. So instead of the argument,

All men are mortal.

Socrates is a man.

Therefore, Socrates is mortal.

First-order logic would say,

“There exists x such that x is Socrates and x is a man”,

Where “there exists” is a quantifier and “x” is a variable.

And because we can think of elements or objects as existing within a set, the predicates, “is a man” and “is a male Homo Sapien” can both be assigned to the same set, x, which eradicates many problems that Aristotelian logic would not have been able to withstand.

Additionally, while not a philosophical contribution, per se, Frege worked with and introduced heavy-weight philosophers Bertrand Russell (1872–1970) and Ludwig Wittgenstein (1889–1951), who had lasting influences in the world of philosophy, logic, language, mathematics, and by extension, Computer Science. To take an example, these two philosophers worked to create a logically ideal language—one that is rooted in mathematics and logic and would not be misled by mistakes made in natural language. Arguably, this is the same reason we call JavaScript, Python, C#, and the rest of them, languages.

To take it full circle, in 1937, a student by the name of Claude Shannon (1916–2001) wrote a thesis called “A Symbolic Analysis of Relay and Switching Circuits,” using a lot of the work that Boole had put forward, which until then had no practical applications. Shannon realized he could create switching circuits based on Boolean operators, such as True (1) and False (0), now commonplace in the world of programming and computing.

Of course, there were also many other people that played a large role in making modern-day computing into a reality, too many that could be listed here. However, many of the ideas that Computer Science is based on can be directly traced back to philosophers like Boole, Cantor, Frege, Russel, and Wittenstein (as well as several others), who spent their life rebuilding logic and mathematics from the ground up. So the next time you hear someone say that philosophy is useless, remember that devices, websites, and applications we take for granted today would not exist had it not been for philosophers!

Spencer was drawn to the business analyst role because he loves solving problems, creating efficiencies, and learning. Spencer enjoys the opportunity to work with a variety of great people and projects and to watch as ideas become technical realities. When not working, Spencer enjoys running, rock climbing, philosophy, theology, reading, acoustic guitar, chess, biking, woodworking, boxing, and, most importantly, spending time with his wife, Christina, friends, and his pup, Dio.

We love to make cool things with cool people. Have a project you’d like to collaborate on?

Let’s chat!

Stay up to date on what BizStream is doing and keep in the loop on the latest in marketing & technology.