Down with Dependence!
March 28, 2012 Ted Holt
ACME Software has just released version 1.0 of the DWIM (Do What I Mean) utility. Placing the DWIM command in your CL programs (or calling the program counterpart from programs written in other languages) will solve all your problems, because the computer will stop doing what you tell it to do and do what you intended for it to do instead. Before you start adding calls to DWIM to your programs, you might want to ponder a few questions.
If your code is laden with multitudinous calls to DWIM, you may find yourself locked into software that you don’t want to run.
Such a situation is called vendor lock-in, and you can avoid it by placing a program of your own (called an isolation layer) between your applications and the vendor software. In the case of DWIM, you could create a program called MYDWIM and a CL command–DOMYDWIM–to run it. All of your programs would call MYDWIM, which would call DWIM. If you decide to replace DWIM with another vendor’s software, you need modify only one program, one that you wrote and control.
In the debate over whether to build it or buy it, I tend to favor the latter. Licensing someone else’s software usually means I get software that I don’t have the time or ability to write, and in the case of software that I could write myself, third-party software usually costs less than it would cost me in time and money. But I have regretted not including an isolation layer when using other companies’ software. Think twice before locking yourself into any vendor’s software.