Category Archives: microsoft

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.

Notes from the field: “cannot open the Outlook window” in Windows 10. OneDrive the culprit?

A friend was having problems with Outlook on a new Windows 10 laptop. It had been set up with a POP3/SMTP email account. Everything worked fine at first, but then Outlook refused to open, displaying a message “Cannot open the Outlook window”. The version of Outlook was the latest Outlook 2016, purchased via personal subscription.

Presuming database corruption, I created a new profile and entered the email settings. It worked at first and then exactly the same error occurred, after Outlook had been closed and reopened a couple of times.

I looked more closely and noticed something odd. Outlook was saving the .pst database for this account to OneDrive. This is not something you would notice, since the location of this database is normally invisible to the user. However you can see it if you go into Account Settings and then Data Files.

Note: this screenshot comes not from my friend’s PC but from my own test install of Windows 10, which uses the defaults. I simply set up Outlook with a POP3 email account.

image

Why was this happening? It is because Windows 10 sets OneDrive as the default location for documents if you set it up with a personal Microsoft account, which is the default for non-business users.

image

Outlook creates .pst files in a sub-folder of the special Documents location, called Outlook Files.

Note: Outlook does not do this for .ost files used for Exchange, Office 365 or Outlook.com. It is only something you will see if you use an old-style POP3 email account, or possibly IMAP (I have not tested this).

Saving active .pst files in OneDrive is not a good idea. Even if it works, it brings no benefit, since you cannot get multiple versions of Outlook on different PCs to use the same synced .pst.

Worse, it is known to cause corruption. Check out this ancient post on the subject from the experts at Slipstick systems:

The answer: It won’t work in most services and is not recommended in any service. Outlook puts a lock on the pst file when the pst file is open. OneDrive (and other cloud solutions) continually syncs the local folder. It won’t be able to sync the pst because Outlook has a lock on it and as a result, the pst file could become corrupted and data loss occur.

Unfortunately it is not that easy to persuade Outlook to save the .pst elsewhere. The method I used was:

1. Open the Mail applet in Control Panel (always the first port of call if Outlook will not open).

2. Select a profile, even one that doesn’t work, and choose Properties.  Click Data Files tab and then Add. This lets you create a new, empty .pst in the location of your choice. Close this dialog.

3. When setting up the email account, choose Manual settings, and then select the option to deliver mail to an existing .pst. Browse to select the one you created.

image

All of this is well buried and typical users will not find these settings.

The other solution is to reconfigure the location of the Documents folder to be on the local hard drive and not in the special OneDrive folder. Of course this will affect all your documents and not just Outlook. Saving everyday documents to OneDrive is not such a bad idea, since it gives you resilience in the case where your hard drive or SSD fails.

Note: There are multiple reasons for the “Cannot open the Outlook window” error so the above is not necessarily the fix you need, if you have come here in search of an answer. It only applies if you have this particular configuration and use POP3 email.

Microsoft financials: Azure revenue grows 93% year on year

Microsoft delivered excellent figures in its latest financial results, for the period Jan-March 2018. Total revenue of $26,819 million was up 16% year on year, within which Azure revenue grew 93%.

The overall story is that cloud services and subscription income is working well for the company. Azure is not the whole of Microsoft’s cloud; in fact I would argue that Office 365 (built around hosted Exchange) is equally important, since it drives uptake for other products and services including desktop Office and Dynamics. Office 365 commercial revenue grew 42% and Office consumer grew 12%.

Perhaps more surprising is that this was also a good quarter for Windows and Xbox. Windows OEM revenue up 4%, Surface up 32%, Xbox up 24%. Why is Windows growing? One reason is that businesses really are upgrading to Windows 10, where perhaps they sat out Windows 8 as best they could. This is necessary for security reasons if nothing else. The uptake for Windows 10 has had spin-off benefits for things like Surface sales, as CFO Amy Hood explained in the financial webcast.

Even LinkedIn is doing well, with revenue growth of 37%, driven by job advertising and sponsored content.

In the webcast, CEO Satya Nadella talked up “the intelligent cloud and the intelligent edge” and the role of AI in securing the cloud.

GDPR is also seen as an opportunity. It is less costly to host applications in our GDPR-complaint cloud than to achieve this on-premises, said Microsoft.

So everything is fine for Microsoft? Perhaps, perhaps not. The company has transitioned not only to cloud, but to enterprise, and is becoming less and less visible to consumers. The home PC is not the ubiquitous thing it once was, and in mobile there is no longer any Windows, aside from the occasional Windows 10 tablet. Xbox and gaming PCs are the only bright spots in consumer.

This means the company has changed its character. It has also missed out on things like mobile payments, home assistants and home automation. You can see how Google, Amazon and to some extent Apple are jostling for position as a kind of portal to everything for the consumer, with great strategic advantage as powerful intermediaries to consumer purchases. Microsoft is absent.

Every business person is also a consumer and retreating from this market could prove costly long-term.

For now though, the company is delivering nicely on Nadella’s cloud strategy.

Here is the breakdown by segment, such as it is:   

Quarter ending March 31st 2018 vs quarter ending March 31st 2017, $millions

Segment Revenue Change Operating income Change
Productivity and Business Processes 9006 +1299 3115 +575
Intelligent Cloud 7896 +1166 2654 +506
More Personal Computing 9917 +1142 2523 +488

The segments break down as:

Productivity and Business Processes: Office, Office 365, Dynamics 365 and on-premises Dynamics, LinkedIn

Intelligent Cloud: Server products, Azure cloud services

More Personal Computing: Consumer including Windows, Xbox; Bing search; Surface hardware

What is Azure Sphere?

Microsoft has announced Azure Sphere, and in a manner which I’m guessing many will find confusing.

It is obviously something to do with IoT (Internet of Things) and intended to make your IoT solutions more secure. It is obviously something to do with Azure, Microsoft’s cloud platform. But what is a “crossover class of MCU”? What is an “HLOS small enough for MCUs”? Where does the “Azure Sphere OS”, which is Microsoft’s new Linux, actually run?

image

Let’s start with MCU (Microcontroller Unit). The most informative description of what Azure Sphere is all about is this research paper [PDF]. The target of Azure Sphere is devices powered by microcontrollers – in other words, IoT devices that are more than just sensors and have their own processors, though with less capability than a full SoC (System on a Chip). It is obvious that such devices, if compromised, have considerable risks. A fire in your oven? A radiotherapy machine that kills rather than heals? Toys that spy on children? Not good.

Microsoft’s solution is to have those devices run on a new processor designed in partnership with MediaTek (a large Taiwanese system-on-chip manufacturer) and running the tiny Azure Sphere OS. Built-in features include hardware-based security (private keys in a hardware-protected vault), hardware-enforced compartmentalization, certificate-based authentication and failure reporting. The new processor is called Sopris in Microsoft’s paper.

image
The Sopris Microprocessor

These Azure Sphere devices communicate with Microsoft’s Azure Sphere service to receive both OS and application updates, and to process failure reports.

Azure Sphere does not determine how the production data from your IoT device is handled. You can deal with this as you like, using Azure, another cloud provider, or on-premises infrastructure.

A point of interest is that the Azure Sphere OS runs Microsoft’s own customised version of Linux. Why Linux? Microsoft must have concluded that there was insufficient advantage, and more friction, in using a version of Windows (though Windows IoT Core exists). Use of Linux in Microsoft can only increase; and remember, Linux is now built into Windows.

Why Subsystem for Linux in Windows 10 and Windows Server? And what are the implications?

Microsoft is busy improving Windows Subsystem for Linux (WSL), the compatibility layer that lets you run Linux on Windows. WSL is not an emulator. It accesses the same file system and you can launch Windows applications from WSL, and vice versa. It also runs actual Linux binaries.

The latest announcements cover copy/paste between Linux and Windows, and a tabbed console. Both enhancements are in the skip-ahead insider version of Windows 10, which means they are unlikely to be in the one about to be released, currently known as Spring Creators Update (but rumoured to be getting a name change). In other words, you may have to wait around six months for this to be generally available.

image 

These are not huge changes, but overall WSL is a big deal. Why is Microsoft doing it? One Betanews commenter says:

I still can’t figure out who this whole "Linux-on-Windows" thing is meant for. Developers who work on both platforms maybe? I guess it would be handy for people who just want to try out Linux before migrating to it, but that’s the last thing Microsoft would want to promote.

Microsoft has in fact stated the primary purpose of WSL:

This is primarily a tool for developers — especially web developers and those who work on or with open source projects. This allows those who want/need to use Bash, common Linux tools (sed, awk, etc.) and many Linux-first tools (Ruby, Python, etc.) to use their toolchain on Windows.

There is a bit more to it. Developers are small in number relative to general users, but disproportionately influential, since they make the applications the rest of us run, and if the applications are not there or are inferior, the ecosystem starts to fail and the operating system declines.

I am not sure when it was that developers started to prefer Macs, but I noticed this trend many years ago, perhaps from the time that OS X moved to x86 (2006). This was not just about preferring the Mac user interface. In 2008 Apple opened up iOS, its mobile OS, to third-party applications, and a Mac was required for iOS development (this is still the case). It has long been relatively easy to run a Windows emulator on a Mac, but not vice versa, so for developers who want to support multiple target platforms from one computer, the Mac makes sense.

OS X / macOS is a Unix-like operating system, based on BSD (Berkeley Software Distribution). This means that moving between Linux and Mac is relatively smooth, from a developer perspective. The same tools are generally available. The internet runs mostly on Linux so the Mac has an advantage there as well.

In some cases this is more than just inconvenience. Windows has a long-standing issue with path lengths. MAX_PATH is defined as 260 characters. This limitation can be mostly removed if you have Windows 10 build 1607 or higher. Nevertheless, path issues have made Windows awkward for developing with Java, Node.js, and other languages or frameworks which typically use deeply nested directories. Open source developers perhaps did not care as much about these issues because they were mostly using Mac or Linux.

Microsoft has responded by improving Windows as a platform on which to develop applications. Visual Studio now targets Mac, iOS and Android as well as Windows. MAX_PATH has been alleviated as far as possible. WSL however goes much further. You can install and run Linux development tools and utilities such as gcc, perl, sed, awk, grep, wget, openssl, perl and more. There is no MAX_PATH issue. You can run the Linux build of Apache, PHP, MySQL and more. I used WSL to debug a PHP application and explained how here.

WSL is not perfect. Not everything is implemented. You can check the current issues here. Still, it is genuinely useful and mitigates the advantages of Mac or Linux for developers.

Microsoft has also added WSL to Windows Server. Why? The main focus here seems to be on administrators. There are times when it is handy to run a Linux command or script on Windows Server. It is not intended for production use as a server, though there is now support for background tasks; however it is still per-session so you would need to keep a user logged on in order to run, for example, a web server. More important, Microsoft has not designed WSL for production use as a server platform so it might not be as optimized or reliable as you require.

Implications of WSL

Where is this going? This is where it gets speculative. I will argue though that WSL is in part an admission of defeat. Windows remains an important development platform, but is now greatly outweighed by Unix-like platforms:

  • Web/Internet applications
  • iOS applications
  • Android applications

Where Windows support is needed, developers have many cross-platform options to choose from, a popular choice today being Electron, based on Chromium (the open source foundation of Google Chrome) and Node.js.

Today there seems little chance of Windows winning back market share as a mobile operating system, and the importance of desktop applications looks destined for long slow decline.

Windows Server remains a significant application platform, but Microsoft is focused more on driving developers to Azure cloud services than on Windows Server itself. SQL Server now runs on Linux, ASP.NET Core is cross-platform, and Azure has excellent support for Linux.

All of this leads me to think that WSL will continue to improve, perhaps to the point where production loads are supported on Windows Server, for example. Further, the ability to run Windows applications on Linux (which is more or less what happens in SQL Server for Linux) may become equally as important as the reverse.

C# and .NET: good news and bad as Python rises

Two pieces of .NET news recently:

Microsoft has published a .NET Core 2.1 roadmap and says:

We intend to start shipping .NET Core 2.1 previews on a monthly basis starting this month, leading to a final release in the first half of 2018.

.NET Core is the cross-platform, open source implementation of the .NET Framework. It provides a future for C# and .NET even if Windows declines.

Then again, StackOverflow has just published a report on the most sought-after programming languages in the UK and Ireland, based on the tags on job advertisements on its site. C# has declined to fourth place, now below Python, and half the demand for JavaScript:

image

To be fair, this is more about increased demand for Python, probably driven by interest in AI, rather than decline in C#. If you look at traffic on the StackOverflow site C# is steady, but Python is growing fast:

image

The point that interest me though is the extent to which Microsoft can establish .NET Core beyond the Microsoft-platform community. Personally I like C# and would like to see it have a strong future.

There is plenty of goodness in .NET Core. Performance seems to be better in many cases, and cross-platforms is a big advantage.

That said, there is plenty of confusion too. Microsoft has three major implementations of .NET: the .NET Framework for Windows, Xamarin/Mono for cross-platform, and .NET Core for, umm, cross-platform. If you want cross-platform ASP.NET you will use .NET Core. If you want cross-platform Windows/iOS/macOS/Android, then it’s Xamarin/Mono.

The official line is that by targeting a specification (a version of .NET Standard), you can get cross-platform irrespective of the implementation. It’s still rather opaque:

The specification is not singular, but an incrementally growing and linearly versioned set of APIs. The first version of the standard establishes a baseline set of APIs. Subsequent versions add APIs and inherit APIs defined by previous versions. There is no established provision for removing APIs from the standard.

.NET Standard is not specific to any one .NET implementation, nor does it match the versioning scheme of any of those runtimes.

APIs added to any of the implementations (such as, .NET Framework, .NET Core and Mono) can be considered as candidates to add to the specification, particularly if they are thought to be fundamental in nature.

Microsoft also says that plenty of code is shared between the various implementations. True, but it still strikes me that having both Xamarin/Mono and .NET Core is one cross-platform implementation too many.

Strong financial results from Microsoft as it aims for breadth of services

Microsoft reported a big quarter (in terms of revenue) for the three months ending December 31st, with revenue of $28,918 million.

What’s notable? Mainly the big jump in Microsoft’s recent success stories: year on year Office 365 up by 41%, Azure up by 98%, Dynamics 365 up by 67%.

Windows is flat/weak as you would expect, and Surface hardware is standing still. Xbox grew a bit following the launch of Xbox One X.

LinkedIn is growing: revenue of $1.3 billion and “sessions growth of over 20%” in the quarter. In the earnings webcast, Microsoft’s Amy Hood said that the LinkedIn acquisition has both performed better, and seems more strategic, now than it did at the time.

Hood also made reference to the company’s ability to up-sell cloud users to higher-margin services. “Office 365 commercial revenue increased 41 percent from installed base growth across all customer segments, and ARPU [Average Revenue per User] expansion from continued customer migration to higher value offers in the E3 and E5 workloads.”

This point is key and is the answer (from the provider’s point of view) to the lower margins implicit in moving from software to services. When Microsoft sells a licence for you to use Windows or Office, the margin is huge because reproducing the software, or providing it for download, costs almost nothing; whereas with a subscription there is significant cost to providing the service. However the subscription has advantages which offset this, in particular the continuing interaction with the customer that both provides data, which the customer as well as the provider can mine (subject to appropriate privacy controls), and gives opportunity for the provider to extend the relationship into new or upgraded services.

CEO Satya Nadella fielded a good question about Microsoft losing out to Sony in gaming and to Alexa and Google Home in voice devices. On gaming, Nadella referred to the PC alongside Xbox as a strategic asset. “PC gaming is a growth market,” he said, as well as software such as Minecraft now on mobile devices, giving the company a broad reach. He also remarked on Azure as a gaming back end.

As for Cortana in the home (or absence from), Nadella said that the focus is on the server-side cognitive services. He also talked about voice input and control of Office 365. The key point though was that Microsoft wants to work both with its own and other voice assistant devices so it can win on services even when competitor devices are in use. “One-turn dialogs on one speaker in one home, that’s just not our vision,” he said.

Nadella made another key point in the webcast, in answer to a question about how Azure Stack (a packaged version of Azure for installation on-premises) will impact Azure. “Computing is becoming more distributed, not less distributed,” he said. IoT and sensors play a large part in this. Everything goes to the cloud but computing on the edge (the new buzzword for local processing) is important for efficiency.

It is easy to see ways in which Microsoft could stumble. The PC will decline as the number of users who need a desktop or laptop computer diminishes. Microsoft’s failure in mobile could prove costly as competitors use synergy with their own applications and cloud services to steer customers away. There are opportunities such as home automation and payments which seem closed to the company now.

Then again, strong results such as these show how the company can succeed by continuing to migrate its business users to cloud services. It remains deeply embedded in business computing.

Here is my chart summarising Microsoft’s performance:   

Quarter ending December 31st 2017 vs quarter ending December 31st 2016, $millions

Segment Revenue Change Operating income Change
Productivity and Business Processes 8953 +1774 3337 +284
Intelligent Cloud 7795 +1037 2832 +541
More Personal Computing 12170 +281 2510 -51

The segments break down as:

Productivity and Business Processes: Office, Office 365, Dynamics 365 and on-premises Dynamics, LinkedIn

Intelligent Cloud: Server products, Azure cloud services

More Personal Computing: Consumer including Windows, Xbox; Bing search; Surface hardware

Office 2016 now “built out of one codebase for all platforms” says Microsoft engineer

Microsoft’s Erik Schweibert, principal engineer in the Apple Productivity Experiences group, says that with the release of Office 2016 version 16 for the Mac, the productivity suite is now “for the first time in 20 years, built out of one codebase for all platforms (Windows, Mac, iOS, Android).”

image

This is not the first time I have heard of substantial code-sharing between the various versions of Office, but this claim goes beyond that. Of course there is still platform-specific code and it is worth reading the Twitter thread for a more background.

“The shared code is all C++. Each platform has native code interfacing with the OS (ie, Objective C for Mac and iOS, Java for Android, C/C++ for Windows, etc),” says Schweibert.

Does this mean that there is exact feature parity? No. The mobile versions remain cut-down, and some features remain platform-specific. “We’re not trying to provide uniform “lowest common denominator” support across all platforms so there will always be disparate feature gaps,” he says.

Even the online version of Office shares much of the code. “Web components share some code (backend server is shared C++ compiled code, front end is HTML and script)”, Schweibert says.

There is more news on what is new in Office for the Mac here. The big feature is real-time collaborative editing in Word, Excel and PowerPoint. 

What about 20 years ago? Schweibert is thinking about Word 6 for the Mac in 1994, a terrible release about which you can read more here:

“Shipping a crappy product is a lot like beating your head against the wall.  It really does feel good when you ship a great product as a follow-up, and it really does motivate you to spend some time trying to figure out how not to ship a crappy product again.

Mac Word 6.0 was a crappy product.  And, we spent some time trying to figure out how not to do that again.  In the process, we learned a few things, not the least of which was the meaning of the term “Mac-like.”

Word 6.0 for the Mac was poor for all sorts of reasons, as explained by Rick Schaut in the post above. The performance was poor, and the look and feel was too much like the Windows version – because it was the Windows code, recompiled. “Dialog boxes had "OK" and "Cancel" exactly reversed compared to the way they were in virtually every other Mac application — because that was the convention under Windows,” says one comment.

This is not the case today. Thanks to its lack of a mobile platform, Microsoft has a strong incentive to create excellent cross-platform applications.

There is more about the new cross-platform engineering effort in the video below.