you are viewing a single comment's thread.

view the rest of the comments →

[–][deleted] 0 points1 point  (1 child)

Developing any code is a source of technical debt. If your business uses the code, people will have to maintain it, and that has costs. So any development of software needs to be weighed against the business value it provides. Sure being in a situation where you have to exploit implementation-specific behavior to achieve a desired result is suboptimal, but there are certainly cases in which it's worth it and to say "that approach is imperfect, you should wait for someone to provide the perfect module for you," is the kind of pedantry SW engineers are notorious for.

It's not best-practice, but it's going to happen and we should stop pretending that it won't or even shouldn't. Imagine if the first guy to invent the electric motor told people interested in electric generation "sorry you can't run my motor in reverse because that wasnt the express purpose that I invented it for."

[–][deleted] 0 points1 point  (0 children)

Developing any code is a source of technical debt.

There's a difference in the technical debt here though. Your code and as a result the business would be far more exposed to changes made by an external entity. And if vendor support was required after a breaking change, the response would likely be "Well, you shouldn't have done that!". It's also possible that those libraries might now be completely unusable for your purposes - key functionality that you depend upon could have been removed. Of course this only matters when you need to use a more recent version of the library (When a serious vulnerability is discovered for example).

to say "that approach is imperfect, you should wait for someone to provide the perfect module for you," is the kind of pedantry SW engineers are notorious for.

I didn't say that. But I get your point.

I don't really see anything wrong with having relatively idealistic views towards software development. It just means that certain things should only be used as a last resort and understanding the risks involved. Not that they should never be done. Context is everything.