Using the right tool for the job

In the tech industry, there’s the concept of using the right tool for the job.

But what does right tool mean anyway? If you compare tool X and Y, what attributes should X contain to make it superior than Y at a particular task?

Some people say that the right tool is the one that uses the least resources. So to build a web app, use Go . To build a desktop app, use native libraries and languages provided by Microsoft or Apple. To build mobile apps, use Kotlin or Swift.

You get the idea.

Other people say that the right tool is the one that was built specifically for the task at hand. Instead of using Go to build a web app, use PHP . Instead of writing a shell script in Ruby , use Bash.

Which one is correct?

I thought about it and decided that they’re both wrong. Because by the above definitions, people wouldn’t be writing web apps using Django or Ruby on Rails because the underlying languages were designed as Bash replacements.

So I used another way to determine the right tool — I looked at my gardening hobby…

While gardening, I have various tools at my disposal:

  • Hoe
  • Fork
  • Hand Rake
  • And more

When choosing a tool, I use the one that would make my life easier. That’s all I care about.

I never ask “Hmm, what tool would the soil prefer in this situation?”

I always use the tool that would require the least amount of energy on my part. Sometimes it might be quicker to use a hoe but I will choose the fork if it makes the task easier for me.

And so my definition of the right tool is the one that makes your life easier as a developer. So, definitely use Ruby instead of Bash to write your shell scripts.

When it comes to programming, being selfish is good because the computer doesn’t care anyway.