Friday 4 January 2008
The Dark Side Of The Moon
So how does boosting Microsoft's chances of platform domination in the next generation serve the interests of free software? I really have no idea. Miguel can't be so naive as to imagine that Microsoft will allow their control of the Silverlight and .NET platforms to ever be eroded. (Sure, a subset of the .NET documentation got an ECMA stamp, but Miguel sees clearly that .NET evolution happens behind Microsoft's closed doors (ditto OOXML).)
It should be obvious how bad that would be for free software and competition in general. But in case it isn't: Microsoft gets to evolve the platform to suit its strategy, its constraints and its implementations, and no-one else does. Microsoft's products are always more up to date than any other implementations. And Microsoft's products are always the de facto reference implementations, so competitors have the extra burden of reverse engineering and implementing Microsoft's bugs and spec-ambiguous behaviours that authors depend on --- and even so, competitor implementations are by definition always less compatible. This is not theory, we've seen it happen over and over again. Microsoft even has a phrase for it --- "keeping the competition on a treadmill".
This is why true multi-vendor standards are so important, despite their inconvenience --- giving that power to any single company is dangerous. (Although if the dominant implementation is free software, the transparency of source code and the possibility of forking greatly reduce the dangers.)
There's also an interesting video codec issue here. Silverlight is a vehicle for pushing Microsoft's VC-1 codec. Microsoft is making that available for Moonlight as a binary blob with very restrictive licensing. Those people who like Moonlight because they can run it on BSD or some weird hardware platform are in for a surprise; in practice Moonlight will always be exactly as cross-platform as Microsoft wants it to be. I'm sure Microsoft would love to have their patent-protected codec ascendant and shoring up their platform lock.
A lot of these arguments apply to Mono itself of course, and have been thrashed out for years. But Mono at least had the promise of bringing Microsoft's existing captive developer community to Linux and free software platforms. Now Miguel is helping Microsoft enter a market where they aren't currently strong. I like and respect Miguel (this post was hard for me to write) but this strikes me as a very poor strategic move.
Comments
My question is, what is our alternative? At least moonlight can run on linux on ppc, something that despite the gnash project, is still illusive with flash. What standard is there that allows all browsers to run flash like effects? If google was to replace all of the flash in youtube, what would they use?
I am a linux user and would love to have a similar product to flash/silverlight.
The other challenge is that MS has some incredibly easy to use IDEs. Visual Studio is hard to beat. If you can design silverlight in VS, what is the open source equivalent?
/obligatory
I understand your hesitance in posting such things, when you just know it’ll be picked up by Slashdot in a few days time and cause more grief.
But Miguel has been quite steady in his brown nosing over the years, and while he might be a nice person, or a great coder, he hasn’t brought anything useful*.
Just today he mentioned someone working on Mono running on OLPC - I fail to understand why anyone would want it there...
When people say Flash is cross-platform, I always think, “no it isn’t, there isn’t a player for BeOS”, and yet, it still has many supported platforms (PSP, n800, etc).
Silverlight has 2-3 platforms, and 1 arch. Just a bit limited :)
“If MS stuck to releasing beta specs and allowing alternative implementations to have full compatibility by releasing tests, it would be great.”
No, it really wouldn’t.
The free software world is currently stuck with *having* to implement SMB (Samba), DirectX (Wine), OpenExchange (Exchange), Mono (.Net) etc, because people are hooked (read as stuck) on Microsoft products, and rather than these people taking the sane approach to migrate away, they only migrate by half - they pick gratis solutions and believe they have won.
They certainly haven’t, they’re still stuck on the wheel.
We need to be leaders, or we’ll never escape this mire.
*for certain cases of use, no doubt
Is Microsoft offering VC-1 on Linux/PPC?
One alternative is the Web standards platform --- HTML5, CSS, JS, SVG, etc. That has its good and bad points compared to Flash and Silverlight, obviously, but of course we're working hard to fix the bad points and improve the good points.
There aren't any other really good alternatives, but IMHO Flash is much less potentially harmful to free software than Silverlight, just because Adobe isn't in a position to use it as a lever against free software across the board the way Microsoft can and is motivated to do. They don't have OS and application monopolies to leverage and protect. The codec situation is also better: H264 is patent encumbered but at least it's a standard and it's not controlled by one company.
> If you can design silverlight in VS, what is
> the open source equivalent?
Adobe's Eclipse-based Flex environment? The Eclipse Web tools? Aptana? They all have issues but again, this is stuff that can and is being worked on. (And it's not like Visual Studio is open source...)
But the quality of the alternatives is not really relevant to this discussion. No matter how good Silverlight is or how bad the alternatives are, Silverlight domination will be a really bad thing for free software so I question why Miguel wants to push in that direction.
Microsoft isn't the only monopoly you should be concerned about - Adobe is just as concerning especially after the macromedia aquisition.
If you've installed Silverlight you'll note it's super smooth hardware accelerated full-screen rendering vs flash's jerky fixed low frame rates (I'm a flash developer in my day job - I notice) Moonlight is pretty good and getting better with all of the hardware acceleration work goint into X.
Anyways I am all for a Standards based open source player to compete with flash and silverlight - SVG doesn't cut it for my purposes, so I guess I'll just have to wait.
In the meantime I'll use moonlight.
Microsoft's entry into Java's market with .Net forced Sun to make Java better and eventually "open source" it.
It is always interesting how the open source community champions "choice" when it suits them, however decry Microsoft's attempts to give users an alternative choice to established monopolies like Java or Flash.
I'm not "decrying" Microsoft's work here, I'm questioning why Miguel, if he cares about free software, thinks their dominance would be a good thing.
Since you asked, I have replied to your blog as to my motivations:
http://tirania.org/blog/archive/2008/Jan-04.html
Miguel.
But if you look at any graphic designers computer it will have the following products on it: Photoshop, Illustrator, Flash (Developer application), Acrobat, Dreamweaver – all from adobe. Adobe owns a lot of patents who says they wont use them against other graphics software companies including mozilla?
For the record - I really can't see moonlight affecting silverlight adoption by more than a fraction of a percent. I think Mozilla's only strategy is to continue to write good software. So keep up the good job on that front.
And I'll keep on using Moonlight as retained mode 2d canvas in my application - because it helps get my job done, and is open source and cross platform, I'll take your advice and avoid VC1 and use Theora instead - as is possible in moonlight.
The Linux camp just don't have any leverage to 'boycott' new technology. Quite the contrary we must do anything to make/keep Linux attractive as an alternative, and empowering users to view Silverlight-enabled-websites is one aspect of that.
No, but FFmpeg is.
If you don't know about FFmpeg, it's libavcodec library is an open source decoding/encoding library that can already decode VC-1 and I seem to recall that one will be able to use Moonlight with FFmpeg. Yes, there are patent issues with that (only the Microsoft blob gives you "patent protection"), but does the end user wanting to watch videos on his machine care? No. He simply gets FFmpeg from a third party repository (like livna.org in case of Fedora)
What you also seem to not know is that VC-1 is _not_ controlled by Microsoft. It is an open standard regulated by the SMPTE. Microsoft is one of the 15 companies in the patent pool, owning 2 of the 124 patents. VC-1 is just as open (or not, if patents matter to you) as H.264 is.
Remember that? Suddenly discontinued and users directed to a 3rd party plugin for Quicktime, which is not entirely compatible.
It is entirely up to Microsoft as to what they choose to do - which I am not arguing with. It was (and continutes to be) inconvient to the end user.
This really shouldn't be a part of the argument, because it is inconsequential and nothing to do with the actual Sliverlight framework so much as it does with the common deployment practices.
Am sorry that you fail to see the point of running Mono on the OLPC. The work of Mono on the OLPC is driven by applications like GBrainy that have been built with Gtk# and C#, its a lovely desktop tool that is now being distributed for OLPC users.
You seem to belong to the school of thought of free software advocates that advocate freedom as long as it is the freedom that they mandate.
Miguel
What some "linux" people do in this area is unfortunately pretty irrelevant, at present. Next to nobody uses linux on the desktop or in mobile phones. Miguel de Icaza says, basically, that all this effort on moonlight is just a hedge to ensure that linux survives, and is not left without any implementation of Silverlight in the event it should become commonly used.
Kind of depressing for the Linux people. But Mozilla has a real chance to lead here, Don't you think?
> Just for posterity's sake, it should be
> mentioned that you can use Silerlight/Moonlight
> with video codecs other than Microsoft's VC-1;
> just like you can take your pick in the
> Flash-powered world.
Both of these statements are false actually. You can't take your pick with Flash, and you can't take your pick with Silverlight. You may be able to with *Moonlight* if/when it gets GStreamer integration, but you wouldn't deploy a Silverlight application that way because only Moonlight users could use it.
Gusar: thanks for clearing up the status of VC-1. It's still the case that Microsoft controls its design and evolution in a way that no single company controls H.264.
ffmpeg is a red herring. Asking users to download a codec from a third-party repository, which is quite possibly illegal for them to use in their country, is a non-starter for most non-technical users. What you ship enabled in your default distribution is what counts.
It's true that Linux users are insignificant leverage. This means that Moonlight has no real leverage to influence Silverlight development if Microsoft chooses not to listen or cooperate. But the value that Moonlight brings to Microsoft is still there, which is that people care about whether Web technologies are "cross platform" as a matter of *principle* (yay!) and that implicitly requires Linux support (double yay!). Microsoft and its fans are pointing to Moonlight and saying "yes!". (Just read comments in Slashdot or any forum with a Flash vs Silverlight argument.) This is what prompted my post. Microsoft is reaping the marketing benefits of being "cross platform" while retaining the strategic advantages of complete control of the platform, all thanks to the hard work of Miguel and his team.
Seems to me a fine strategy would have been to hold off implementing Silverlight until enough developers are using it that that becomes necessary (if that ever happens). The development resources thus freed up could have been used for Mono or other things at least not harmful.
The issue of me currently using a Mac is a red herring, and actually I'm annoyed it has been raised. Over the last few months I've spent many hours guiding contributors working on GTK theming and other GTK issues and reviewing their code. I took the initiative to recruit Michael Ventnor as an intern and to host him here in Auckland so he could work on GTK issues full-time for a couple of months. Compared to that, the impact of whether I actually use Linux myself is maybe 0.01%. Suffering broken X configs may feel virtuous but it really does nothing for Linux.
I still haven't managed to elicit from Miguel or anyone else a clear statement of what the strategy is around Moonlight. "Silverlight becomes dominant, it mostly works on Linux at the moment ..." but having helped build a stronger platform lock for Microsoft, how do we win long-term, or even survive once Microsoft decides that cooperation with Moonlight is no longer necessary?
I'll follow up by commenting in Miguel's blog to see if I can get this clarified.
Moonlight *today* supports OGG, and in fact supports *anything* that ffmpeg supports *already*. Am playing back OGG files *right now* with it.
And you can configure ffmpeg with whatever number of codecs you feel comfortable using (so there is no need to run for the hills scared about patents) so if you only want/can use vorbis/theora, by all means, use only that (run configure --help to get a list of everything you can remove/add: codex, demuxers, parsers, filters and protocols; All pluggable).
GStreamer would be *another* back end to support in addition to ffmpeg. One with a cleaner API, and one that makes it simpler to add/remove codecs, but thats it.
As for Microsoft reaping the benefits of their move, that seems fair to me. They help us, they get to claim that its cross platform. Fair is fair.
We would have implemented Silverlight with or without Microsoft's help. Working with Microsoft allows us to get clarifications to things that we do not understand, and get access to their test suites to ensure compatibility.
The feeling that I get is that you wanted to be able to be in a position to say "Do not use Flash or Silverlight because they are not cross platform" because you want to promote your own platform. More power to you and the open web, but as I said, this is an under-served market. And until you give people what they want, you are not serving it. And then its fair that others can come in and eat your lunch.
--
As for the Mac, it *does* matter. And it matters in two counts: first, because you are asking us to take one for the team for a larger "strategic vision", yet, we have to endure the limitations and the problems that come from it, while you live in a posh world. I would take your strategic advise more seriously if you were walking in our shoes Jesus Christ's early adopters blogged extensively about this.
And the second count is dogfooding. You can hire as many people as you want to work on it, but if you are not living among us, how can you claim to understand what it is that we need?
And I *seriously* believe that "fixing" whatever X config issue you had would not have taken you more than the "0.01%" you mention. You fix it once, and fixed it stays.
--
The strategy for Moonlight is very simple: some of us like Silverlight on *technical* grounds, on grounds that *nothing else* provides today and we rather write apps with that.
To answer your question "how do we win long-term", the answer is the FOSS desktop is a viable alternative, and end-users are able to use it without any major drawbacks to its adoption. No missing drivers, no missing apps, interop with all kinds of devices (cameras, devices, ipods, etc), no "it is ugly", no "its buggy", none of that.
Granted, my vision is OS/FOSS-focused, not browser-focused. And this is probably why we disagree.
--
Regarding: "How do we [...] Survive once Microsoft decides that cooperation with Moonlight is no longer necessary".
The same way we have always done it: by writing code. As I said, we would have implemented Moonlight *with* or *without* help, and in fact we got a *lot* of work done before Microsoft helped us, and Microsoft started giving us their tests. The Chess, Airlines, Sprawl demos were all working long before we received *any* help.
And in fact, considering that only recently we got their test suite running with Moonlight, pretty much all the work that we have done so far is based on their public documentation.
Shocking. I know. But the Mono developers are really great.
Miguel.
From Miguels blog in September:
"Some folks are asking whether they could use OGG for the video rendering in Moonlight. Today this is already possible because the media engine we use to prototype is ffmpeg which has support for this."
http://tirania.org/blog/archive/2007/Sep-05.html
VLC Media Player ships with ffmpeg:
Download stats:
Windows 104,365,841
OSX 11,880,858
My parents and uncle use this - they are non-technical users, I didn't even tell them about it - they found it and installed it all by themselves.
I've also seen it used at the cinema to display trailers on a big screen next to the popcorn stand - it crashed which was the only reason I noticed.
Since it's illegal I guess that makes my family criminals... yikes.
Remember the days of the US ban on exporting 128-bit SSL encryption, as it was classified as a munition. Netscape managed to tip-toe around that law, even though many of their international users broke it buy downloading the US version.
How come good software is always illegal! And where does the problem lie, with the law, or with the strategy of open source projects?
If users downloading third party codecs was an acceptable solution then Nat Friedman and others wouldn't have had to spend tons of time and energy arranging for legal MP3 and DVD playback in SuSE Linux. Maybe Miguel can enlighten you about this.
> The feeling that I get is that you wanted to be
> able to be in a position to say "Do not use
> Flash or Silverlight because they are not cross
> platform" because you want to promote your own
> platform.
Well yes. But I want to promote the open Web platform because it's open and standards-based, not controlled by any one company and thus less prone to the problems that I described in my post here and therefore more benign for free software. That's why I work on it. I don't think the Web platform is a good thing because it's my turf; it's my turf because I think it's a good thing.
> You can hire as many people as you want to work
> on it, but if you are not living among us, how
> can you claim to understand what it is that we
> need?
Bug reports and blogs. Feedback from a lot of users is much more useful than feedback from one user who has very strange habits anyway.
> To answer your question "how do we win
> long-term", the answer is the FOSS desktop is a
> viable alternative, and end-users are able to
> use it without any major drawbacks to its
> adoption. No missing drivers, no missing apps,
> interop with all kinds of devices (cameras,
> devices, ipods, etc), no "it is ugly", no "its
> buggy", none of that.
That's great until it comes to pass that the world's Silverlight 5.0 apps don't work so well in Moonlight because Microsoft added a new streaming format that's hard to reverse engineer or is patent encumbered.
Patents do matter here by the way, because in the open Web standards space we make sure we don't standardize anything that is known to not be implementable in free software. I doubt Microsoft will be so diligent.
> Granted, my vision is OS/FOSS-focused, not
> browser-focused. And this is probably why we
> disagree.
I don't think that's why we disagree. I think the technology matters much more to you than strategic issues, and I give them different weight.
> Regarding: "How do we [...] Survive once
> Microsoft decides that cooperation with
> Moonlight is no longer necessary".
> The same way we have always done it: by writing
> code.
As I wrote in your blog comments, this places Moonlight in the same situation as Samba and WINE and OpenOffice and Mono and WinForms: always behind, always working harder to reverse engineer bugs and undocumented behaviour, always less compatible with the de facto standard.
Web browsers are in a better situation. We have to do some reverse engineering but there are standards that matter *to Web developers*, so there is a lot of pressure from Microsoft customers on IE to conform better to those standards. We can tell a developer with a straight face that a Firefox problem is actually a site's dependence on an IE bug and they should fix their site, and these days they often will. We can take the lead on standards-based features and people will use them or at least recognize that we're ahead of IE in that area.
Actually, if you search in Mono mailing list archive, you will find many cases of Mono developers telling with a straight face that the problem is in user code and they should fix their code. They often do.
Hell, I once argued that IronPython has invalid code that only compiles because of Microsoft C# compiler bug. It was fixed when reported.
Conversely Sun have made clear commitments to not pursue as to the patents they own on Java people who develop Java implementations and have even freed the source of their own implementation.
Supporting and aiding the spread of .NET or any Microsoft technology, whether or not there are ''open'' standards on it, just gives more popularity to platforms controlled by Microsoft via their patents.
So far so good, but Microsoft's patience will run out sooner or later, especially if their sales start to be dented by alternative implementations of the platforms they control. Microsoft have gone in the past decade from trying to increase their units sales to increasing their revenue per sale, as their markets have matured...
Current development tools are fantastically complex, unstable and unpredictable, and do little more if anything than their simpler counterparts of the past. Its all designed by the likes of Microsoft to keep the gravy train rolling.
When the FOSS community copies Silverlight, its like having the healthcare system cloning heroin and supplying it for free. Its a dangerous grud no one really needs, and the sooner MIcrosoft and all the refuse that it pumps out dissappears the better off we will all be.
I do fail to see the point of Mono on OLPC. It’s a small portable with low memory and low CPU, I can’t see any reason to want a VM running on it. Does the runtime match python’s stack for size? Do OLPC users (child hackers) want even more languages to confuse them?
No, I don’t belong in any school of thought for mandating certain choices because they align with my own, I’m extremely wary of certain choices obviously, but I have to wonder why you feel the need to constantly push your beliefs onto projects.
If Moonlight supports Ogg, how does that help us? Silverlight certainly wont, so the free software community *hasn’t* won. All that could happen is a few websites require a plugin that less than 1% of the internet is going to be able to run, you don’t think that’s a pointless waste for the open web?
I certainly agree with ROC, it’s not time to elect to take a backfoot on the web, it’s time to encourage everyone to share the cloud.
Well said that man.
I know because a friend of mine in Florence (Torello Querci) did it: he had a spare X0 in his hands, sons that like playing, and he did the port.
It's that simple, and it's the power of free software, things happen even if the project leaders do not plan them :-)
Ciao,
Massi
http://www.microsoft.com/downloads/details.aspx?FamilyId=D88E4542-B174-4198-AE31-6884E9EDD524&displaylang=en
Which promotes the SL-powered beta Download Center
http://www.microsoft.com/beta/downloads/About.aspx
http://www.microsoft.com/expression/products/overview.aspx?key=web