Why dotfiles?

I’ve learned a valuable lesson recently… a .bowerrc file in a parent of a parent of a parent folder can have adverse effects on what I’m doing n folders deep. It took me an hour or so of frustrated Google searches and a half dozen started (but thankfully never submitted) github issue drafts before I finally chased down the rogue dotfile sitting happily upon it’s root folder perch. That dotfile, erroneously created there during a yeoman mishap was causing bower to install my bower components in a folder other than what I was expecting and I could not figure out why.

So all of this got me thinking… what is the point of dotfiles in development? What’s the point? They are hidden for the 8% of us developing on *nix systems and there out in the open for the other 92%. So really, who are we hiding these files from? Had this .bowerrc been anything but hidden I would have questioned its existence there in my root folder long ago, but instead it lurked there causing untold headaches for lord knows how long. I’ve battled for so long with what I thought were weak yeoman generators… what if it wasn’t the generators? What if it was my rogue .bowerrc?

Anyhow, there is no point to this rant other than to say why… why as developers do we think it’s cute to hide app configs in dotfiles? It’s dumb. It’s a stupid practice that has no value. Stop it.

If you, like me, are a web developer on a Mac using things like npm, yeoman, vim, phonegap, git, heroku, etc… try going into the root of your user folder and list all items with ls -a. Here is what mine looks like. It’s no wonder I lost a .bowerrc in there: