Who said 3 was the magic number? Microsoft previews new Azure SDK in 4 programming languages

Microsoft's new code libraries for programming its Azure cloud address a significant problem for developers: the inconsistency between the huge numbers of supporting libraries.

The issue has arisen after the rapid development of new features on Azure over a stretch of several years. The new code libraries have started with four languages and four services. The supported languages are Python, Java, JavaScript and C#/.NET. The initial services are Azure Storage, Cosmos DB, Key Vault, and Event Hubs.

There is also a cloud-era variant of DLL Hell, where dependencies between libraries for different services can conflict so that developers have to juggle with various versions to find a set that work together.

Another issue is that different software teams have taken different approaches to designing their libraries, causing friction for coders.

"We have been learning what patterns and practices were critical to developer productivity around these services," said Microsoft principal group software engineering manager Peter Marcu.

Marcu outlined several goals for the new SDK, including easy to use APIs, APIs that feel native to the target language and ecosystem, and a high standard of documentation and samples.

This last is a key requirement. Microsoft's samples vary from those which are too simplistic to be of any use, to projects that are so large and complex that they obscure the basics of how to use an API (Application Programming Interface). In other cases, important information may be hidden in a blog post or forum discussion. It is not easy to get this right, but the intent is welcome.

Microsoft's approach is to create a set of guidelines for each of the four languages, like that for .NET here. A point to note about the .NET guidelines is the company's commitment to cross-platform:

There is always a downside. In this case, it is compatibility. Marcu said:

Most Azure services also have a REST API which you can use with any language. Each upgrade to the REST API may introduce breaking changes, but often calls that specify the previous version of the API continue to work. This means that breaking changes may not be as bad as they sound: existing code still runs, until you need some feature which requires a newer version. In some cases newer APIs offer better performance too.

The REST API is also the key to supporting languages other than those on Microsoft's list. If for example you want to call an Azure API from Google's Dart, used by the popular Flutter framework, you will need to wrap the REST API.

Some languages may be added to the new Azure SDK later. Asked whether the SDK for Go will be brought under the Azure SDK umbrella, Marcu tweeted "Probably will at some point".

There are hundreds of Azure services and it will be a long time before everything is covered by the Azure SDK, which is today only in preview. A welcome effort, but there is plenty more to do. ®

Software News

Oct 16
Includes setting to turn ads off - stop hissing at the back, Google
Oct 15
Unless you ask really nicely
Oct 15
A confusing announcement from the cloud giant
Oct 15
Choo choo mothertruckers
Oct 14
You want this web tech to be independent? Sure, we'll just put it in an org we bankroll
Oct 14
RoundupApple flogs Microsoft hardware and Puppet's CTO has a... notepad.exe tattoo?
Oct 14
And a release date - sort of