Microsoft Developing Dynamic API Detection Technology

APIs are an essential piece of software technology, and they play a major part in making the various hardware components and software programs we use work together. Periodically, new APIs are created as a means of increasing efficiency and enabling more advanced features, but the side effect of designing new programs to use those APIs can limit software compatibility with systems that don't have them. This has resulted in some problems in the past, but Microsoft is developing a new technology in order to resolve these issues.

This could be quite time consuming, and often wouldn't cover all potential backup APIs. Program developers will need to tweak their code a bit in order to take advantage of this new technology, but now with a single line of code, they will be able to point to all potential backup APIs, making their work easier, too.

Michael Justin Allen Sexton is a Contributing Writer for Tom's Hardware US. He covers hardware component news, specializing in CPUs and motherboards.
  • robax91
    Sounds great if they can pull it off.
    Reply
  • rcmaniac25
    That's interesting.

    The upside is failover cases as mentioned in the article and seemingly automatic upgrades as stuff changes (AKA, code deprecation).

    My worry is if this "contract" (used differently from "Design by contract") means that API usage can be swapped. What if I, say, add an ad to my app. What's to stop this from going "you seem to be using an ad API that may be slow and buggy, I'll swap out that API with my own which is fast an efficient... but you won't get the ad revenue"? You may never know (enough OSes have a "is debugger attached" check with certain high-use functions). Is it likely? No... but unless the source code is available, or they forgot to put the "is debugger attached" check before the function swap, what's letting you know that it happens?

    If that is not the case, great.
    Reply
  • mavikt
    This just lead me to think of May’s Law: “Software efficiency halves every 18 months, compensating for Moore’s Law.”
    Reply
  • jprahman
    So this is basically an API for APIs...
    Reply
  • natcparis
    I'm really wondering if this is really the right way to go for Microsoft.
    Reply
  • bit_user
    This is an interesting counterpoint to their traditional "embrace and extend" philosophy, whereby Microsoft implements some standard API or format, and extends it with proprietary features that lock apps into their implementation. My guess is that they want to make it easy to swap in their implementation for apps written against competing APIs.

    As a shear matter of practicality, I wonder how general it'll really be. Perhaps this is some marketing spin, when the reality is that some MS employees will be hand-coding the actual translation layer for each API. I actually hope that's the case, because any developer who's ever ported anything from one API to another will tell you that they're rarely identical in function. Constructs in one API nearly always have slightly different semantics and work in slightly different ways than comparable elements of similar APIs. So, color me skeptical.
    Reply