The essence of (functional) programming

Functional programming seems to be a hotly debated issue among some programmers. On the one side there are the more academic, computer sciency proponents, who claim that all programming should be functional, since it supposedly reduces bugs and you can reason about the program and do all kind of fancy formal proofs. These proponents also created several purely functional languages to show the world how awesome this way of programming is (including Miranda, OCamML and Haskell). On the other side there are the self-proclaimedly more pragmatic  programmers who bash functional programming as being unusable for any kind of reasonable work in the real world – work that is actually ending up being used by real users and not just as unintelligible papers in the ivory tower.

Who is right? I don’t know. I find the whole discussion moot, so I won’t try to take a side, since I both feel firmly grounded in the real programming world and still use concepts from the functional programming world.

For the sake of a better understanding what the whole thing, in my view, is about, I will introduce a different nomenclature for common programming terms. It was first used for APL-like languages and was introduced originally by Kenneth Iverson – a Turing award winner, best known for his contributions to mathematical notation and programming language theory. His paper Notation as a tool of thought  (Comm. ACM 23 (8): 444–465) is worth reading several times. Continue reading

Arguments – when the loser is the winner

In a recent TED-Talk (TEDx ColbyCollege, Feb. 2013, Daniel H. Cohen: For argument’s sake, see embedded video below) the philosopher Daniel H. Cohen asks an interesting question: How do we approach arguments?

I’m not talking here about arguments about ordinary tasks, like who is taking out the trash or other mundane things, but about intellectual, academic and stimulating arguments. That is, arguments that require thinking, domain knowledge and intellectual wits. Although he probably thought of it as mostly applying to philosophical arguments and debates (he is a philosopher after all), I believe the ramifications of his observations are much broader than just the domain of philosophy.

Continue reading