loading...

If Tools Were People

wolfadex profile image Wolfgang Schuster ・3 min read

I often think about what the personalities of tools would be if they were people. For example, my air fryer gives a cheery little tune when the timer is done, like a friend inviting you to dinner. Compare this with the buzzing sound the alarm on a dryer makes. It feels harsh and repelling, like someone scolding me for not having done the laundry sooner.

So, what about our development tools? Well for many of us our communication is through text messages. Those could take the form of error messages, or completion messages when the tool is done running.

Take Rust's cargo. To me cargo feels like a nice coworker, the kind you want to pair on with challenging tasks. They might take awhile to look over all your code but when they find something that looks wrong they can point you directly to it and even give some suggestions for maybe how to fix it. Sometimes they digress into really complex topics, but they're still there to help you get the job done.

Javascript is the near exact opposite though. When working with my coworker Javascript I often would rather not be pairing. When I make a mistake in my code they often wait until I try to use it before they even bother to mention a mistake I made. Then when they finally do let me know about my mistake, it's like talking with a child. Sometimes they just blurt out ERROR but won't tell me why or where. If they do tell me where it's not where I made the mistake. They give me a line number in some maybe related file and say, "Good luck, I hope you can find it." before walking away.

My favorite person to work with by far is Elm. When I make mistakes around Elm, they politely tell me exactly where I went astray and off multiple suggestions for how to fix it. They just point to the actual code and say, "Pardon me, I see you wrote this but I think maybe you meant to write one of these other options." They even take into account that I might be new to all of this as well, and will give hints about how they do things a little differently and it's ok to be learning the different approach. One of my other favorite things about this coworker, they let me know right away when my code is off. They don't wait for me to try and use it and they don't have to sit and think for minutes about what I'm writing. They sit there with me through the whole process until my app is all done.

This isn't to say that everyone should be Elm. There are many tasks where I need my coworker Rust to help because Elm doesn't understand what needs to be done, and that's cool! Just like real people, we all have different skills that we excel at. I would like it though if all of our tools were a bit more kind. If they were a bit more like Rust and Elm, and a bit less like Javascript. The personalities of our tools should mirror the personalities of the real people we want to work with.

Discussion

pic
Editor guide