Microsoft has claimed that the new Windows 8.1 has 5000 additional APIs. Is this good?
If you have been working on WinRT apps you will know that everything goes smoothly until you hit the missing API or control problem. WinRT is a new layer that replaces the Win32 API that has grown up over the years and which most would agree is something of a mess. Every programmer likes the opportunity to start over with some fresh and lean - it's why we throw so much stuff away rather than reuse. So it must be with WinRT but it doesn't take a genius to work out the WinRT being relativity young also means that there have to be lots of missing features. Of course Microsoft initially tells you that it's all fine and WinRT is feature complete but, after a year it changes its tune so that it can boast of another 5000 APIs at the 2013 Build conference.
So is this something to shout about?
The problem is that the actual 5000 APIs weren't listed at Build, but we can assume that they correspond to the APIs listed at the Windows Dev Center under Windows Store Apps. Yes, the new APIs are all WinRT apps - you can't expect much for desktop development using Win32.
You can get an overview from the following promo video:
Taking a quick look through the list of new APIs you can see that some of the addition are pretty basic and serve to highlight the fact that WinRT was far from feature complete.
The most important, and which you think the most important are depends on what you are trying to do, are probably the updates to the basic I/O facilities.
In Networking we now have a new HTTP client API, real time connectivity, WiFi direct and background transfer options. The HTTP request filtering can also help reduce network charges. Multimedia now includes a new media stream source, more codecs, updates to audio/video capture and improvements to the HTML5 media element. File handling now provides a better file picker, parent folder retrieval, comparing files and SkyDrive support.
At a lower level you can now access USB HID and general USB devices directly. However there are security restrictions and in particular you can only work with devices that have drivers supplied as part of Window 8.1. Also new is support for Point Of Service POS devices - things like bar code scanners - and Bluetooth.
Also welcome is the addition of an image scanner API build on top of Windows WIA - and there is a new API to allow you to work with 3D printers.
DirectX support is also improved. There are new APIs for working with HLSL Shaders, GPU overlay, frame buffer scaling, and a range of features that can be used to make things faster.
The rest of the new APIs are mostly concerned with what you might call admin. There is a new set of app packaging features and the Store API lets you do things like manage in-app purchases better. The security API now includes fingerprint authentication, smartcards and virtual smartcards.
You can see the full list of changes and details at the Dev-Center but essentially there are a lot of small API additions and up-dates. The biggest omission in the WinRT API is support for database connectivity and Windows 8.1 doesn't seem to have done anything to help.
So what is still missing - we could do with a list of API features that need to be addressed in the next upgrade.