I’m working with Websphere Portal and Oracle. On two occasions last week, I found that the most direct way to code a particular solution involved using API’s provided by IBM and Oracle. However, I realize every line of code written using these vendor API’s renders us a little bit more locked in to these systems (particularly the portal, which we only implemented recently).
How would you decide whether the benefits of using a vendor API outweigh the costs of being tied (Bound? Shackled? Fettered? Pinioned?) to a particular product?
Obviously a very personal / specific question…
One thing to remember however, is that you can offset some the risks of being “held prisoner” by wrapping whatever proprietary API is supplied into your own defined API. In doing so you will not only decouple your own code from the 3rd party API, but you may also make it easier to write your own logic, by streamlining the 3rd party API to the minimal set of features you desire. A small risk, risk with this minimalist approach, however, is that you may sometimes “miss-out” on some cool features supplied by the 3rd party library/API.