About the author
For me, I’ll choose the best tool to use, and in this case, for me, it is PowerShell. I’ve used bash over many years, and PowerShell only less than a few weeks.
But using emotions to qualify your like/dislike of a particular tool without using the tool objectively may well boil down to certain aspects of a person’s personality.
Why use a particular tool then?
The simplest answer is often the best: personal preference. Why do people prefer one kind of car over another? There are many different kinds of cars, but they all serve basically the same purpose and are built pretty much the same way. Some believe that the car they drive is an expression of their personality or status some believe their car is actually technically superior in manufacture to his neighbour’s; some believe their car is an unreliable pile of junk and modify their daily pattern to accommodate their paranoia. There are many rationalizations for choice, but only one consistent answer: emotion. Personal preference. We prefer what we are comfortable with, or what excites us, or what makes sense to us, individually. And we will rationallize to absurd extremes to justify that emotional choice.
Cognitive psychologists and linguists hold that language not only represents our thoughts, but that the structure of a language can influence the structure of our thoughts, how we think about an issue or visualize an idea. A subtle distinction that can be expressed in a word in one language may require pages in another. If you are using the latter, would you express that nuance regularly, or even at all? No! It’s too much work. The idea doesn’t fit well into your language’s range of expression. Are shells that different from spoken languages? Does a bash user solve a shell problem differently than a PowerShell user? Absolutely! Not only are the syntaxes different, but the data handling concepts behind these shells are fundamentally different as well. Should a Javascript person be forced to write code in Java? Probably not, particularly if the person relates well to Javascript. The cliche here would normally be “Use the right tool for the job” but what many people overlook is that the tool, the thing that solves problems, is not the tool - the critical asset to solving the task objective is the person doing it. The person can be inhibited by ill-fitting tools built for a different view of the world, or the person can be empowered by comfy tools where things make sense and ideas click into place. No two people think alike, so no one tool can be a best fit for everyone.
For best results, always use the right tool for the right person.
* With influences from a departed colleague - Danny Thorpe.
A method pointer is now the same as a global procedure, ie, procedure of object = procedure.