No more DLL based on cloud or library errors, votes Redmond beastie
Azure Cosmos DB, one of the services covered by a new Azure SDK now in preview
New libraries Microsoft code for programming your Azure cloud addresses a major problem for developers: the inconsistency between the large number of support libraries.
There is also a variant of the cloud age of DLL Hell, where the dependencies between libraries for different services can come into conflict, so developers must juggle several versions. to find a set that works together.
Another problem is that different software teams have adopted different approaches to design their libraries, which generates friction for programmers.
"We have been learning what patterns and practices were critical to the productivity of the developers of these services," said Peter Marcu, chief software engineering manager of the Microsoft group.
Marcu described several goals for the new SDK, including easy-to-use APIs, APIs that seem native to the ecosystem and the target language, and a high level of documentation and
The latter is a key requirement. Microsoft's examples range from those that are too simplistic to be of any use, to projects that are so large and complex that they mask the basics of how to use an API (Application Programming Interface). In other cases, important information may be hidden in a blog post or in a discussion forum. It is not easy to do well, but the intention is welcome.
Microsoft's approach is to create a set of guidelines for each of the four languages, such as the .NET one here. One point to keep in mind about the .NET guidelines is the company's commitment to cross-platform:
The use of a native or platform-specific code requires an exception from the review panel … Take a test that the sample applications run as expected in Linux, and macOS.
There is always a problem. In this case, it is compatibility. Marcu said:
In some cases we had to make last minute changes to arrive at a better base. We believe that aligning on that basis will help meet the productivity objectives described above, and once it is established, we will intend to provide a high degree of compatibility. As a final note on compatibility, we analyze the dependencies we take and try to minimize them as much as possible to reduce future incompatibilities and complexities of the versions that should facilitate the updating of libraries and the use of other pieces of software together with these libraries.  Most Azure services also have a REST API that you can use with any language. Each update of the REST API can introduce last minute changes, but often the calls that specify the previous version of the API still work. This means that breaking the changes may not be as bad as it sounds: the existing code is still running, until you need some function that requires a newer version. In some cases, the newer APIs also offer better performance.
The REST API is also the key to support languages other than those in the Microsoft list. If, for example, you want to call an Azure API from the Google Dart, used by the popular Flutter framework, you must adjust the REST API.
Some languages may be added to the new Azure SDK later. When asked if the SDK for Go will be placed under the umbrella of the Azure SDK, Marcu tweeted "Probably will at some time."
There are hundreds of Azure services and it will be a long time before everything is ready. covered by the Azure SDK, which today is only in preview. A welcome effort, but there is much more to do. ®
Balance consumerization and corporate control.