Robert Tamayo


Afraid to Build

In modern software development, there is a tendency to want to seek out a pre-built tool for accomplishing any task. This makes sense when it comes to certain things, but it starts to seem completely ridiculous to me when the principle is applied to everything - especially on the frontend. 

I'm not dismissing the use of third party tools, libraries, frameworks, and so on. Things like Spring Framework and React exist for a reason, and even smaller things like JSON parsing libraries for Java make life much easier. I'm only dismissing the use of third party libraries when they are used to do everything on the frontend.

I've seen widgets, plugins, and libraries used for anything a project needs that involves a bit of coding. If a business requirement is that users need to be able to upload images, then an entire image and file management library is brought in to handle it. File uploads are not difficult to manage, so why does an entire third party library need to be involved? Typically, the answers are a combination of the following: security, UI widgets, React support, ease of development, and reliability/testing. It's assumed that a third party widget is well-tested, but that's simply because all of the users (you) are finding and reporting bugs all the time. If a development team needs React for everything and yet can't even build their own reusable components like this, then maybe it's time to level up. And styling shouldn't take up too much time that third party libraries are brought in to make it easier.

The libraries often work great until required that it doesn't support. In the image uploading example before, there was a need to have the image rotated manually due to metadata on iPhones. It was decided that since the library didn't support it, the user would have to be responsible for stripping the metadata and reuploading the image. But, flipping an image using javascript is easy stuff, and it would have made the technology the customer is paying for seem much better. Technological improvements shouldn't be dismissed simply because a library doesn't do it for you. That's literally what code exists for, so get to work and code.
Leave a Comment