Case sensitive directories now possible in Windows Explorer as well as in the Windows Subsystem for Linux

Experienced Windows users will know that occasionally you hit a problem with case sensitivity in file names. The problem is that on Linux, you can have files whose name differs only in case, such as MyFile.txt and myfile.txt. Windows on the other hand will not normally let you do this and the second will overwrite the first.

The latest build of Windows 10 (1803, or the April 2018 Update) has a fix for this. You can now set directories to be case-sensitive using the fsutil command line utility:

fsutil.exe file setCaseSensitiveInfo <path> enable

You can then enjoy case sensitivity even in Windows Explorer:

image

This is not particularly useful in Windows. In fact, it is probably a bad idea since most Windows applications presume case-insensitivity. I found that using Notepad on my case-insensitive directory I soon hit bugs. I double-click a file, edit, save, and get this:

image

Press F5 and it sorts itself out.

Developers may have written applications where a file is specified with different case in different places. Everything is fine; it is the same file. Then you enable case-sensitivity and it breaks, possibly with unpredictable behaviour where the application does not actually crash, but gives wrong results (which is worse).

If you are using WSL though, you may well want case-sensitivity. There are even applications which will not compile without it, because there are different files in the source whose name differs only by case. Therefore, WSL has always supported case-sensitivity by default. However, Windows did not recognize this so you had to use this feature only from WSL.

In the new version this has changed and when you create a directory in WSL it will be case-sensitive in both WSL and Windows.

There is a snag. In the full explanation here there is an explanation of how to adjust this behaviour using /etc/wsl.conf and also the warning:

Any directories you created with WSL before build 17093 will not be treated as case sensitive anymore. To fix this, use fsutil.exe to mark your existing directories as case sensitive.

Hmm. If you are wondering why that application will not compile any more, this could be the reason. You can set it back to the old behaviour if you want.

Should Microsoft have made the file system case-sensitive? Possibly, though it is one of those things where it is very difficult to change the existing behaviour, for the reasons stated above. Note that Windows NT has always supported case-sensitive file names, but the feature is in effect disabled for compatibility reasons. It is poor for usability, having files whose names differ only in case which are therefore easily confused. So I am not sure. Being able to switch it on selectively is nice though.

OnePlus 6: another contender for best value premium smartphone

Hot on the heels of the Honor 10 AI comes the OnePlus 6, another example of a high-end smartphone at an affordable price.

image

The OnePlus 6 has a 6.28″ display and is powered by a Qualcomm Snapdragon 845: 4 x2.8 GHz plus 4×1.7 GHz Kryo CPU cores and Adreno 630 GPU. The 845 also features the Hexagon 685 DSP including the Snapdragon Neural Processing Engine so it can make its own claim to AI processing.

Glass body, notch, face unlock, fingerprint sensor on the rear where it belongs, and a 16MP + 20MP rear camera.

The camera is interesting. There are three cameras, two rear and one front, all based on Sony sensors. Unlike the Honor 10, you get OIS (Optical Image Stabilization) to help reduce camera shake. Pixel count is slightly lower than on the Honor 10 though.

Another benefit of the OnePlus 6 is water-resistance. It will survive a quick dunk, apparently, but not immersion.

Prices are a tad higher than for an Honor 10 but still well below a Samsung S9 (£739) though of course the price you actually pay may vary:

6GB RAM + 64GB Storage £469
8GB RAM + 128GB Storage £519
8GB RAM + 256GB Storage £569

Honor 10 AI smartphone launched in London, and here are my first impressions

The Honor 10 “AI” has been launched in London, and is on sale now either on contract with Three (exclusively), or unlocked from major retailers. Price is from £31 pay monthly (free handset), or SIM-free at £399.99.

image

Why would you buy an Honor 10? Mainly because it is a high-end phone at a competitive price, especially if photography is important to you. As far as I can tell, Honor (which is a brand of Huawei) offers the best value of any major smartphone brand.

How is the Honor brand differentiated from Huawei? When I first came across the brand, it was focused on a cost-conscious, fashion-conscious youth market, and direct selling rather than a big high street presence. It is a consumer brand whereas Huawei is business and consumer. At the London launch, the consumer focus is still evident, but I got the impression that the company is broadening its reach, and the deal with Three and sale through other major retailers shows that Honor does now want to be on the high street.

image

What follows is a quick first impression. At the launch, Honor made a big deal of the phone’s multi-layer glass body, which gives a 3D radiant effect as you view the rear of the phone. I quite like the design but in this respect it is not really all that different from the glass body of the (excellent) Honor 8, launched in 2016. I also wonder how often it will end up hidden by a case. The Honor 10 AI is supplied with a transparent gel case, and even this spoils the effect somewhat.

The display is great through, bright and high resolution. Reflectivity is a problem, but that is true of most phones. Notable is that by default there is a notch at the top around the front camera, but that you can disable this in settings. I think the notch (on this or any phone) is an ugly feature and was quick to disable it. Unfortunately screenshots do not show the notch so you will have to make do with my snaps from another phone:

With notch:

image

Without notch:

image

The camera specs are outstanding, with dual rear lens 24MP + 16MP, and 24MP front. At the launch at least half the presentation was devoted to the photography, and in particular the “AI” feature. The Honor 10 has an NPU (Neural Processing Unit), which is hardware acceleration for processes involved in image recognition. All smartphone cameras do a ton of work in software to optimize images, but the Honor 10 should be faster and use less power than most rivals thanks to the NPU. The AI works in several ways. If it recognises the photo as one of around 500 “scenarios”, it will optimize for that scenario. At a detail level, image recognition will segment a picture into objects it recognises, such as sky, buildings, people and so on, and optimize accordingly. For example, people get high priority, and especially the person who is the subject of a portrait. It will also segment the image of a person into hair, eyes, mouth and so on, for further optimisation.

What is optimisation? This is the key question. One of the AI effects is bokeh (blurring the background) which can be a nice way to make a portrait. On the other hand, if you take a picture of someone with the Niagara Falls in the background, do you really want it blurred to streaks of grey so that the picture might have been taken anywhere? It is a problem, and sometimes the AI will make your picture worse. I am reserving judgment on this, but will do another post on the subject after more hands-on.

Of course you can disable the AI, and in the Pro camera mode you can capture RAW images, so this is a strong mobile for photography even if you do not like the AI aspect. I have taken a few snaps and been impressed with the clarity and detail.

24MP for the front camera is exceptional so if selfies are your thing this is a good choice.

You have various options for unlocking the device: PIN, password, pattern swipe, fingerprint, proximity of Bluetooth device, or Face Unlock. The fingerprint reader is on the front, which is a negative for me as I prefer a rear fingerprint reader that lets you grab the device with one hand and instantly unlock. But you can do this anyway with Face Unlock, though Honor warns that this is the least secure option as it might work with a similar face (or possibly a picture). I found the Face Unlock effective, even with or without spectacles.

The fingerprint scanner is behind glass which Honor says helps if your finger is wet.

There are a few compromises. A single speaker means sound is OK but not great; it is fine through headphones or an external speaker though. No wireless charging.

Geekbench scores

image

image

PC Mark scores

image

So how much has performance improved since the Honor 8 in 2016? On PCMark, Work 2.0 performance was 5799 on the Honor 8, 7069 on the 10 (+21%). Geekbench 4 CPU scores go from 5556 multi-core on the 8 to 6636 on the 10 (+19.4%).  The GPU though is more substantially improved, 4728 on the 8 and 8585 on 10 (+81.5%). These figures take no account of the new NPU.

First impressions

I must confess to some disappointment that the only use Honor seems to have found for its NPU is photo enhancement, important though this is. It does not worry me much though. I will report back on the camera, but first impressions are good, and this strikes me as a strong contender as a high-end phone at a mid-range price. 128GB storage is generous.

Spec summary

OS: Android 8.1 “Oreo” with  EMUI (“Emotion UI”) 8.1 user interface

Screen: 5.84″ 19:9, 2280p x 1080p, 432 PPI, Removeable notch

Chipset: Kirin 970 8-core, 4x A73 @ 2.36 GHz, 4x A53 @ 1.84 GHz

Integrated GPU: ARM Mali-G72MP12 746 MHz

Integrated NPU (Neural Processing Unit): Hardware acceleration for machine learning/AI

RAM: 4GB

Storage: 128GB ROM.

Dual SIM: Yes (nano SIM)

NFC: Yes

Sensors: Gravity Sensor, Ambient Light Sensor, Proximity Sensor, Gyroscope, Compass, Fingerprint sensor, infrared sensor, Hall sensor, GPS

WiFi: 802.11 a/b/g/n/ac, 2.4GHz/5GHz

Bluetooth: 4.2

Connections: USB 2.0 Type-C, 3.5mm headphone socket

Frequency bands: 4G LTE TDD: B38/B40/B414G LTE FDD: B1/B3/B5/B7/B8/B19/B203G WCDMA: B1/B2/B5/B8/B6/B192G GSM: B2/B3/B5/B8

Size and weight: 149.6 mm x 71.2 mm  x 7.7 mm, 153g

Battery: 3,400 mAh,  50% charge in 25 minutes. No wireless charging.

Fingerprint sensor: Front, under glass

Face unlock: Yes

Rear camera: Rear: 24MP + 16MP Dual Lens Camera,F1.8 Aperture.

Front camera: 24MP

“An invalid name request was made”: an ugly error from the Windows 10 app platform

I went to open Spotify this morning, installed from the Windows Store, but saw the following error:

image

This is not user friendly. However I have the latest April update of Windows 10 (this may be the reason of course) which can reset and repair apps. Just right-click the app and choose App Settings. I clicked Repair. Got a nice tick. However the same error message.

So I tried Reset. This completely reinstalls the app and resets its settings (annoying). Got a nice tick. Same error message.

image

Figuring this might be worth a blog post, I went to Open Live Writer, also installed from the Store. Oh dear. An invalid name request was made. The name requested cannot be retrieved at this time.

In true Windows style, the actual name requested is hidden, not that I was consciously wanting to retrieve any kind of name. I just want the app to run, and being locally installed, reckon it should just work.

I reverted to the non-Store version of Open Live Writer to make this post.

In the event viewer, I see this:

0x801F0005: Cannot create the Desktop AppX container for package SpotifyAB.SpotifyMusic_1.80.474.0_x86__zpdnekdrzrea0 because an error was encountered configuring the runtime.

Next thing to try: reboot. Everything is fine.

This is ugly though. Something broke multiple apps installed from the Store. I will update if I discover more about the reason for this.

Update: A tweet from Microsoft Lead Program Manager Stefan Wick states that a fix is in the works:

image

What is happening with desktop development on Windows and will WPF be upgraded at last?

Once upon a time all Windows development was desktop development. Then there was web development, but that was a server thing. Then in October 2012 Windows 8 arrived, and it was all about full-screen, touch control and Store-delivered applications that were sandboxed and safe to run. Underneath this there was a new platform-within-a-platform called the Windows Runtime or WinRT (or sometimes Metro). Developing for Windows became a choice: new WinRT platform, or old-style desktop development, the latter remaining necessary if your application needed more features than were available in WinRT, or to run on Windows 7.

Windows 8 failed and was replaced by Windows 10 (July 2015), in large part a return to the desktop. The Start menu returned, and each application again had a window. WinRT lived on though, now rebranded as UWP (Universal Windows Platform). The big selling point was that your UWP app would run on phones, Xbox and HoloLens as well as PCs. It was still locked down, though less so, and still Store-delivered.

Then Microsoft decided to abandon Windows Phone, a decision obvious to Microsoft-watchers in June 2015 when ex-Nokia CEO Stephen Elop left Microsoft, just before the launch of Windows 10, even though Windows Phone was not formally killed off until much later. UWP now had a rather small u (that is, not very universal).

In addition, Microsoft decided that locking down UWP was not the way forward, and opened up more and more Windows APIs to the platform. The distinction between UWP and desktop applications was further blurred by Project Centennial, now known as Desktop Bridge, which lets you wrap desktop applications for Store delivery.

Perhaps the whole WinRT/UWP thing was not such a good idea. A side-effect though of all the focus on UWP was that the old development frameworks, such as Windows Forms (WinForms) and Windows Presentation Foundation (WPF), received little attention – even though they were more widely used. Some Windows 10 APIs were only available in UWP, while other features only worked in WinForms or WPF, giving developers a difficult decision.

The Build 2018 event, which was on last week in Seattle, was the moment Microsoft announced that it would endeavour to undo the damage by bringing UWP and desktop development together. “We’ve taken all the UI stacks and merged them together” said Mike Harsh and Scott Hunter in a session on “Modernizing desktop apps” (BRK3501 if you want to look it up).

According to Harsh and Hunter, Windows desktop application development is increasing, despite the decline of the PC (note that this is hardly a neutral source).

image

So what was actually announced? Here is a quick summary. Note that the announced features are for the most part applicable to future versions of Windows 10. As ever, Build is for the initial announcement. So features are subject to change and will not work yet, other than possibly in pre-release form.

Greater information density in UWP applications. WinRT/UWP was originally designed for touch control, so with lots of white space. Most Windows users though have mouse and keyboard. The spacious UWP layout looked wrong on big desktop displays, and it made porting applications harder. The standard layout is getting less dense, and a new Compact Size, an application setting, will pack more information into the same space.

image

More controls for UWP. New DataGrid, Forms with data validation, Menu bar, and coming in future, Status bar, tab controls and Ribbon. The idea is to make UWP more suitable for line-of-business applications, which accounts for a large part of Windows application development overall.

New Windowing APIs for UWP. WinRT/UWP was designed for full-screen applications, not the popup-dialogs or floating windows possible in desktop applications. Those capabilities are coming though. We will get tool windows, light-dismiss windows (eg type and press Enter), and multiple windows on one thread so that they work like a single application when minimized or cycled through with alt-tab. Coming in future are topmost windows, modal windows, custom title bars, and maybe even MDI (Multiple Document Interface), though this last seems surprising since it is discouraged even in the desktop frameworks.

What many developers will care about more though is new features coming to desktop applications. There are two big announcements.

.NET Core 3.0 will support WinForms and WPF. This is big news, partly because it performs better than the Windows-only .NET Framework, but more important, because it allows side-by-side deployment of the .NET runtime. Even better, a linker will let you deliver a .NET Core desktop application as a single executable with no dependencies. What performance gain? An example shown at Build was an application which uses File APIs running nearly three times faster on .NET Core 3.0.

image

XAML Islands enabling UWP features in WinForms and WPF. The idea is that you can pop a UWP host control in your WinForms or WPF application, and show UWP content there. Microsoft is also preparing wrapper controls that you can use directly. Mentioned were WebView, MediaPlayer, InkCanvas, InkToolBar, Map and SwapChainPanel (for DirectX content). There will be a few compromises. The XAML host window will be rectangular (based on an HWND) which means non-rectangular and transparent content will not work correctly. There is also the Windows 7 problem: no UWP on Windows 7, so what happens to your XAML Islands? They will not run, though Microsoft is working on a mechanism that lets your application substitute compatible Windows 7 content rather than crashing.

MSIX deployment. MSIX is Microsoft’s latest deployment technology. It will work with both UWP and Desktop applications, will support Windows 7 and 10, will provide for auto-updates, and will have tooling built into Visual Studio, as well as a packager for both your own and third-party applications. Applications installed with MSIX are managed and updated by Windows, have tamper protection, and are installed per-user. It seems to build upon the Desktop Bridge concept, the aim being to make Windows more manageable in the Enterprise as well as safer for all users, if Microsoft can get widespread adoption. The packaging format will also work on Android, Mac and Linux and you can check out the SDK here.

image

Will WPF or WinForms be updated?

The above does not quite answer the question, will WPF or Windows Forms be significantly updated, other than with the ability to use UWP content? I could not get a clear answer on this question at Build, though I was told that adding support for .NET Core 3.0 required significant changes to these frameworks so it is no longer true to say they are frozen. With regard to WPF Microsoft Corporate VP Julia Liuson told me:

“We will be looking at more controls, more capabilities. It is widely recognised that WPF is the best framework for desktop development on Windows. The fact that we’re moving on top of .NET Core 3.0 gives us a path forward.”

That said, I also heard that the team would rather write code once and use it across UWP, WPF and WinForms via XAML Islands, than write new controls for each framework. That makes sense, the difficulty being Windows 7. Microsoft would rather promote migration to Windows 10, than write new UI components that work across both Windows 7 and Windows 10.

Cosmos DB or SQL Server? Do you need Kubernetes? VM or App Service? A guide to Azure worth checking out

One of the best features of Microsoft Build, possibly the best, is the exhibition. Microsoft sets up stands for each of its product teams, and the staff there generally include the people who actually build that product, making this a great way to interact with them and get authoritative answers to questions.

I interviewed several executives at Build and asked a couple of times, how can your customers work out which Azure service is the best fit for what they need? It is not a trivial question, now that there are so many different services which overlapping functionality.

It is critically important. You can waste a large amount of money and cause unnecessary frustration by selecting the wrong services.

None of these executives mentioned that Microsoft has a rather good guide for exactly this question. It is called the Azure Architecture Center and I discovered it on the show floor.

image

The stand was called Azure Clinic and I told the guy his costume reminded me of Dr GUI. He was too young to remember this MSDN character of old but another guy on the stand overheard and said it brought back bad memories!

You can find the Azure Architecture Center here. It does not make any assumptions about the depth of knowledge you have, which seems right to me since it is aimed at developers who are not sure exactly what they need. There is a ton of useful material, like this decision tree for the compute services (click to enlarge):

image 

Recommended.

Hands On with Remote Assist, a compelling HoloLens application, at Microsoft Build

One of the announcements at Microsoft’s Build event in Seattle was Remote Assist, an application for the HoloLens augmented reality headset. Today I got an opportunity to try this out, and was impressed.

The company has set up a hotel room as a factory with some big machines that whir and hum and a scary power supply cabinet. I took the part of the engineer when a fault stops the machines and the factory grinds to a halt. Unfortunately I knew nothing about how to fix it.

The solution was to put on the HoloLens headset and make a call to someone better informed. The concept is pretty simple. The remote technician sees what you see, so can easily inspect the screens as well as the physical state of the machinery. Along with the video call, HoloLens and Remote Assist lets the remote technician add annotations to the real world, pinpointing the exact button, cable or belt that needs attention. They can also stick images or documents next to the machinery to show you what to do.

image

The fake factory floor was a little contrived, but nevertheless effective in showing how this approach can make it easier to offer support. The alternative in this kind of case is a site visit, which with specialised equipment might well involve a flight and several days delay. The cost is not only the travel expenses, but also the possible extended downtime while machinery is idle.

If you have ever tried to guide someone at the other end of a telephone through fixing a physical problem, you will know how tricky it can be. Send me a photo. No, that’s not quite the right spot. Send me another photo. What happens if you change that setting? No, not that setting! Sorry, now you have two things to fix …

Remote Assist makes this much easier and I can see the potential. HoloLens may seem expensive for a casual purchase, but could soon pay for itself in this context.

There is no date yet for availability, but the technology will enter limited preview soon.

More info here and in the video below.

I also tried Remote Layout, a HoloLens application for designing room layouts. This was less exciting. I was not clear how to achieve the precision you need for a real-world factory layout. Nevertheless, I get the point that overlaying life-size objects onto the real world can reveal issues that you might well miss with just a drawing.

Finally, I tried a super-secret demo that I am not allowed to tell you about. Yet.

Chromebooks get more useful as Linux comes to Chrome OS

At Google’s IO conference under way in San Francisco, the company has announced the ability for a Chromebook to run Linux applications.

image

“Support for Linux will enable you to create, test and run Android and web app for phones, tablets and laptops all on one Chromebook. Run popular editors, code in your favourite language and launch projects to Google Cloud with the command-line. Everything works directly on a Chromebook,” says product manager Ton Buckley. “Linux runs inside a virtual machine that was designed from scratch for Chromebooks. That means it starts in seconds and integrates completely with Chromebook features. Linux apps can start with a click of an icon, windows can be moved around, and files can be opened directly from apps.”

Squinting at the screen in Google’s photo, above, it looks like the Linux VM runs Debian.

Coupled with the existing ability to run Android apps, the announcement makes Chromebooks more attractive for users (and I am one of them) who would previously have found the operating system too restrictive.

Buckley presents the new feature as primarily one for developers. You will be able to build and test Android applications directly on the Chromebook. Given the operating system’s native support for Android, this should be an excellent machine for Android development.

One of the first things I would install would be Visual Studio Code, presuming it runs OK. Thanks to .NET Core, ASP.NET development should work. The LAMP stack running locally would be great for  PHP development.

Personally I would not only use it for coding though. The ability to run LibreOffice would be great, for example. There are also a ton of handy Linux utilities for admins.

Top feature: security

The key attractions of Chromebooks (aside from low prices from OEM vendors) is security. They are popular in education for this reason. They require less management than PCs because the operating system is locked down and self-patching. The new feature should not compromise security too much, because Linux runs in a VM and in the worst case resetting the VM should clear any malware – though access to user documents could make malware running in the VM quite disruptive.

Apple’s iPad Pro is another capable device with a locked down OS, but does not run Linux applications.

What about Windows? Microsoft has tried and so far failed to lock down Windows in a manner acceptable to its customers. Windows RT was the first attempt, but users found it too restrictive, partly because the Windows 8 app ecosystem was so weak. Windows S is another attempt; but progress is slow. Microsoft has also weakened the security of its modern app platform to make it more capable, even to the extent of allowing desktop applications into the Windows Store. The approach taken by Apple and Google, to design a new secure operating system and make it gradually more capable, is more viable than Microsoft’s work in the opposite direction.

Microsoft Build: Azure-powered Drones, another go with Kinect, and other key announcements

Microsoft Build is kicking off today in Seattle, and the company has made a ton of announcements.

See here for some background on Build and what is happening with Microsoft’s platform.

The most eye-catching announcement is a partnership with drone manufacturer DJI which says it will make Azure its preferred cloud provider. Microsoft has announced an SDK. There is much obvious value in drones from a business perspective, for example examining pipes for damage. Sectors such as construction, agriculture and public safety are obvious candidates.

image 

Microsoft’s Kinect sensor was originally launched as a gaming accessory for Xbox 360 and then Xbox One. It has been a flop in gaming, but the technology has plenty of potential. Coming in 2019 is Project Kinect for Azure, a new device with upgraded sensors for connecting “AI to the edge”, in Microsoft’s words. More here.

image

The Azure IoT Edge runtime is going open source. More cognitive services will now run directly on the runtime, in other words without depending on internet connectivity, including Custom Vision for image recognition (handy for drones, perhaps). A partnership with Qualcomm will support camera-powered cognitive services.

AI for Accessibility is a new initiative to use AI to empower people via assistive technology, building on previous work such as the use of Cognitive Services to help a visually impaired person “see” the world around them.

Project Brainwave is a new project to accelerate AI by running calculations on an FPGA (Field Programmable Gate Array) in partnership with Intel.

On the Windows front, a new application called Microsoft Layout uses Mixed Reality to let customers design spaces in context, using 3D models.

Windows Timeline, new in the April 2018 Windows 10 update, is coming to iOS and Android. On Android it is a separate application, while on iOS it is incorporated into the Edge browser.

Amazon Alexa and Microsoft Cortana are getting integration (in limited preview) such that you can call up Cortana using an Amazon Echo, or summon Alexa within Cortana on Windows.

image

There is more to come, including AI updates to Visual Studio (not IntelliSense but IntelliCode), Visual Studio Live Share collaboration in preview, and a partnership with GitHub to integrate with App Center (DevOps for apps for mobile devices).

And big .NET news at Build: .NET Core 3.0 in 2019 will run Windows desktop applications, via frameworks including Windows Forms, Windows Presentation Framework (WPF), and UWP XAML.

As Microsoft Build 2018 begins, what is happening to Microsoft’s developer platform?

Microsoft’s Build developer conference starts today in Seattle.

image

Ahead of Build though, it is worth noting that this Build is different in feel than previous events. The first Build was in 2011 and it was focused on Windows 8, released there in preview.Historically it has always been a Windows-focused event, though of course with some sessions on Microsoft’s wider platform.

Microsoft is changing, and the key document for those interested in the company’s direction is this one from 29th March 2018 – the most significant strategic move since the June 2015 “aligning engineering to strategy” announcement that dismantled the investment in Windows Phone.

In the March announcement CEO Satya Nadella explains that the Windows and Devices Group (WDG) has become the Experiences and Devices Group – no longer just Windows. Former WDG chief Terry Myerson is leaving Microsoft, while Rajesh Jha steps up to run the new team.

I regard this new announcement as a logical next step following the departure of Steven Sinofsky in November 2012 (the beginning of the end for Windows 8) and the end of Windows Phone announced in June 2015. Sinofsky’s vision was for Windows to be reinvented for a new era of computing devices based on touch and mobile. This strategy failed, for numerous reasons which this is not the place to re-iterate. Windows 10, by contrast, is about keeping the operating system up to date as a business workhorse and desktop operating system, a market that will slowly decline as other devices take over things that we used to do with PCs, but which will also remain important for the foreseeable future.

Windows, let me emphasise, is neither dead nor dying. We still need PCs to do our work. The always-enthusiastic Joe Belfiore is now in charge of Windows and we will continue to see a stream of new features added to the operating system, though increasingly they will work in tandem with new software for iOS and Android. However, Windows can no longer be an engine of growth at Microsoft.

Microsoft has positioned itself to succeed despite the decline of the PC, primarily through cloud services. It has made huge investments in cloud infrastructure – that is, datacenters and connectivity – as well as in the software to make that infrastructure useful, from low-level server and network virtualisation to a large range of high level services (which is where the biggest profits can be made).

The company’s biggest cloud success is not Azure as such, but rather Office 365, now running a substantial proportion of the world’s business email, and building on that base with a growing range of collaboration and storage services. It is a perfect upsell opportunity, which is why the company is now talking up “Microsoft 365”, composed of Office 365, Windows 10, and Enterprise Mobility + Security (EMS).

Nadella’s new mantra is “the intelligent cloud and the intelligent edge”, where the intelligent cloud is all things Office 365 and Azure, and the intelligent edge is all the computing devices that connect to it, whether as small as a Raspberry Pi running Azure IoT Edge (a small cross-platform runtime that connects to Azure services), or as large as Azure Stack (an on-premises cloud in a box that uses the Azure computing model).

We need an “intelligent edge” because it makes no sense at all to pump all of the vast and increasing amounts of data that we collect, from sensors and other inputs, directly into the cloud. That is madly inefficient. Instead, you process it locally and send to the cloud only what is interesting. Getting the right balance between cloud and edge is challenging and something which the industry is still working out. Nothing new there, you might think, as the trade-off between centralised and distributed computing has been a topic of endless debate for as long as I can remember.

Coming back to Build, what does the above mean for developers? From Microsoft’s perspective, it is more strategic to have developers building for its cloud platform than for Windows itself; and if that means coding for Linux, iOS or Android, it matters little.

At the same time, Belfiore and his team are keen to keep Windows competitive against the competition (Mac, Linux, Chromebook). Even more important from the company’s point of view is to get users off Windows 7 and onto Windows 10, which is more strategic in every way.

Just because Microsoft wants you to do something does not make it in your best interests. That said, if you accept that a cloud-centric approach is right for most businesses, Windows 10 does make sense in lots of ways. It is more secure and, increasingly, easier to manage. Small businesses can log in directly with Azure Active Directory, and larger organisations get benefits like autopilot, now beginning to roll out as the PC OEMs ready the hardware.

The future of UWP (Universal Windows Platform) is less clear. Microsoft has invested heavily in UWP and made it an integral part of new Windows features like HoloLens and Mixed Reality. Developers on the other hand still largely prefer to work with older frameworks like Windows Presentation Foundation (WPF), and the value of UWP has been undermined by the death of Windows Phone. In addition, you can now get Store access and the install/uninstall benefits of UWP via another route, the Desktop Bridge – which is why key consumer applications like Spotify and Apple iTunes have turned up in the Store.

Finally, Build did not sell out this year; however I have heard that it has doubled in size, so these things are relative. Nevertheless, this is perhaps an indication that Microsoft still has work to do with its repositioning in the developer community. The challenge for the company is to keep its traditional Windows-focused developers on board, while also attracting new developers more familiar with non-Microsoft technologies. Anecdotally, I would say there are more signs of the former than the latter.