Warn This post is not intend to argue any programming language. Barely related, it would be human language.

Before you continue to read, I should warn you first.

The following context may require a little foundation knowledge of functional programming and Swift, but not necessary.

For someone only care about some explanation and advise of abstraction I made, you can jump to that part directly, it's for everyone.

Let's dance.


Let's recall the monad concept in functional programming paradigm first.

Monad, is an abstraction of handling chains of function take an uncertain status as input and return in various status output.

It's nothing but a concept.

Let's see how somebody introduce it.

'Imagine if f(x) can return a real number of nothing, how can we process it to another function that will only take a valid number in a simple and logical code? The answer is monad,hahaha.' Some of them say.
But let's look at how Apple say.

They introduce the same idea with 2 words that most of you may understand even you're not a developer - " Optional Chaining ".

It's not the whole world of monad, but it bring out the main idea of monad to everyone.

A better wording can make an abstraction a lot better.

The very first thing you would like to ask might be - why would we abstract things.

Abstraction actually help us thinking on different levels (I don't mean always higher, it's on every levels).

It help us to communicate with the idea self but not the principles when not everyone can understand the same thing on the same level. An example will help us to understand it better.

Let's jump to your company now.


Indeed, the departments in your company is already an abstraction.

Does everyone understanding the routine of Marketing?

No.

Only the marketing guys know what they do. But all of us have a crystal clear idea that Marketing is to increase sales.

It's an abstraction.

Now the boss only have to give orders of the goals he/she would like to achieve and the budget he/she want.

The rest? Who the king care?

The marketing directors do nearly the same thing the boss does.

They pass the order to the teams under them and say, ' I want a TV Ad that could blablabla...' and go back to their hot coffee slowly.

Then the team told one of the big 4 ....


It's straight forward, right?

Good name. Thats all.

You should admit, Apple is so good at it.

Many people misunderstand their naming purpose.

They think the strategy of Apple name a thing is to make it looked high-tech, but the truth is on the opposite, they made it low-tech.

It's not an easy move for many people.

They want to show off how pioneer they are, how edge leading they are.

What they often do is naming a combination of biologically functional multitasking creature as "Bizoniar",

but we all know

it's just "human liked"

What a good naming is?

You won't use "a combination of biologically functional multitasking creature" to introduce an idea to the public, you shouldn't use "Bizoniar" also.

You use "human liked". Actually, we all knew the reason behind and which mean we have the idea in our brain already.

A good naming, is to reduce the cost of the critical mass to understand your idea.