Philosophies and Programming Languages
evariste.galois writes "Wikipedia has a special section called, 'Language Philosophy,' in every article for a programming language. This section looks at the motivation and the basic principles of the language design. What if we investigate further than that? What deeper connections between philosophies and programming languages exist? By considering the most influential thinkers of all time (e.g. Plato, Descartes, Kant) we can figure out which programming language fits best with aspects of their philosophy (Did you know that Kant was the first Python programmer)? The list is not exhaustive, but this is a funny and educative start."
Before we start this discussion, everyone should read the Tractatus Logico-philosophicus by Ludwig Wittgenstein. Programming languages, like human languages, express rules and patterns, but in philosophy we talk about how and when to employ rules, where to look for patterns. There are certainly general principles that apply to all programming languages, such as the trade-off between clarity and concision, whether it's better to own or reference an object in a given instance, etc. But does C++ really have a different "philosophy" than Objective-C, or are we just talking about the problem-solving intent and domain of the language and its suitability to a given problem? Do those really constitute philosophy, or are they just functional artifacts of the form?
Discuss.
-- thinkyhead software and media
As a programmer who was a philosophy major in college I am so happy to finally see the connection made by others (even if at such a superficial and shallow level).
In all seriousness, however, philosophy and programming are amazingly similar. They each are about breaking down complex thoughts into atomic, logical pieces. The origin of computer theory is in philosophy.
And for all of you philosophy majors who are sick of being asked what you are going to do with a philosophy degree (as I was).... tell them you will be a computer programmer!
Guess we can add this one to the list.
Ascalante: Your bride is over 3,000 years old.
Kull: She told me she was 19!
Lisp.
Alternately a convoluted, confusing and maddening knot of junk, and a transcending work of crystalline insight, clarity and genius, and either way, constantly leaving you with the nagging feeling that if you'd just went through it one more time with love and care, you'd finally, truly get what it's all about.
555
(a Thai joke)
I was a language instructor as a SSgt in the USAF at the defense language institute Korean school in Monterey, CA. One of my students, an Army Special Forces SFC with Thai language experience (I have none), was participating in a creative role play involving numbers and vocabulary commonly used with numbers.
He put on his army trench coat (class b uniform day) stood in front of the class, and proceeded to act like a guy who sells watches on the street. His sales pitch (for a tv commercial, I guess) went fairly well until he started to give his 555-nnnn phone number in Thai rather than Korean.
The other students an I who had been concentrating keenly to figure out just what the hell the student SFC had been saying were totally taken by surprise by what we heard and a good laugh was had by all. The SFC was clearly working hard to communicate his free-form message (compared to many other lessons which concentrate on formatted language transactions such as greetings, weather reports, etc.), and it was quite a scene when he slipped into another language.
Good times.
Voltaire's Professor Pangloss was based on Leibniz, not Rousseau. Leibniz would probably have been a better programmer anyway.
If you're serious about the topic, someone above mentioned Wittgenstein. The Saphir-Worf hypothesis is basic reading for linguistics. Here is a paper called "Notation as a Tool of Thought" written by a guy called Kenneth Iverson that discusses the effect that computer languages have on expression of thought.
Blithering about Kant being the first Python programmer and other such vacant nonsense may be entertaining in a limited way, but there are serious and fascinating issues in the study of linguistics, including those dealing with artificial language.
Wikipedia has a special section called, 'Language Philosophy,' in every article for a programming language.
Is it even possible to make a less significant statement?
You must be new here.
A goatse link.
I, for one, welcome our Philosophic Programming Overlords.
To name three.
The article wasn't factually correct. This
Java was the first strongly-typed language, in which everything must have a type (or share a Form) before it is being used
isn't even close. Sigh. By that definition FORTRAN counts. Every variable DOES have a type "before being used". It's a floating point type if the variable name starts with A-H, O-Z and integer otherwise. Perhaps the author is confused about static typing. In which case he's still off by a couple of decades on which was language was first to be "strongly-typed". If you want to restrict it to widely used languages, Ada or Pascal (which was never meant to be anything other than an academic teaching language) would qualify. Fringe languages that influenced Ada like Modula and Modula II are possible too.
Actually, the only untyped language I'm aware of is "B", which used a machine word as its basic "type". Maybe BCPL counts too, but other than reading that it as an ancestor to C, I don't know much else about it.
Comparing programming languages to philosophy makes quite some sense in is not just for chuckles. Both are about describing or modeling a universe. This leads us to interesting similarities, for example:
Plato and class instantiation: Plato thought that everything existed as "idea", e.g. the idea of a horse and what we see are instances of this idea. This is extremely similar to the relation between classes and objects.