Perhaps the reason why you find it hard do find the âlogicâ of a component is that there (usually) IS NO (generic) LOGICAL path to find it.
The components in many (most?) cases are abstract (âgenericâ) approaches to multiple more specific problems which can look very different from each other (but still belong to the same type or category of problem)
EXAMPLE
An example to illustrate why thereâs âno logicâ between an abstraction and one (of many possible) implementation of an abstraction, think of a list of household utensils (in Swedish there is a single word representing this abstraction, âhusgerĂ„dâ), which can be a:
- Cup.
- Plate.
Now, lets pause for a second and try to find the âlogicâ between a Cup and a Plate. There is none.
But we can continue adding to the list:
- Can.
- Spoon.
- Pot.
And thereâs still no âlogicâ between the items in the list (they are related, but the relation is not âlogicalâ). Like, from saying âspoonâ doesnât follow âpotâ, aso.
WRONG WAY
But if insisting on trying to find the âlogicâ for finding a âspoonâ or âpotâ without starting from what problem/use case you have, then you are probably approaching the problem from the wrong direction (bottom-up).
Therefore, lets instead flip the problem the other way around (top down) and try from another angle. I have a problem, namely I want to cook a meal and serve it to my family. What (âcomponentsâ) do I need in order to do that?
CONCEPT ANALYSIS
Lets not start with mentioning and endless list of⊠(all those possible tools or utensils) for making this meal. Lets instead be smart and simply say that we need a number of âhousehold utensilsâ (the abstraction of a wide variety of âtypical things used in a kitchenâ).
Understanding the smartness in lumping together a variety of things into âhigher abstractionsâ (abstracter terms) yakes some concept analysis, which means that you truly and actually understand WHAT the different utensils ARE, and what they are useful for, and thus why they belong together in this list.
SOLVING ON A HIGHER LEVEL
Now, Grasshopper went for NOT creating every kind of specific âhousehold utensilâ thinkable, instead it aimed at finding a more (the most?) abstract solution (component) which can solve entire GROUPS OF PROBLEMS. For comparison with the kitchen tools example, the designer of Grasshopper would skip creating very specific solutions (components) like various Knifes, different size Spoons and a plethora of different forms and sizes of Pots when the more generic term (term/component) âhousehold utensilâ would do the job.
Summary: Think in more generic terms about your problem. Solve it on a âhigher level of abstractionâ
EXAMPLE
An example again: If you need to rotate something to the Left, DO NOT look for a âleft-rotatorâ, only look for the common concept for rotating stuff in ANY direction, namely âRotateâ (although there actually exist different ways/components for defining rotations, but searching for âRotateâ in Grasshopper will list them for you )this would resemble searching for âhousehold utensilsâ in the example above), and with the list of potential specific tools for your problem you can then to try the different tools to find which specific one fits your problem the best.
DEFINING KNOWLEDGE
Generally speaking, knowing the meaning of an abstraction (or an abstract term, or concept), essentially means understanding why âa group of more specific variants lumped togetherâ (of whatever kind).
Capability to deal with abstractions (high level concepts) comes touches on the definition of what knowledge actually âisâ (about something), in the sense of true and deep âunderstanding of conceptsâ (like what spoons and plates and pots are good for, in a kitchen, that is). Even the definition of knowledge itself has an abstract term lumping the field of âunderstanding knowledgeâ together(âŠ), namely âepistemologyâ (Wikipedia: Epistemology - Wikipedia).
PHILOSOPHY & ANALYSIS PARALYSIS
Sorry for a long post, but if you want to know all about a componentâs background reasoning, a component which you donât even know a category name for (or can guesstimate that should probably exist for your type of problem), then you may need to ponder also upon why your bottom-up approach doesnât work. Try top-down instead. Guesstimate what kind of GENERIC concept a potential component would belong to, and you gradually learn how to find a suitable one.
Is the problem of finding the right tool (component) for the job related to philosophy? Yes it is. And with that comes the risk for getting trapped in âanalysis paralysisâ. Hands on experimenting will probably be a faster way forward.
//Rolf