At Microsoft BUILD earlier this month I arrived early to hear Anders Hejlsberg talk about the future of C#, and found myself next to Miguel de Icaza, co-creator of the GNOME desktop and of Mono, the open source implementation of Microsoft .NET. I took the opportunity to ask a few questions, which I have his permission to post.
I recall that when .NET was first announced in 2000, it was not long before de Icaza announced Mono. I was interested therefore to know his reaction to Windows 8 and the new Window Runtime which powers “Metro-style” apps. Will we get an open source implementation of Metro-style on Linux?
I don’t think so. To be honest, with Linux on the desktop, the benefits of open source have really played against Linux on the desktop in that we keep breaking things. It is not only incompatibilities between Red Hat, Unbuntu, Suse, but even between the same distribution. Ubuntu from this week is incompatible with the one nine months ago. And then there are multiple editions, the KDE version, the Gnome edition, the one that is the new launching system.
When you count how many great desktop apps there are on Linux, you can probably name 10. You work really hard, you can probably name 20. We’ve managed to piss off developers every step of the way, breaking APIs all the time.
I’m heartbroken, that’s the bottom line.
What about compiling your Metro app for iOS or Android?
I think that Linux has a tough time on the desktop. And the desktop is starting to not matter any more. On the other hand, building WinRT is going to be a significant amount of work. A large chunk probably could be reused from Moonlight. But it is a lot of work, to be able to reuse existing Windows apps, and in the case of iOS they already have their own stack, and Mac has its own, Cocoa is really nice and we have .NET bindings for it.
So I think we’ll learn interesting lessons from Metro. There is stuff that will be useful on other platforms like the JSON reader. But I’m not going to spend any time on WinRT for other systems.
And we can speculate about how well Metro will work in the market …
They are Microsoft, it’s going to succeed. In three years they are going to have this thing on half a billion computers, so it will be out there.
It seems like they are going to use their muscle for two things. It’s going to be a tempting space [for developers], but if you want to go into the right distribution channel for that half a billion computers, you need to abide by the Metro guidelines. They are not going to give you full API access, they are going to give you the sandboxed version. Which is good, because it can finally fix the security problems on Windows. They are going to use their muscle to reset the rules for Windows.
Especially on ARM
Right, and it is needed, they definitely need to fix this mess, a lot of malware, spyware, and the fact that everybody is sysadmin, and has to reinstall their machine every so often.
I’ve heard the word “safe” a number of times.
Right, and think of an iPad, you don’t need to be a sysadmin.
Now, you could argue that by WPF not being available to everybody and being bound to .NET they limited the effect WPF would have had, whereas Metro gives this to C++ developers, but they’re saying, hey, you can’t call Win32, there is all the Win32 stuff you can’t call. You have to use Metro. So they might be repeating that [mistake], but maybe it’s eclipsed by the fact that there’s going to be a rush to the app store. It seems like there is a big enough carrot now.
How are you getting on with the Windows 8 tablet?
I have to say, I actually like Windows 8. I am not a Windows user. It’s probably the first time that I would use a Windows machine.
Miguel de Icaza is now at Xamarin, providing cross-platform tools for using C# and .NET to build apps for Apple iOS and Google Android.
“The beauty of Linux is choice, but you have no apps to choose from. I think that was his point. We have more great desktop “environments” than we do great “applications”. That seems like a missed opportunity.”
I think you are the only commenter who understood what Miguel actually said. Personally, I’ve been wanting to migrate my own notebook/desktop systems to Linux (or FreeBSD) for around 15 years now. It was never possible because of the lack of application software that could actually compete with the commercial software that I’m regularly using. Just try replacing Apple’s Aperture with an Open Source/Free Software solution. You can’t, there is nothing that good in the Open Source ecosystem (Lightzone isn’t, thanks for trying though) – and that is only ONE example. And apparently, nobody is porting software of that caliber to the Linux desktop, and my guess is that is because there is no money to be made there.
It was possible for me to switch from Windows to Mac OS X six years ago, though – but even that was not an easy move back in 2005 for almost the same reasons that still make it so difficult to use Linux as the main DESKTOP system: The lack of professional application software that — I — need(ed). The Apple ecosystem has caught up with my needs and I no longer need Windows for anything, at least not on my private systems. In my business environment, on the other hand, there still is no way around Windows, though. And in many cases, not even on the server side of things. As much as we try, half of our servers still have to run Windows Server.
“Remember when Microsoft(R) pompously announced remote desktop (only few years ago) – well, X Window System has that for *several decades* !”
What X Window System has is NOWHERE near the efficiency of Microsoft’s Remote Desktop Protocol. Try using that stuff over a slow network connection and you’ll know the difference. There was a reason why Citrix developed the ICA protocol and why Microsoft licensed technology from Citrix and created RDP. Besides, that stuff has been around since Windows NT 4 and that’s now already over one and a half decades old. But what really matters here is this: A remote desktop is worth NOTHING when you don’t have applications to run on it. By the way, the first web browser was developed for similar reasons: To remote control applications. And as you might know, the first web browser was written by Tim Berners-Lee at CERN on NeXTstep, the predecessor of… Mac OS X. If X Windows was so great, I wonder why he even bothered inventing the World Wide Web.
The primary failure of linux is the same as that of unix. I’ve developed on Unix since 1980, so I’ve seen the history. the *nix’s simply forgot that technical people only represent about 3% of the consumers of computers. Bill Gates and Steven Jobs both had the foresite to simply recognize that a simple GUI, irrelevant of how unstable (aka windows), would be more consumable than the technical consumer facing front ends that are *nix. Bill Gates further understood that if you publicly expose the API’s (again irrelevant of how unstable), the developers would provide for the masses.
Until the *nix’s can do two things, develop as if the common consumer matters, and do it in a consistent (albiet backward compatible) fashion, irrelevant of efficiency, the masses will come to your door.
the *nix’s simply missed the oppertunity, and still continue to fight over why. It’s simple, they catered to the 3% and not the other 97%, which is why Apple and MS are where they are today.
Why don’t you show me 10 great apps for windows and then, tell me who needs to use it.Most windows users i know need a web browser, a music/movie player and maybe some office software.
Nice blog, thanks for that valuable informations. I also made my own setup for HTPC and it’s working like a charme, using multi-boot system Ubuntu and Windows 64-bit (MCE) with a Mystique SaTiX-S2 Dual Sky Xpress DVB-card