Sunteți pe pagina 1din 5

From:

Subject:
Date:
To:

Pramod Salunkhe salunkhe.pramod@gmail.com


If Philosophers Were Programmers
June 13, 2016 at 12:16 AM
Pramod Govind Salunkhe pramod@yanbucement.com

lthough not obvious, philosophy actually has a strong relation with programming, at least for me. If you
think about it, software code reflects much of how the developer perceives the problem and its solution.
Before starting to program, developers spend some time thinking over the problem, identifying important
properties and their underlying connections, a process that
reveals their philosophy as the way they perceive realword situations. Likewise, philosophers are constantly
trying to identify the most important properties of the
issues they reflect on, like life, conscience or God.
Under this perspective one might be able to make a
consistent mapping of the ideas behind programming
languages and the ideas that philosophers have come up
over the years. It is perfectly reasonable to consider the
programming languages as the different philosophies of
a virtual world, in which entities do exist and interact with
each other. To this respect, even the fundamental philosophical questions receive an interesting
transformation: For example "What is self-conscience?" can be rephrased as "What is reflection?".
To the fun part, one might ask: "What if philosophers were programmers? What programming
language they would use?". Well, here are my answers!

Socrates : The Hardcore Assembly Programmer


Socrates was one of the founders of philosophy but this is not where the connection ends. Socrates had
devised a clever methodology to win every debate. He kept asking questions
until a contradiction was reached. So, when someone would claim "morality is
important", Socrates would ask "How do you define morality?".

In a similar manner, everything in Assembly begs for a question. There is


nothing pre-assumed (at least in pure Assembly, not the distros filled with preprocessed libraries and other junk) and everything has to be as succinct as
possible to have a meaning. If you were to work with the programmer
Socrates and shared something like "var x = null;", your partner would start by
asking "What is var?" !

Aristotle : The Influential C Programmer


Aristotle had a huge impact on Western philosophy, founding many scientific areas, from physics to
biology. He was the first to closely examine real entities as the real essence of
everything, in contrast to Plato's abstractions. His philosophy is driven by the
golden mean as the key to reaching morality or understanding life (matter
andform).
The C programming language was equally influential to the design of all other
"programming philosophies", most obviously in the syntactical level. In addition,
by the time of its writing in the early 70's, C was supposed to be the golden

by the time of its writing in the early 70's, C was supposed to be the golden
mean between the so-called high-level languages and the Assembly
language,combining the capability to write machine-independent code
combined with the power of low-level access.

Plato : The Idealistic C++ Evangelist


Plato is a huge figure in philosophy, student of Socrates and teacher of
Aristotle. That said, I owe you an explanation about the obvious anomaly:
How come that C++ is coming after C? Let me explain. Plato is famous for
his Forms or Ideas, that refer to the archetypical versionsof the things
around us. So, the cup in your desk has is ashadow of a similar ovalshaped archetype in the world of Ideas. In programming words, it is an
instance of the Cupclass.
Similarly, C++ , as an extension of C, is the first language that tries to
capture this idea of forms by giving the developers the capability to abstract
the problem before doing anything else. This is a major step by itself, since
even if no actual code solving the problem is provided, the classification
and the problem modelling are evident and valuable to others. You might wonder, why Plato would not
program in Java. Well he could, but there is another parameter to the story: Plato is not so confident how
symbols can represent his Forms, and clearly prefers the spoken dialogue (as mentioned in Phaedrus). In
a similar manner, C++, not entirely confident in its direction, remains a superset of C, being
fullybackwards-compatible with the more non-ideal syntax of C.

Stoics : The Happy Perl Community


Stoics and their philosophy (Stoicism) had silently, a far-reaching impact not only to Western philosophy
but to the philosophy and the global culture as a whole.
Interestingly enough, there is no single man behind it, but it was
actually a collaborative intellectual achievement. Stoicism denies
anything immaterial and tries to explain the world through
propositional logic. So, Stoics reject everything Ideal and
concenrate in morality, in which they call us to get free from
anything we can't control, but rather appreciate the freedom to
self-introspect and reach true wisdom. Stoicism rejects political
systems and other formalities, and promotes Socrates' citizen of
the world for everyone. People are meant to be brothers, away
from distinctions, aiming to contribute happily to a society of
friendship and love (jus commune gentium). You should already notice the influences to most widespread
religions, like Christianism and Buddism.
Most interestingly, Perl was created in the 80's, a decade in which finally logic/functional programming
had found its place in the programming languages world. However, the Perl
community (and language) shares much more striking similarites with the Stoics
and their philosophy. Perl as a language is to the best possible extent, free of
form. Actually the most common phrase in the Perl world is "there is more than
one way to do it" or TIMTOADY for short. The philosophy behind Perl rejects
syntactical constraints, giving the freedom to its programmers to code in their
style, but at the same time encouraging sharing and contribution to the

style, but at the same time encouraging sharing and contribution to the
community. Perl's power lies to a great extent to the existence of CPAN, the
archive of modules and software happily shared by Perl programmers all
around the globe. The language's influence to the programming world has been
silent, but much more far-reaching than what is immediately observable. One
could mention its strong influence to scripting, dynamic typing and functional programming, but it could be
summarized to a joke which is familiar to Perl fans: The next market's crash will be triggered by a bug in
someone's Perl script.

Rene Descartes : The True Java Guru


Descartes was the first philosopher of the Western culture to stand up against the Classical Ancient
Greek philosophy. His core philosophy as mentioned in his famous Article 7
of the "Les principles de la philosophie" is based on the concept of cogito
(=intellectual ego). Descartes believes that doubt is a proof of existence, and
cogito is the cause of doubt, arriving to the famous"cogito ergo sum" (=I think
therefore I exist). The cogito is not just another process we do, but actually
all we do. So, what we want, imagine or feel is directly accessible through it.
Descartes nearly 'proves' the existence of God, by the fact that we are able
to think about the necessity of his existence. In fact any Ideal or Form can be
directly accessible by our cogito. Descartes also marks another landmark in
the history of philosophy: Beginning from his work, philosophy is trying to
avoid confusing abstractions and to establish a succinct, almost geometrical form. Descartes presents his
ideas nearly in the form of theorems.
Descartes would be the perfect Java guru. Java was the firststrongly-typed
language, in which everything must have a type (or share a Form) before it is
being used, matching perfectly the Descartes' efforts to be always exact for what
he is talking about. Descarte's cogito is in fact a revisit of Plato's Forms, with a
slight variation in which ideals exist because we think about them and not in
another universe. To that respect, his philosophy is purelyobject-oriented, as the
solutions in which we arrive, are direct products of our intellects.

Immanuel Kant: The First Python Programmer


Kant found the 'easy' way to the pantheon of philosophy by rejecting two
prevailing and opposing methodologies, Descarte's cogito and the empiricism,
by shouting 'It's both!'. Kant investigated how humans reason, claiming that
experience offers the truth, but which has already been filtered by intellectual
judgement (a priori). At his mature years, he examined aesthetics, and the
theory trying to explaining the way we perceive beauty. Kant was an extremely
concise personality, being obsessed with tideness and exactness, doing the
same things, exactly at the same time every day, to the extent that his
acquaintances were 'using' him to calculate time!
Similarly, Python is a programming language that tries to combine different
solutions and promote it as a new one. As a language it accepts multiple
programming paradigms, from object-oriented to contract-based

programming. Python programmers reject the free formats of languages such


as Perl, and although they borrow several features from it, they emphasize
on simple andexplicit code. Python becomes so 'obsessive' that
imposeswhitespace identation as delimiters for code blocks to its users. In
the "Zen of Python", the first out of the 19commandments, the first one is
"Beatiful is better than ugly". Kant's obsession to beauty and
aesthetics, makes him triumphantly the first Python programmer ever.

Ludwig Wittgenstein: Natural Born Haskell Programmer


Wittgenstein reformed Western philosophy going as deep as to examine
Socrates' 'recipe' for debate success. His monumental work, the Tractatus
Logico-Philosophicus, can be compared to a hard graduate mathematical book in
Logic. Wittgenstein identifies the semantic and symbolic forms as the root of all
philosophical problems, leaving the rest that can be explicitly defined as the
subject of science. Using pure logic, he deducts that language inherent ambiguity
is what makes philosophy repeat itself, and closing his book with the famous
'What we cannot speak of, we must pass over in silence', claims to have
solved,..., all philosophical problems.
Wittgenstein is a natural born Haskell programmer. Haskell was not the first functional programming
language in town, but from late 80's and onwards, it has prevailed as the
most important among the group. Haskell is not meant to be accesible by
anyone, and just like the austere and succinct Tractatus, as Wikipedia
states, it has a strict mathematical and logical form. Haskell, being purely
functional, goes as deep as redefining the way we treat abstract data types,
the same way Wittgenstein goes back to Socrates' dialectic to reform
modern philosophy.

These all may sound weird, but for programmers, it is easy to realize these deeper connections. I am not
quite sure if the same holds for philosophers. Anyway, at least by now, it should make much more sense
why in every article in Wikipedia, presenting a programming language, there is special section named
"Language philosophy".

S-ar putea să vă placă și