1【 以下文字转载自 Programming 讨论区 】
发信人: wwzz (一辈子当码工), 信区: Programming
标 题: 软软open source .net， 在 linux／mac 上跑
发信站: BBS 未名空间站 (Wed Nov 12 12:55:51 2014, 美东)
Satya Nadella’s rapid reinvention of Microsoft continues.
In yet another bid to make up lost ground in the long march to the future of
computing, Microsoft is now open sourcing the very foundation of .NET—the
software that millions of developers use to build and operate websites and
other large online applications—and it says this free code will eventually
run not only on computer servers that use its own Windows operating system,
but also atop machines equipped with Linux or Apple’s Mac OS, Microsoft’s
two main operating system rivals.
“We want to have a developer offering that is relevant and attractive and
valuable to any developer working on any kind of application,” says S. “
Soma” Somasegar, the 25-year Microsoft veteran oversees the company’s wide
range of tools for software developers.
S. “Soma” Somasegar.
S. “Soma” Somasegar. courtesy Microsoft
With the move, Microsoft is embracing the reality that modern software and
online services run atop a variety of operating systems—and that Windows no
longer dominates the market the way it once did. At least tacitly, the
software giant is acknowledging that so many businesses and developers now
choose to run their software atop computer servers loaded with the open
source Linux operating system, which, in recent years, has evolved in ways
that Windows has not. Most notably, it offers what’s called containers, a
new means of streamlining the way applications are built and operated.
“Today, people who are stuck on the .NET platform have to use a server
environment that doesn’t have what Linux does,” says James Watters, who,
at a company called Pivotal, works hand-and-hand with a wide range of
developers and companies as they build large online software applications.
“They’re stuck with a generation-behind technology.”
For Watters, Microsoft has ample ground to make up. But in opening sourcing
what’s called the .NET Core runtime—freely sharing it with the world at
large—the company at least gives itself a fighting chance as it seeks to
maintain a hold on the way the world builds and runs software.
In theory, an open source .NET that runs on Linux and Mac OS will expand the
use of Microsoft’s developer tools. Then the company can pull in revenue
through other channels—through premium versions of its developer tools and
through its cloud computing service, Microsoft Azure, a means of building
and running software without setting up your own servers.
The move is just the latest in a long line of rather large changes Microsoft
has made since Nadella took over as CEO in January—all with an eye towards
the rise of rival operating systems and open source software. The company
now offers free versions of its Office applications for Apple iPhones and
iPads. It provides a free version of Windows for phones and other small
devices, hoping to catch up with Google’s open source Android operating
system. And it says that the next version of Windows for computer servers
will run Docker, a hugely important container technology that was originally
built on Linux.
All this seemed unlikely under previous CEO Steve Ballmer—and all can help
Microsoft find new relevance in the ever-changing world of online computing.
Among developers and businesses building websites and other large online
services, .NET is one of the primary competitors to Java. It’s widely used
among companies that rely heavily on Microsoft software —the company says .
NET was installed more than 1.8 billion times over the last year—but
according to most estimates, Java is still the more popular tool. And many
consider it the more powerful.
According to Watters, about 60 percent of Pivotal’s customers built their
apps atop Java, about 40 percent on .NET. “Java is the go-to, and .NET is
the legacy,” he says.
‘YOU HAVE TO SUPPORT ANY PLATFORM A DEVELOPER WANTS TO USE.’
Both provide a “virtual machine” where you can execute the applications
you build—a foundational piece of software that sits on a computer server
or a PC or a smartphone, providing a way of more efficiently and more
conveniently running your applications. In essence, you use the Java
programming language to build software that runs atop the Java virtual
machine, and you use Microsoft’s C# language to fashion code that runs atop
The main difference that Java is largely open source and its virtual machine
runs atop so many different operating systems. .NET only runs on Windows—
though an independent project called Mono has built an open source mimic of
.NET that runs on other operating systems, including everything from Linux
server OSes to smartphones OSes such as Apple’s iOS and Google’s Android.
This means that .NET—though enormously popular—is behind the curve. “You
have to support any platform a developer wants to use,” says Andrew Lee,
who helps run Google’s cloud computing services.
In open sourcing the .NET virtual machine (essentially, the .NET Core
runtime) and associated software libraries, Microsoft hopes to do that.
Basically, after open sourcing the code, the company will work with outside
developers—including those behind the Mono project—to build versions of
the .NET virtual machine that run on Linux and the Mac OS. Previously,
Microsoft open sourced other parts of .NET that will help facilitate such
The move to Linux is the big change, considering that the open source OS is
now such as an important part of the way companies run modern online
services. With .NET on Mac OS, the point is that this will make it easier
for developers to build software for Linux servers. So many programmers
build their code on their personal Mac laptops and desktops before running
it on Linux.
Miguel de Icaza, the founder of the Mono project and the chief technology
officer at Xamarin, a company that has commercialized the Mono software,
believes all this will indeed expand the audience for .NET. “This should
grab a lot of people who were on the fence—people who had to choose between
.NET and something else,” he says. “For a lot of people, it was a deal
breaker that it didn’t run on Linux.”
Open Source Windows?
It should be said, however, that Microsoft has merely taken a first step
towards a world where .NET runs beyond the Windows universe. The code that
will allow the software to run on Linux and Mac OS has not yet been built.
“It will be a few months before you can get your hand on this,” Somasegar
But things are at least moving in the right direction. According to
Somasegar, engineers within Microsoft have discussed doing this kind of
thing for a good 12 years, and now, with Nadella at the helm, the company is
actually making it happen.
Somasegar doesn’t give Nadella all the credit for such big changes, but he
acknowledges that the new CEO has played an important role. “He is very
good at driving forward, moving forward. Status quo, standing still, is not
an option when you’re under that guy,” Somasegar says. “What he has
helped us all do is continue with what we have been all been thinking about
for a while now—and sort of kicking it into a higher gear.”
Yet James Watters believes the company should go further. An open source .
NET will make Microsoft software more appealing to developers, he says, but
perhaps not as appealing as the combination of Linux and Java or some other
programming platform. Though .NET will be open source—giving coders the
power to shape the code to their particularly needs—there’s other rather
important Microsoft software that’s still unlikely to evolve as quickly as
“This is great,” Watters says of an open source .NET, “but it would be
even more powerful if they made their operating system open source too.
Those .NET runtime facilities interface with low-level libraries in the OS.
If the entire stack is open source, folks can really optimize things.”
Yes, he’s calling on Microsoft to open source its crown jewels: Windows.
2这个也是大趋势。Visual Studio 很大一部分都免费了。
下一步是Mac/Linux 上的Visual Studio,这个估计还要一点时间。