It took a photographer, the insightful Craig Mod, to clearly articulate both the issue and the solution in software development.
Under Tools and Craft, Craig wrote;
Over the last decade, my rule as a creator — be it as a programmer, writer, designer or photographer — has been to use the simplest possible tool for the job. Use the simplest tool until you breach its potential. If you think you’re using the simplest tool and find one simpler yet, switch to that.
This. I absolutely have and live this rule.
Connected to that rule of simplicity is a bias toward constraint. I’ve always shot with one lens. Obsessed over a single type of film. Worked for years with one type family. One specific CMS. A single scripting language. I am deeply suspicious of technology and find the easiest way to keep from creating is to trick yourself into believing some other tool — just that shiny thing over there — will make all the difference in how you work.
The tech community is obsessed with “that shiny thing over there”, and the software development community partiularly so. They regularly conflate tools and craft. Because they’ve internalised their descisions, they attack those who don’t make the same choices. I’m looking pointedly at the aggresive fervour of Ruby on Rails enthusiasts and Linux On The Desktop zealots.
The photographic community with it’s combination of lenses and cameras, lighting setups and associated gear has been doing this much longer than us. And they’re doing it better - largely they don’t care about what was used to get a shot (unless they’re attempting to create something similair).
They care about the shot.
Their focus (pardon the pun) is on the output not the tools.
A good developer, a good designer, can use any tools. But they’ll also have their favourite tools, which may not be your favourite tools. Yet their choices are as completely as valid as your own.
A photographer may use Pixelmator instead of Photoshop, they may use iPhoto instead of Aperture. No one cares! Their peers are focused on what their output looks like.
A cinematographer shoots a movie. Was it shot on a Panovision camera, or an Arri? A Red or an iPhone? No one cares as long as it connected the audience with the subject.
Ultimately, software development is the same. No one should care about the tool as long as it connects the audience with the subject.
I leave you with this final quote from Craig to think about.
My belief is is much simpler: craft inhabits whatever medium or tool you work with, if you let it.