Are we all library developers?
I’m not sure exactly what prompted it, but I found myself a couple of times debating the topic:
Is application development the same as library development?
I’ve mostly been on the camp that it’s not. I think mostly because it felt different to me. But quite a few times I had a hard time putting my finger on why. It’s still writing code. It still has goals of what that code is meant to support / achieve. Even if when doing open source those goals are quite different, when doing closed source library they overlap more.
So is it different?
It still feels different to me.
Why, though?
The most fundamental difference that I have in mind right now is how other developers will interact with the code that I write.
When I write library code, I expect most of the interaction with my code to be done using the APIs and mostly treating the internals as a blackbox. They’re there for you to dive into, but you’ll avoid it unless really necessary.
When I write application code, I expect most of the interaction with my code will be trying to read it, in order to iterate on it or debug it. Instead of shying away from reading and understanding it, you’ll take the default stance of using it for gathering context related to what you’re trying to achieve.
But then again, I still write my code to achieve its purpose and taking into account the preferences of those working with me. So the distinction might just be in my head and not quite real. Go figure.