Programming languages are not tools

The right tool for the job

How often have you heard that when someone is making a point about a programming language, or particularly a library or framework?

I think its a flawed analogy.

Tools rarely have a lasting effect on the finished item. Whether someone chooses DeWalt or Makita in the world of combi drills, or Le Cruset or Tefal pots and pans, the end result will be near enough identical.

Not only will they have minimal impact on the end result, they can be swapped out at will during the process and again, will have no impact on the end result.

Tools:

iTerm2 and Bash: Terminal Emulator Tools

Programming languages are more like materials, or ingredients.

If you choose Django to write a web application, you’ll almost certainly end up with a finished product with different characteristics than if you’d written the same in NodeJS. The UI might be similar, but under the hood the mechanics will be different. So what? So, the performance characteristics will be different. Making upgrades and changes will require different methods. You’ll need people with different skills. You can’t decide to change without starting from scratch.

The programming language you choose will leave much deeper roots in a project than simply “picking up a tool”.