Archive for February, 2011

Just another software blog…

So, I needed a place to store articles, and had not used WordPress before. Who knows where this may lead? Settle back, and enjoy the ride.

Categories: Uncategorized

A COM Rant

COM. To know it is to love/hate it.

From COM we gain the ability to access tools in a language-agnostic way. In-process or out-of-process servers, servers running as services, servers which provide the interface to exotic hardware. In theory, it’s great. In practice, it can be very frustrating.

Vendors: Just because you publish a COM interface doesn’t mean you’re done. In fact, COM tends to be in greater need of documentation than many other technologies. Sample applications can help, but they also will be written in a programming language which may not be the one your customer prefers. We all know you won’t write the apps in multiple languages—even though this would be a terrific method of enhancing the documentation—and no sample app will ever obviate the need for a manual which presents the design philosophy. Even a single line of information about each method call is better than none.

Developers: Just because you have toughed your way through numerous adventures with ill-conceived and undocumented interfaces is no reason to put up with more of the same. Agitate for documentation, where none is given, or for better, where some exists.

An aside: Why is it that so few developers, despite living in a world where syntax is everything, and compilers utterly unforgiving, give so little attention to the quality of their prose? In documentation, as in code, syntax matters! Clarity is essential. A compiler may put up with spaghetti code, but most readers will soon tire of misspelled words, ambiguous and incorrect antecedents, disagreement of number, and confused tense.

It has been my experience that projects using COM are invariably plagued with confusion at the front end, and although they usually resolve well in the end, the cost in time, money, and frustration is larger than with more traditional solutions. As I am at the front end of such a project now, wrestling with wholly inadequate documentation, insufficient sample applications, and no documentation of design philosophy, I will have more to say. Stay tuned….

Categories: COM