After about an hour of talking to the startup, I got frustrated.
Talking to startups isn’t all fun and games. Usually it’s a bunch of explanations that people are using to distract from the fact that they haven’t built or tested their product with a single end user yet.
Most startups are trying to raise money without a single customer nor a single penny earned, and that’s why startups never get off the ground. Founders have this demented idea that an angel investor is more angel than investor; nothing could be farther from the truth.
Anyway, after about an hour of trying to understand just what the hell this startup was doing, I asked,
What are the inputs you’re processing into outputs? What’s the process you transform inputs into outputs? And what’s the output that your company’s special process generates in the end?
The answer I got wasn’t pretty, but I learned something.
I learned that everything system could be defined as a series of interconnected functions.
The Oldest Argument Of All Time
Back in the day, like 2500 years ago, Pre-Socratic Philosophers like Democritus and Heraclitus were arguing about the nature of reality. Specifically, they were arguing over what was the most fundamental unit in the universe.
Democritus argued that the atom was the most fundamental unit in the universe. He thought the atom was at the bottom of all things.
Heraclitus, on the other hand, thought Democritus was making far, far too many assumptions about the nature of reality. Truth is, Heraclitus wasn’t the most popular philosopher back then, and for good reason. He didn’t talk as much as the other philosophers did, and that was kind of his point!
Almost 2,000 years later, Wittgenstein would assert
Whereof we cannot speak we must pass over in silence.
Heraclitus would’ve disagreed with with Pythagoras, too.
Pythagoras and his followers believed in the Divinity of Number, that Number itself was the most fundamental unit in the universe. Again, Heraclitus would say that Pythagoras was making too many assumptions.
Heraclitus didn’t believe that number was the basis for reality. He didn’t believe that the atom was the basis of reality, either.
Instead, he believe that CHANGE was most fundamental force in the universe. He said that all we could know was change; that change never seemed to stop.
This idea made Heraclitus an outcast among his fellow philosophers, people who wanted to be much more precise than Heraclitus about the nature of the universe.
Yet, Alfred North Whitehead, co-author of the Principia Mathematica would’ve agreed with Heraclitus 2,000 years later.
Philosophy begins and ends in wonder.
- Whitehead
But why am I telling you this? And what does this have to do with the idea of a function?
The Power of the Function
How do you make tea in the morning?
A function describes a system with three parts:
Input(s)
Process(es)
Output(s)
A recipe is a great example of a function. Boil water, grab cup, teabag, cream and sugar; combine.
The inputs are water, cup, teabag, cream and sugar. The process involves plugging a kettle into an electrical socket so the water can get hot. The output is a cup filled with tea. That’s it. That’s all a function is. A function takes an input, processes it, and generates an output.
The function might seem like a simple idea, but in the real world, we compose or daisy-chain or connect multiple functions together to create complex products. Just think about all of the functions that go into a hamburger, from collecting rain for cows to drink and immunizing them against parasitic disease.
Just about anything in our world can be viewed as inputs being processed into outputs.
For example, this is a diagram of a typical web app that leverage biometric data from the user and then processes those inputs into an output, an experience that generates an emotional state in the user.
Search the internet and you’ll find that Functional Programming is a paradigm that’s dominated the last ten years of software development. Google built their entire company on the basis of the Map-Reduce-Filter Function.
The function allows computer scientists to look at everything as a process, like Whitehead and Heraclitus did. Computer Scientists that see everything as a Function are called Functional Programmers. Their opposites, Object-Oriented Programmers would be very much in agreement with Democritus and Aristotle; objects are the atoms of software development.
An actual by virtue of all its accidents.
- Whitehead
QUIZ
What did Democritus think the most fundamental unit of nature was?
What did Pythagoras think the most fundamental unit of nature was?
In contrast, what did Heraclitus think the most fundamental force of nature was?
What does a function do? What are the three components of a function?
Pick your favourite recipe. Now, write down the inputs, processes, and output generated by this recipe.