Up to now, Microsoft has jealously guarded its developer base, forcing developers to adhere to “either-or” scenarios of Java versus .NET or open-source versus Microsoft. But now, Microsoft is making some major changes that it hopes will prove those days are waning, if not over.
Microsoft is now taking .NET to places it has never been or would never even venture: cross-platform, open source and to the cloud. The biggest challenge Microsoft faces in doing this? Managing to attract a new set of developers to the .NET fold while simultaneously keeping the loyalists from straying.
Indeed, Microsoft is using its .NET development framework as the linchpin in an effort to further open its environments to the cloud and attract more developers to its ranks.
In December, Microsoft announced it was going to make .NET—which has been around for more than a decade—both a cross-platform and open-source technology with Microsoft-supported distributions of .NET for the Windows, Linux and the Mac operating systems.
“It’s been over 12 years since we launched .NET, and it’s been wildly successful,” S. “Soma” Somasegar, corporate vice president of Microsoft’s Developer Division, told eWEEK. “We have over 6 million developers building .NET applications, ranging from mission-critical workloads in an enterprise to anything and everything else. Just in the last year, we’ve seen 1.8 billion installs of .NET.”
However, no longer will developers be relegated to the old 12-years-a-slave mentality in a Windows-only .NET world.
Taking .NET cross-platform opens up a new order in the software development world. While developers may find that the grass is not always greener on the other side, at least they’ll get to graze on that side and see what it’s like. Microsoft, with this move, hopes to become all things to all developers. Yet, it’s not even a question of who gets to market first or even “best” with a new development environment for the mobile-first, cloud-first world; it’s a question of what’s most expedient.
In that regard, developers are a lot like everybody else in the workaday world. They want to get their jobs done and get paid. They ask “how can you make it easy and comfortable for me to build compelling cloud/mobile apps and make money?”
Making .Net a cross-platform and open-source technology is central to that. It is motivated by the need to create a .NET stack—specifically focused on the Web stack—that is designed and optimized from the start for the requirements of modern cloud applications.
Jay Schmelzer, director of program management in Microsoft’s Cloud Platform Tools group, told eWEEK the move is also intrinsically about the need for composability of the framework. That is, “allowing developers to pull in only the components they need for their application and replace components we have with components that are more custom to their needs where appropriate,” he said.
These components are designed for high throughput, high performance and smaller footprint apps. They provide better isolation of the entire stack from runtime up through the framework and the application stack.
This gives developers increased confidence that the version of the runtime and framework with which they developed, tested and deployed their application is the same version that they continue to run on until they decide to change it, free of machine-wide events that could affect them, Schmelzer said.
Microsoft Counting on Developers to Follow .Net to the Cloud
Microsoft is taking this “both from the perspective of giving our existing .NET developers the confidence that when they find themselves in an environment where they need to build applications and run them on non-Windows machines they can still do that [while] leveraging all of their existing .NET knowledge and skills, as well as opening up the opportunity to engage a new set of developers and customers that come from a more Linux background—especially with the cloud,” Schmelzer said.
He noted that while some observers may have viewed Microsoft’s plans to open-source .NET as perhaps sounding a bit trivial, “We view this as the way software is built today.” Besides, “It was time for us to really embrace that, both from being modern in the way we build our software, but also enabling a vibrant ecosystem of commercial and non-commercial developers to confidently build extensions around .NET and really revive and invigorate that ecosystem,” Schmelzer said.
“Microsoft’s strategy here is based on the idea of a much more modular approach,” said Mark Driver, an analyst with Gartner. “They want to give developers a plug-and play ability to deploy what they need in certain packages and not just this gigantic, monolithic thing called .NET.”
Moreover, the cross-platform aspect is Microsoft’s attempt to embrace the notion of choice and flexibility for developers.
“The developer landscape has shifted and open source is increasingly seen as table stakes in terms of beginning to attract critical mass in developer skills,” said Al Hilwa, an analyst with IDC.
Customer Requests and Linux First
But this was not all Microsoft’s idea. Customers asked for it and .NET continues to be a very popular framework—not only for building Windows desktop style apps, but also increasingly for Web-based apps.
However, Microsoft began getting more and more feedback from its users that they love the framework and they love the productivity that they get from it and the programming languages that Microsoft delivers with Visual Studio. But there were customer requests about ensuring they had flexibility going forward.
“A thing we’re seeing is that as large organizations are moving to the cloud, most organizations have a desire to simplify their environment,” Schmelzer said. “And one way to do that is collapsing down into a core set of operating environments that [they] want to support. The ability for .NET to run cross-platform is something that frees developers up from being concerned about the way that whatever the organization may want to learn as it thinks about its cloud strategy and as it thinks about its execution environment, they know with confidence that their .NET solutions will run in those environments in the cloud. That was a request we were hearing and was one of the motivations for that.”
Another major motivation was seeing a number of workloads that were being developed for Linux-first, Schmelzer told eWEEK.
Big data was one example of that with things like Hadoop. “We want to ensure that the .NET developer is able to take their .NET skill set and apply it into those workloads and do it in a very efficient way,” Schmelzer said.
“So they will be able to write C# code that extends into a Hadoop solution in a productive way running on Linux. We’re opening up those channels for our existing .NET developer base.”
The idea also is to talk to a new set of developers Microsoft does not talk to so much today. For instance, Schmelzer said, Microsoft had conversations with Groupon’s CTO, who expressed satisfaction in hearing that the .NET runtime and virtual machine would be available on Linux because Groupon is a Linux shop.
Microsoft Counting on Developers to Follow .Net to the Cloud
“They have a big infrastructure built up around Linux and the introduction of .NET on Linux, and a Microsoft-supported distribution of that frees them up to give his developers the opportunity to look at .NET and C# as an option for building out their backend workloads that need to run on Linux and not restricting them to a different set of environments—such as a Java-only environment for example,” Schmelzer said.
“A strong, open-source, cross-platform CLR [Common Language Runtime] opens significant new options for building large server-based systems,” said Brian McCallister, CTO of Groupon.
“This significantly expands the choices developers have when finding the right tool to solve their problem. I’m very excited to have access to the quality virtual machine and tooling of the CLR without having to completely rework our production infrastructure in order to run it,” McCallister said.
Winning Hearts and Minds
Microsoft’s strategy is sound, but .NET still has to win over the crowd.
“While .NET has a loyal following on Windows, it now needs to win the hearts of the world,” said Miguel de Icaza, CTO of Xamarin, creator of the Mono project and member of the board of directors of the .NET Foundation.
“There are some steps that are being taken. In particular, the new ASP.NET vNext is a redesigned Web stack that brings the best advances in Web programming trends to .NET while starting from a clean slate. This builds on a solid foundation of performance, type safety, and a comprehensive and well-designed stack. Hopefully, there is a need in the world that .NET can fill in quite well and the ghosts of the past no longer exist.”
So Microsoft’s moves are perfectly logical and evolutionary, many longtime Microsoft developers and watchers say. Ultimately, the languages, tools, plumbing and platforms are going to have to evolve to support a mobile-first, cloud-first world, said Tim Huckaby, chairman and founder of InterKnowlogy and Actus Interactive Software.
“That is a world I want to live in,” he said. “It’s just too hard to build apps right now in the world we currently live in with so much disparity in plumbing and platform.”
Software developers often refer to “plumbing” code that connects application components together as opposed to the business logic of the program that instructs applications how to operate. It is often the stuff of frameworks and boilerplate components that programmers can reuse.
Building cloud apps still poses a challenge, noted Jonathan Zuck, president of the Association for Competitive Technology. As the world moved to cloud apps, “it’s important to move developers there comfortably, regardless of the tools they currently use,” Zuck said.
Developer comfort is especially important as software becomes increasingly complex and ubiquitous across the Web.
“Regardless of where it is used, software is becoming more complex,” said Theresa Lanowitz, analyst and founder of technology industry research firm Voke.
“With the increasing complexity, it is rare that one organization owns all of the software it is working on. Code is coming from partners, suppliers, etc. Microsoft needs to make sure developers have everything they need to make their jobs of application development as productive as possible, said Lanowitz.
“A mobile/cloud-first mission is completely useless if developers have to create software for the lowest common denominator,” Lanowitz said.
Moreover, Microsoft’s open-sourcing of .NET is making developers comfortable in other ways. Xamarin’s CTO De Icaza called it a “key and necessary step” to working with other developer communities.
Microsoft Counting on Developers to Follow .Net to the Cloud
“Before the open-sourcing of .NET itself, the Unix and open-source world assumed that Microsoft could, at any point, sue them for patent infringement,” de Icaza said.
“This is a thorn that has been by Mono’s side since the project’s inception. With the open sourcing of .NET and the patent covenant, that dark cloud over .NET on Unix has been lifted,” De Icaza asserted.
“This puts .NET on an equal footing with other technologies in the open-source world, and it can now compete on its merits and not be ignored from the start based on fear.”
.NET for the Cloud
Meanwhile, Microsoft is leaning heavily on its flagship Visual Studio toolset to move .NET into the mobile-first, cloud-first world, said Billy Hollis, partner at Next Version Systems and a member of the Microsoft Regional Director program.
By opening up Visual Studio to open source as well as Microsoft’s own platforms, Microsoft retains its influence over the development process, Hollis said. “When they change .NET to adapt to cloud or mobile, there’s no debate about whether developers get those changes—they just come along for the ride,” he added.
This positive view of Visual Studio’s strength is shared by David Fuller, vice president of applications and embedded software for National Instruments. “Visual Studio provides productivity features for the large-scale team-based designer,” he said.
“We did exhaustive analysis of managed languages and consider .NET to be best in class in terms of language design and productivity versus performance tradeoffs. Further, there is a vast ecosystem of partners and IP that we felt we could leverage for our product development,” Fuller said.
Hollis said he believes that for the short to medium term, .NET is well-positioned for use in cloud applications. “I think it’s the dominant platform created in the Internet age; it’s very flexible but not too hard to learn and lots of developers know it.”
However, .NET was created for a world of internal servers and desktops, Hollis noted. It will need some significant changes and additions to become as dominant in the cloud as it has been for the last 10 years in businesses. So just making it cross-platform and open-source is not enough for the long term, he argues.
“A platform that can be dominant in the cloud for the long term will need to change the way we think about application development to optimize it for the cloud,” Hollis said.
For example, such a platform would do a better job of separation of plumbing code and business logic. The standardization inherent in the cloud makes that both feasible and desirable. “Applications will also need to be rethought to take advantage of cloud-based engines,” Hollis said.
“Today, for example, speech recognition is far more practical and widely available because the heavy lifting is done in the cloud. We need cloud engines for lots of other things, such as on-the-fly creation of user interfaces optimized for the particular device being addressed,” he said.
According to Hollis, .NET could be the platform where such new cloud technologies are implemented, but it’s not a sure thing that it will be the platform of choice. “A lot depends on Microsoft’s vision for doing cloud-based innovation in .NET,” he said.
Leave No Developer Behind
Microsoft will share a lot more of its vision for .NET at the upcoming dotnetConf 2015 March 18-19 and Microsoft Build 2015 at the end of April.
Microsoft Counting on Developers to Follow .Net to the Cloud
Among the many questions developers have is if Microsoft will leave some .NET developers behind as it evolves the framework, as it has done with other big developer moves in the past.
Microsoft’s Schmelzer said he does not think the same thing will happen in this case.
He said he believes that Microsoft needs to do a better job of articulating that “when we think about .NET 2015, there really are sort of two flavors of that,” he said.
First, there is what Microsoft refers to as the full framework version of .Net, Schmelzer said. That’s the version that everybody knows and works with today. It’s a single framework that encompasses both client and server scenarios off a common runtime and just-in-time [JIT] compiler.
Microsoft will release the 4.6 version of that framework as part of .NET 2015, Schmelzer said. The focus of this release is mainly on stability and performance improvements, Schmelzer noted. This will not only get the new JIT; the Roslyn compilers will be available, as well, he noted.
Roslyn is the code name for the .NET Compiler Platform, which provides open-source C# and Visual Basic compilers with rich code analysis APIs. It is essentially a remake of the .NET compilers aimed at taking developers to the cloud.
Microsoft expects that most current .NET developers will continue working with that updated full framework, “especially client applications, whether it would be WinForms or WPF [Windows Presentation Foundation], they would stay there,” Schmelzer said. “But also other apps will stay on that style of the framework for a while.”
However, the core runtime and the ASP.NET 5 that runs on top of it are mostly targeting new development,” Schmelzer said.
“From a Web scenario, we are focusing on the modern Web framework—so the MVC framework, SignalR, those kinds of technologies,” he said.
Web Forms will not be part of that initial release. “That’s one we will wait to see what the community response [is], and we’ll wait to hear back from the developer base,” Schmelzer said.
If Microsoft gets a lot of feedback that people see the need to migrate their Web Forms applications, then the company will take a look at that, he said. “But the initial focus is on the new modern style of applications—thinking about the cloud, thinking about emerging design patterns like micro services and things like that, where you’re looking at smaller, loosely coupled services” that are linked together to create an application, Schmelzer said.
But Microsoft continues “to invest in both aspects of it. My team invests in both the full framework—the 4.6 and beyond—as well as the core version of the stack.”
For his part, Hollis said he does not think any decisions as to whether to leave a segment of developers behind have been made yet.
“I think it depends on how much Microsoft is worried about the ‘dark matter’ developers—developers who just do 9-to-5 jobs and don’t go to conferences or fool with open source or whatever—moving to the cloud,” he said.
“The broad-base surveys still have around 35 to 40 percent of Microsoft ecosystem developers using some flavor of Visual Basic, but if Microsoft believes they are laggards who won’t move to the cloud for another five or 10 years, Microsoft might decide they are not worth the trouble and leave them behind.”