Compile Android Java, iOS Objective C apps for Windows 10 with Visual Studio: a game changer?

Microsoft has announced the ability to compile Windows 10 apps written in Java or C++ for Android, or in Objective C for iOS, at its Build developer conference here in San Francisco.

image
Objective C code in Visual Studio

The Android compatibility had been widely rumoured, but the Objective C support not so much.

This is big news, but oddly the Build attendees were more excited by the HoloLens section of the keynote (3D virtual reality) than by the iOS/Android compatibility. That is partly because this is the wrong crown; these are the Windows faithful who would rather code in C#.

Another factor is that those who want Microsoft’s platform to succeed will have mixed feelings. Is the company now removing any incentive to code dedicated Windows apps that will make the most of the platform?

Details of the new capabilities are scant though we will no doubt get more details as the event progresses. A few observations though.

Microsoft is trying to fix the “app gap”, the fact that both Windows Store and Windows Phone Store (which are merging) have a poor selection of apps compared to iOS or Android. Worse, many simply ignore the platforms as too small to bother with. Lack of apps make the platforms less attractive so the situation does not improve.

The goal then is to make it easier for developers to port their code, and also perhaps to raise the quality of Windows mobile apps by enabling code sharing with the more important platforms.

There are apparently ways to add Windows-specific features if you want your ported app to work properly with the platform.

Will it work? The Amazon Fire and the Blackberry 10 precedents are not encouraging. Both platforms make it easy to port Android apps (Amazon Fire is actually a version of Android), yet the apps available in the respective app stores are still far short of what you can get for Google Android.

The reasons are various, but I would guess part of the problem is that ease of porting code does not make an unimportant platform important. Another factor is that supporting an additional platform never comes for free; there is admin and support to consider.

The strategy could help though, if Microsoft through other means makes the platform an attractive target. The primary way to do this of course is to have lots of users. VP Terry Myerson told us that Microsoft is aiming for 1 billion devices running Windows 10 within 2-3 years. If it gets there, the platform will form a strong app market and that in turn will attract developers, some of whom will be glad to be able to port their existing code.

The announcement though is not transformative on its own. Microsoft still has to drive lots of Windows 10 upgrades and sell more phones.

Visual Studio Code: an official Microsoft IDE for Mac, Windows, Linux

Microsoft has announced Visual Studio Code, a cross-platform, code-oriented IDE for Windows, Mac and Linux, at its Build developer conference here in San Francisco.

image

Visual Studio Code is partly based on the open source projects Omnisharp. It supports Intellisense code completion, GIT source code management, and debugging with break points and call stack.

I have been in San Francisco for the last few days and the dominance of the Mac is obvious. Sitting in a cafe in the Mission district I could see 10 Macs and no PCs other than my own Surface Pro. Some folk were coding too.

It follows that if Microsoft wants to make a go of cross-platform C#, and development of ASP.NET MVC web applications beyond the Windows developer community, then tooling for the Mac is important.

image

Visual Studio Code is free and is available for download here.

The IDE will lack the rich features and templates of the full Visual Studio, but if it is fast and clean, some Visual Studio developers may be keen to give it a try as well.

The Watch

I am in San Francisco so naturally I looked into the Apple Store to see the Watch.

image

The poor old Apple Store is stuck behind a crane and a lot of fencing but there was still a good crowd there.

image

There are watches behind glass, watches you can play with that are firmly attached to the counter, and watches in drawers which you can try on under the guidance of a rep, but which are disabled (the buttons do nothing).

A few observations.

It is a lot of fun. I found it easy to navigate using the main menu (a heap of icons, as you would expect), and zooming/tapping to explore.

There are two physical buttons, the crown and a pushbutton. The pushbutton only does two things (I was told by the rep), one press for the contacts app, press and hold for Apple Pay. Can you configure this? Apparently not.

image

The crown is a  select button if you push it, zoom (or something app-specific) if you spin it, and Siri if you press and hold.

image

Most of the features are things you can already do with a smartphone, excepting the fitness sensors of course, but this is on your wrist and therefore handier.

Maps is useful; it might be worth it just for that.

image

Note that the watch is largely a remote for an iPhone. If you don’t have an iPhone (or it is out of charge) it is not much use. The rep thought it would still tell the time but wasn’t sure.

I tried on a couple of models, one the Sports with a cheapish strap ($400; the base model is $349), and another with a stainless steel band ($700). Both were comfortable and I was especially taken with the stainless steel edition.

There are plenty of things about the gadget that are annoying. The need for daily recharging is one, the dependence on an iPhone is another. However it is elegant and delightful so I imagine all will be forgiven, among the Apple community at least.

How do I buy one? Online only, I was told, and delivery maybe in July.

Microsoft financials Jan-March 2015

Microsoft has released figures for its third quarter, ending March 31st 2015. Here is my simple summary of the figures showing the segment breakdown:

Quarter ending  March 31st 2015 vs quarter ending March 31st 2014, $millions

Segment Revenue Change Gross margin Change
Devices and Consumer Licensing 3476 -1121 3210 -807
Computing and Gaming Hardware 1800 -72 414 +156
Phone Hardware 1397 N/A -4 N/A
Devices and Consumer Other 2280 +456 566 +175
Commercial Licensing 10036 -299 9975 -157
Commercial Other 2760 +858 1144 +669

The figures form a familiar pattern: Windows and shrink-wrap (non-subscription) Office is down, reflecting weak PC sales and the advent of free Windows at the low end, but subscription sales are up and cloud is booming. See the foot of this post for an explanation of Microsoft’s confusing segment breakdown.

Microsoft says that Surface Pro 3 is doing well (revenue of $713 million) and this is reflected in the Devices figures. Commercial cloud (Office 365, Azure and Dynamics) is up 106% year on year.

Cloud aside, it is impressive that server products reported a 12% year on year increase in revenue. This is the kind of business that you would expect to be hit by cloud migration, though I am not sure how Microsoft accounts for things like SQL Server licenses deployed on Azure.

Xbox One is disappointing, bearing in mind the success of the Xbox 360. Microsoft managed to lose out to Sony’s PlayStation 4 with its botched launch and market share will be hard to claw back.

Microsoft reports 8.6 million Lumias sold, the majority being low-end devices. Not too bad for a platform many dismiss, but still treading water and miles behind iOS and Android.

The company remains a huge money-making machine though, and Office 365 is doing well. A few years ago it looked as if cloud and mobile could destroy Microsoft, but so far that is not the case at all, though its business is changing.

Microsoft’s segments summarised

Devices and Consumer Licensing: non-volume and non-subscription licensing of Windows, Office, Windows Phone, and “ related patent licensing; and certain other patent licensing revenue” – all those Android royalties?

Computing and Gaming Hardware: the Xbox One and 360, Xbox Live subscriptions, Surface, and Microsoft PC accessories.

Devices and Consumer Other: Resale, including Windows Store, Xbox Live transactions (other than subscriptions), Windows Phone Marketplace; search advertising; display advertising; Office 365 Home Premium subscriptions; Microsoft Studios (games), retail stores.

Commercial Licensing: server products, including Windows Server, Microsoft SQL Server, Visual Studio, System Center, and Windows Embedded; volume licensing of Windows, Office, Exchange, SharePoint, and Lync; Microsoft Dynamics business solutions, excluding Dynamics CRM Online; Skype.

Commercial Other: Enterprise Services, including support and consulting; Office 365 (excluding Office 365 Home Premium), other Microsoft Office online offerings, and Dynamics CRM Online; Windows Azure.

Reflections on BoxDEV: keeping ahead of SharePoint, Changing Microsoft, and Eric Schmidt on Surveillance

Earlier this week I attended BoxDEV in San Francisco, along with around 1500 developers and some illustrious guests: Eric Schmidt from Google and Marc Benioff from Salesforce.

Schmidt was interviewed by Box CEO Aaron Levie. “Randomly watching and surveilling what’s going over the internet and invading the privacy of American citizens is not OK.” said Schmidt; but he was not talking about Google, rather about the NSA. “Encryption is the solution” he said. It was all rather bizarre, as the king of data gatherers promised to protect our privacy, but he also made some fun comments about how most enterprise IT spend (90-95%) goes on legacy systems that will be replaced by cloud and mobile. A future in which two or three companies run all the world’s IT? Some more quotes on the Reg here.

image

What of Box though? Most people (individuals that is) probably think of Box as a cloud storage competitor and an alternative to DropBox, OneDrive or Google Drive. So it is; but the company sees itself as an enterprise collaboration platform rather than a commodity storage provider. Levie expressed the company’s intended differentiation neatly in the closing Q&A:

We build enterprise software with consumer grade experiences. There is not a lot of competition.

Box is working hard at ticking compliance boxes (sorry) and providing a service with which enterprises are comfortable.

This wasn’t a big event for announcements, but the company did present Box Developer Edition; a confusing name in my opinion as it sounds like a Box account for test and development but it is not; it is a new type of Box application where you can provision your own users. The system creates shadow Box users under the covers, but it gives the illusion of a fully custom Box platform.

There are also new mobile SDKs. Box has split its SDK into modules, covering Content (the core), Browse, Share and Preview. The latter three include UI components as well as a non-visual wrapper for what is ultimately a REST API into its system. The Content and Browse SDKs support Windows Phone as well as iOS and Android, but Share and Preview are iOS/Android only. Microsoft is a Box partner though (and a sponsor of the event); it would not surprise me to see a Universal App SDK from Box in due course.

The Box View API is particularly interesting since it lets you render the content of numerous file formats as HTML. Getting this sort of stuff to work correctly is a challenge and it does add a lot of value to content-oriented applications. There are limitations. For example, if you have a PowerPoint document with an embedded video, the video will not render. There is some impressive technology here though, and Box is focusing on further improving it with acquisitions like that of Verold last week, which brings interactive 3D viewing to the platform.

I had a chat with Senior VP of Engineering Sam Schillace – he was one of the founders of Writely, a web-based word processor which was acquired by Google, and ported from C# to become the basis for an important part of Google Docs. Schillace is intimately familiar with the challenges of working with Microsoft Office formats and I’ve written up some of his remarks for the Register in a piece which will appear shortly.

I was also interested to note how many of the features of Box are also in SharePoint and Office 365. Again, I’ve covered this for the Register, but will say that it is just as well for Box that parts of SharePoint remain problematic, particularly the desktop sync aspect. The complexity of SharePoint is another issue. Box does less than SharePoint in many respects (there is no equivalent to the Office Web Apps, for example, which let you edit in the browser) but if Box does less, but more reliably and with a better user experience, it can still succeed. On the other hand, if Microsoft manages to get SharePoint working really sweetly, particularly in its Office 365 guise, it will be tough for Box to compete, especially as Microsoft builds features like Office Delve which does intelligent search in SharePoint online and hooks into Office 365/Azure Active Directory groups and “social signals” from other parts of Office 365 such as Yammer.

This is a young, smart company though and capable of keeping ahead if it remains nimble.

Finally I must mention the closing Q&A with Levie. There were plenty of daft questions, one of which was “Did Microsoft sponsor BoxDEV so that you couldn’t make fun of them this year?”

“Satya Nadella isn’t as funny as Steve Ballmer,” says Levie, but added, “we have changed how we talk about Microsoft because Microsoft has changed as a company.”

A though-provoking remark on the eve of Build, which is on next week here in San Francisco.

image

Inside Microsoft: Ex design lead gives perspective on Metro, Office, iOS and Android battles

Here is a must-read for Microsoft watchers. Two days ago a former design lead on the Office on Windows Phone team turned up on Reddit and said I designed the new version of Office for Windows Phone. Ask me anything.

image

The overall theme is that Microsoft did not get the design of Windows Phone quite right and is changing it; that Windows 8 was even worse; and that Windows 10 just might begin to pull it all together at last, though the company is also consciously moving away from a Windows-centric view. The Windows, Windows Phone and Office teams are now working together for the first time, we are told:

Windows didn’t believe in working well with others, certainly not that dumb upstart Windows Phone team.

Office believed it was the greatest software on earth, and didn’t get along with Windows.

Windows Phone was pretty proud of itself despite its middling marketshare. Too proud.

So now when these three teams got together to do something for the good of Microsoft, and the good of customers, there was a ton of ego in the way. Windows believed in the Windows way. Windows Phone believed their way. Office was like "fuck all y’all, we’re Office."

The new situation at the company is way better. People actually do care about working together in a way I hadn’t historically seen in my short time there. (or read about in many MS history books)

So I wouldn’t say Windows Phone caused the shift. You know what did? Sinofsky leaving, Windows 8 being a failure, Windows Phone failing to gain significant traction, and then Ballmer leaving.

They basically had to start working together. And it’s cool to see.

Here are a few more things that caught my eye. There are long discussions about the “hamburger” menu, three lines appearing at top left of many new apps where it is hard to reach if you are using the phone with one hand:

Don’t get me wrong, this is clearly a tradeoff. Frequently used things have to be reachable, even one-handed. But hamburgers are not frequently used, and one-handed use is not ironclad. Combine those two factors together and you see why the industry has settled on this standard. It wasn’t random.

From a developer perspective, the key insight here is that hamburgers are not frequently used. In other words, do not design your app so that users will have to reach constantly for the hamburger menu. Reserve it for stuff that is only needed occasionally.

Why is Microsoft appearing to prioritise iOS and Android over Windows, for example with Office?

When Ballmer saw the iPad version of Office, he reportedly said something like "you’re killing me." It was so fucking good. Way better than anything on any other platform. It leveraged a bunch of iOS stuff in a really good way, but it was still "unmistakably Office," as they say.

Ballmer knew it was good. And he knew the company’s other efforts were years and years out. And he iced it. Because his mentality, and what I’d call dogma, was that Windows had to be first. At all costs.

Good riddance. It was an outdated philosophy.

… The way Microsoft wins the long term war is to remind people where they’re strong. And no, it’s not through withholding Office on iOS. Not anymore. The ship sailed on Ballmer’s watch

I would love to know the date when Ballmer “iced” Office for iPad.

What was wrong with the design of Window Phone?

When Steve Jobs came back to Apple, he said he was going to save the company by reminding people of Apple’s sex appeal. He described colored plastics and technology as fashion. And the board thought "uh-oh, this guy is going to drive us into a ditch."

But from "Bondi Blue iMacs" and "OS X has an interface you just want to lick" you’ll notice their design went more and more subdued over the last 15-20 years. It’s because you need to shock people at first, then you get back to being more practical.

Metro had to shock people. It had to look like its own thing. And it did that really well. Pivots, panos, big text, black everywhere, it looked like art. And more than that it looked different. Something to witness. Steve Jobs even gave kudos to the Windows Phone design team! He said something like "I mean, it’s still clearly a v1, but it’s really beautiful." And he was right.

So what would I change?

Well. The interaction models, honestly. The pivots and the panoramas are a nightmare in day to day use. They’re as distinct as a Flower Power iMac, but it painted the interaction models into a corner.

In another post, there is a discussion of the difficulty with the back button. “when back is good, it’s good. But when it’s bad (from a user experience standpoint) it’s really bad.”

Here is another insight:

The stark look of Windows Phone seemed to turn off more people than fell in love with it. I know here in this forum we’re all fans but in the mainstream marketing was only one problem. Apps was another. But the biggest one was lack of relevance. People didn’t understand why they should care. A lot of people said it looked like a nice phone, but it wasn’t for them.

Despite the criticisms, the ex-Microsoft designer (who now works for Twitter) is optimistic, saying “I do have a lot of hope for Universal apps. It’s not a magic bullet, but given enough time for the system to mature, and the business support, and new initiatives, I see rosy days ahead.”

Microsoft may be well positioned for “the next big shift”:

Look beyond just Windows. Just make amazing software. Get back some relevance that was lost. 2) Of course keep competitive with hardware, and keep improving WP. 3) Then, a few years out, when the market experiences another big shift (it’s not a matter of if but when) I suspect MS’s strength as a multi-OS developer + cloud leader will help Windows regain a ton of relevance

Fascinating stuff, though note the disclaimer:

I have no idea what I’m talking about. I’m one designer and I don’t work at MS anymore.

AWS Summit London: cloud growth, understanding Lambda, Machine Learning

I attended the Amazon Web Services (AWS) London Summit. Not much news there, since the big announcements were the week before in San Francisco, but a chance to drill into some of the AWS services and keep up to date with the platform.

image

The keynote by CTO Werner Vogels was a bit too much relentless promotion for my taste, but I am interested in the idea he put forward that cloud computing will gradually take over from on-premises and that more and more organisations will go “all in” on Amazon’s cloud. He instanced some examples (Netflix, Intuit, Tibco, Splunk) though I am not quite clear whether these companies have 100% of their internal IT systems on AWS, or merely that they run the entirety of their services (their product) on AWS. The general argument is compelling, especially when you consider the number of services now on offer from AWS and the difficulty of replicating them on-premises (I wrote this up briefly on the Reg). I don’t swallow it wholesale though; you have to look at the costs carefully, but even more than security, the loss of control when you base your IT infrastructure on a public cloud provider is a negative factor.

As it happens, the ticket systems for my train into London were down that morning, which meant that purchasers of advance tickets online could not collect their tickets.

image

The consequences of this outage were not too serious, in that the trains still ran, but of course there were plenty of people travelling without tickets (I was one of them) and ticket checking was much reduced. I am not suggesting that this service runs on AWS (I have no idea) but it did get me thinking about the impact on business when applications fail; and that led me to the question: what are the long-term implications of our IT systems and even our economy becoming increasingly dependent on a (very) small number of companies for their health? It seems to me that the risks are difficult to assess, no matter how much respect we have for the AWS engineers.

I enjoyed the technical sessions more than the keynote. I attended Dean Bryen’s session on AWS Lambda, “Event-driven code in the cloud”, where I discovered that the scope of Lambda is greater than I had previously realised. Lambda lets you write code that runs in response to events, but what is also interesting is that it is a platform as a service offering, where you simply supply the code and AWS runs it for you:

AWS Lambda runs your custom code on a high-availability compute infrastructure and administers all of the compute resources, including server and operating system maintenance, capacity provisioning and automatic scaling, code, and security patches.

This is a different model than running applications in EC2 (Elastic Compute Cloud) VMs or even in Docker containers, which are also VM based. Of course we know that Lambda ultimately runs in VMs as well, but these details are abstracted away and scaling is automatic, which arguably is a better model for cloud computing. Azure Cloud Services or Heroku apps are somewhat like this, but neither is very pure; with Azure Cloud Services you still have to worry about how many VMs you are using, and with Heroku you have to think about dynos (app containers). Google App Engine is another example and autoscales, though you are charged by application instance count so you still have to think in those terms. With Lambda you are charged based on the number of requests, the duration of your code, and the amount of memory allocated, making it perhaps the best abstracted of all these PaaS examples.

But Lambda is just for event-handing, right? Not quite; it now supports synchronous as well as asynchronous event handling and you could create large applications on the service if you chose. It is well suited to services for mobile applications, for example. Java support is on the way, as an alternative to the existing Node.js support. I will be interested to see how this evolves.

I also went along to Carlos Conde’s session on Amazon Machine Learning (one instance in which AWS has trailed Microsoft Azure, which already has a machine learning service). Machine learning is not that easy to explain in simple terms, but I thought Conde did a great job. He showed us a spreadsheet which was a simple database of contacts with fields for age, income, location, job and so on. There was also a Boolean field for whether they had purchased a certain financial product after it had been offered to them. The idea was to feed this spreadsheet to the machine learning service, and then to upload a similar table but of different contacts and without the last field. The job of the service was to predict whether or not each contact listed would purchase the product. The service returned results with this field populated along with a confidence indicator. A simple example with obvious practical benefit, presuming of course that the prediction has reasonable accuracy.

Quick thoughts on Surface 3 from a long-term Surface user

I’ve been using a Surface as my usual travel PC for a while now – mostly Surface Pro (the first iteration) but also Surface RT and Surface 2. Microsoft has announced Surface 3 – is that a good buy?

image

Note: this is not a review of Surface 3. I intend to review it but have yet to get my hands on one.

First, a quick note on how I have got on with Surface to date. I love the compact size of the devices and the fact that I can do all my work on them. I find full-size laptops unbearably bulky now – though slim ultrabooks or small netbooks still have some appeal.

The main annoyances with my Surface Pro are the small SSD size (I have the 128GB model) and a few technical difficulties, mainly that the keyboard cover (currently the Power Cover) plays up from time to time. Sometimes it stops responding, or I get oddities like the mouse pointer going wild or keys that auto-repeat for no reason. Detaching and re-attaching the keyboard usually fixes it. Given that this is Microsoft hardware, drives and OS, I regard these bugs as disappointing.

Surface power handling is not very good. The Surface is meant to be running all the time but sleeps so that touching power turns it on or off almost instantly. That’s the idea, but sometimes it fails to sleep and I discover that it has been heating up my bag and that the battery is nearly flat. To overcome this, and to save battery, I often shut it right down or use hibernate. Hibernate is a good option – fairly quick resume, no battery usage – except that about every third resume it crashes. So I tend to do a full shutdown.

I find the power button just a little unpredictable. In other words, sometimes I press it and nothing happens. I have to try several times, or press and hold. It could be the contact or it could be something else – I don’t think it is the contact since often it works fine.

The power cover has stopped charging, after 10 months of use. It is under warranty so I plan to get it replaced, but again, disappointing considering the high cost ($199).

A few grumbles then, but I still like the device for is portability and capability. Surface Pro 2 seemed to be better that the first in every way. Surface Pro 3 I had for a week on loan; I liked it, and could see that the pen works really well although in general pens are not for me; but for me the size is a bit too big and it felt more like an ultrabook than a tablet.

What about Surface 3 then? The trade-off here is that you get better value thanks to a smaller size (good) and lower performance (bad), with an Atom processor – Intel’s low power range aimed at mobile computing – instead of the more powerful Core range. Here are some key stats, Surface 3 vs Surface Pro 3:

  Surface 3 Surface Pro 3
Display 10.8″ 12″
Weight (without cover) 622g 800g
Storage 64GB or 128GB 64GB-512GB
Processor Intel Atom x7 Intel Core i3, i5 or i7
RAM 2GB or 4GB 4GB or 8GB
Pen Available separately Included
Cameras 8MP rear, 3.5MP front 5.0MP rear, 5.0MP front

What about battery life? Microsoft quotes Surface Pro 3 as “up to 9 hours of web browsing” and Surface 3 as “up to 10 hours of video playback”. That is a double win for Surface 3, since video playback is more demanding. Anandtech measured Surface Pro 3 as 7.6 hrs light use and 3.45 hrs heavy use; the Surface 3 will fare better.

How much do you save? A snag with the Surface is that you have to buy a keyboard cover to get the best out of it, and annoyingly the cover for the Surface 3 is different from those for Surface, Surface 2 and Surface Pro, so you can’t reuse your old one.

A quick look then at what I would be paying for the Surface 3 vs Surface Pro 3 in a configuration that makes sense for me. With Surface 3, I would max out the RAM and storage, because both are rather minimal, so the cost looks like this:

Surface 3 with 4GB RAM and 128GB storage: $599
Keyboard cover: $129
Total: $728.99

Surface Pro 3 with 8GB RAM, 265GB storage, Intel Core i5, pen: $1299
Keyboard cover: $129.00
Total: $1428.99

In other words, Surface 3 is around half the price.

Will I buy a Surface 3? It does look tempting. It is a bit less powerful than my current Surface Pro and perhaps not too good with Visual Studio, but fine for Office and most general-purpose applications. Battery life looks good, but the 128GB storage limitation is annoying; you can mitigate this with an SD card, say another 128GB for around $100, but I would rather have a 256GB SSD to start with.

However, there is strong competition. An iPad Air, I have discovered, makes an excellent travel companion, especially now that Office is available, provided you have a good keyboard case such as one from Logitech; you could get an iPad Air 2 with 64GB storage and a keyboard for slightly less than a Surface 3.

The iPad comparison deserves some reflection. The iPad does have annoyances, things like lack of direct access to the file system and non-expandable storage (no USB). However I have never encountered foibles like power management not working, and as a tablet it is a better design (not just because there are abundant apps).

It is also worth noting that there is more choice in Windows tablets and convertibles than there was when Surface was first released. Some are poorly designed, but ranges like those from Asus and Lenovo are worth checking out. In a sense this is “job done” since one of the reasons for Microsoft doing Surface was to kick-start some innovation in Windows hardware.

I hope to get some hands-on with Surface 3 in the next few weeks and will of course report back.

Why Windows Server is going Nano: think automation, Cloud OS

Yesterday Microsoft announced Windows Nano Server which is essentially an installation option that is even more stripped-down than Server Core. Server Core, introduced with Windows Server 2008, removed the GUI in order to make the OS lighter weight and more secure. It is particularly suitable for installations that do nothing more than run Hyper-V to host VMs. You want your Hyper-V host to be rock-solid and removing unnecessary clutter makes sense.

There was more to the strategy than that though, and it was at last week’s ChefConf in Santa Clara (attended by both Windows Server architect Jeffrey Snover and Azure CTO Mark Russinovich) that the pieces fell into place for me. Here are two key areas which Snover has worked on over the last 16 years or so (he joined Microsoft in 1999):

  • PowerShell, first announced as “Monad” in August 2002 and presented at the PDC conference in September 2003. Originally presented as a scripting platform, it is now described as an “automation engine”, though it is still pretty good for scripting.
  • Windows Server componentisation, that is, the ability to configure Windows Server by adding and removing components. Server Core was a sign of progress here, especially in the Server 2012 version where you can move seamlessly between Core and full Windows Server by adding or removing the various pieces. It is still not perfect, mainly because of dependencies that make you drag in more than you might really want when enabling a specific feature.
  • PowerShell Desired State Configuration, introduced in Server 2012 R2, which puts these together by letting you define the state of a server in a declarative configuration file and apply it to an OS instance.

I am not sure how much of this strategy was in Snover’s mind when he came up with PowerShell, but today it looks far-sighted. The role of a server OS has changed since Windows first entered this market, with Windows NT in 1993. Today, when most server instances are virtual, the focus is on efficiency (making maximum use of the hardware) and agility (quick configuration and on-demand scaling). How is that achieved? Two things:

1. For efficiency, you want an OS that runs only what is necessary to run the applications it is hosting, and on the hypervisor side, the ability to load the right number of VMs to make maximum use of the hardware.

2. For agility, you want fully automated server deployment and configuration. We take this for granted in cloud platforms such as Amazon Web Services and Azure, in that you can run up a new server instance in a few minutes. However, there is still manual configuration on the server once launched. Azure web apps (formerly web sites) are better: you just upload your application. Better still, you can scale it by adding or removing instances with a script or through the web-based management portal. Web apps are limited though and for more complex applications you may need full access to the server. Greater ability to automate the server means that the web app experience can become the norm for a wider range of applications.

Nano Server is more efficient. Look at these stats (compared to full Server):

  • 93 percent lower VHD size
  • 92 percent fewer critical bulletins
  • 80 percent fewer reboots

Microsoft has removed not only the GUI, but also 32-bit support and MSI (I presume the Windows Installer services). Nano Server is designed to work well both sides of the hypervisor, either hosting Hyper-V or itself running in a VM.

Microsoft has also improved automation:

All management is performed remotely via WMI and PowerShell. We are also adding Windows Server Roles and Features using Features on Demand and DISM. We are improving remote manageability via PowerShell with Desired State Configuration as well as remote file transfer, remote script authoring and remote debugging.

Returning for a moment to ChefConf, the DevOps concept is that you define the configuration of your application infrastructure in code, as well as that for the application itself. Deployment can then be automated. Or you could use the container concept to build your application as a deployable package that has no dependencies other than a suitable host – this is where Microsoft’s other announcement from yesterday comes in, Hyper-V Containers which provide a high level of isolation without quite being a full VM. Or the already-announced Windows Server Containers which are similar but a bit less isolated.

image

This is the right direction for Windows Server though the detail to be revealed at the Build and Ignite conferences in a few weeks time will no doubt show limitations.

A bigger issue though is whether the Windows Server ecosystem is ready to adapt. I spoke to an attendee at ChefConf who told me his Windows servers were more troublesome than Linux,. Do you use Server Core I asked? No he said, we like to be able to log on to the GUI. It is hard to change the culture so that running a GUI on the server is no longer the norm. The same applies to third-party applications: what will be the requirements if you want to install on Nano Server (no MSI)? Even if Microsoft has this right, it will take a while for its users to catch up.

StackOverflow developer survey shows decline in C#, Windows

StackOverflow, a popular (and the best) site for programming queries, has published its annual developer survey. Respondents included:

26,086 people from 157 countries participated in our 45-question survey. 6,800 identified as full-stack developers, 1,900 as mobile developers, 1,200 as front-end developers, 2 as farmers, and 12,000 as something else.

That is a decent sample size, though not necessarily representative of the entire developer community.

What is notable? Here are a few things that stood out for me:

Developers are young. The largest group is 25-29 and the average age 28.9 years old.

92.1% of respondents are male. Ouch.

Software is still a good bet for a career even if you have no qualifications. 41.8% declared themselves self-taught. That said, it is not clear to me what proportion of respondents do programming as their main job. Presumably not the two farmers?

If you look at the “Most popular technologies”, there is a striking decline in C# over the last three years:

2013: 44.7%

2014: 37.6%

2015: 31.6%

That’s a shame because C# is an excellent language. The reason? It’s speculation, but probably means less Windows development, whether server or desktop.

Swift is top of the “most loved” list, meaning a language that developers intend to continue with. Salesforce tops the “most dreaded”, meaning a platform that developers cannot wait to abandon, followed by Visual Basic.

What OS do developers use on the desktop? Here, Windows remains the biggest, but is declining:

2013: 60.4%

2014: 57.9%

2015: 54.5%

Windows XP has declined dramatically, down from 10.8% in 2013 to 1.0% today.

Where have developers gone, if they no longer use Windows? Mac is up over the period, but only by 2.8% share. 3.5% are using “Other”, interesting (Chromebook?).

I’ll stop there; I don’t want to spoil the survey.

Conclusions? This puts some data (albeit imperfect) on the theory that Microsoft is losing its grip on the developer community – though note that Microsoft’s technology in general remains popular, just less so than before.

Postscript: Several on Twitter have observed that most languages have declined over the period, not just C#. Here’s the difference in share from 2013 to 2015 for some of them:

JavaScript: –2.2%

SQL: –11.6%

Java: –5.1%

C#: –13.1%

PHP: –5.1%

In other words, all of the top 5 have declined, though C# has declined the most.

What does this mean? Since the numbers sum to more than 100%, it might imply more specialisation. Or it might just say something about how the StackOverflow community has evolved, since that is the source of the data. Still, it seems to me that you cannot spin this as good news for Microsoft, though it might be less bad than it first appears.