Miguel de Icaza 细说 Mix 07大会上的Silverlight和DLR

Mono之父Miguel de Icaza 详细报道微软Mix 07大会上的Silverlight和DLR
,上边还谈到了Mono and Silverlight,
实现WPF近来不在Mono团队的近来计划之内,不过Silverlight for
linux是不远的未来.就可以用.索性将他转载过来,内容如下:

Mix 07, Silverlight, Dynamic Languages Runtime and
OpenSource

A very impressive set of demos at Mix 07, the 72 hour conversation that
Microsoft is having in las Vegas.

The focus was mostly around Silverlight,
Microsoft’s new web pluging to author rich application and tools used to
design this content.

The whole Expression suite was adorable, and Blend is fantastic.

The demos were pretty amazing, Scott built a nice animation for an
airline reservation system on stage:

图片 1

Silverlight and WPF

Today Microsoft announced two Silverlight editions: one that went into
beta (Silverlight 1.0) and is a relatively simple technology.

Silverlight 1.0 uses a retained graphics system (a canvas) that exposes
the internal structure to the browser DOM. It has no scripting
capabilities built into it, all the scripting support is actually done
by the Javascript interpreter in the browser and all changes are done by
talking to a Javascript object exposed by the hosted Silverlight
surface.

The scene definition is done using the XAML markup using a subset of the
WPF primitives available in the full-blown WPF. Then the big
announcement came:

The second edition was Silverlight 1.1, and this one is a different
beast altogether. 1.1 extends the model by embedding a complete
Common Language Runtime. Here is the slide that Scott used for this part
of the presentation:

图片 2

Scott did a demo of a chess program that had logic built with JavaScript
and C#, notice the nodes per second computation:

图片 3

The outcome of the famous battle between dog vs vampire:

图片 4

There are a handful of changes to the runtime. Here are some notes on
what I found out about it today. It might not be complete nor accurate:

  • A new security system: Unlike the CAS there is no stalk walking
    but instead there are trusted and untrusted assemblies. This is part
    of a new sandboxing model.
  • Trusted assemblies have a way of flagging entry points as being
    untrusted. which requires that the caller be a trusted assembly.

    This means that calling things like
    FileStream File.Open (string filename) from an untrusted assembly
    is not permitted.

    Instead developers would call something like
    FileStream File.OpenDialog(...) (which is hosted in a trusted
    assembly) and this would in turn call File.Open(string) and this
    would return a FileStream that the user selected with a dialog box.

  • The API has been trimmed down: some classes were removed that
    did not make much sense for the core.

  • A Minimalist WPF implementation: this is now available as a new
    assembly. This implementation at this point does not seem to
    have support for high-level controls like Buttons or Sliders, those
    have to be authored in a per-application basis.

    There is talk about which pieces belong in the minimal WPF and which
    pieces do not.

    In my opinion, keeping the controls out was a good idea as the
    controls in the real WPF are a bit too big.

  • Dynamic Language Runtime: the dynamic language runtime is an
    integral part of the Silverlight distribution.

Dynamic Language Runtime

The Dynamic Language Runtime was announced today. Jim Hugunin’s blog has
the details and rumor is that in the
next couple of days/weeks he will be posting on his blogs the technical
details behind the design of the DLR.

图片 5

Binaries of the DLR were released today as part of Silverlight 1.1, and
the source code was included with IronPython 2.0 (also released today).

The release for the DLR is done under the terms of the Microsoft
Permissive License (MsPL) which is by all means an open source license.
This means that we can use and distribute the DLR as part of Mono
without having to build it from scratch. A brilliant move by Microsoft.

During the keynote they announced support for four dynamic languages
built on top of the DLR: Python, JavaScript (ECMAScript 3.0), Visual
Basic and Ruby.

The rumor on the halls is that IronPython and Ruby will be released
under the MsPL license, while ECMAscript and Visual Basic will continue
to be proprietary. From Jim’s announcement:

For the short term, our focus is on using a small number of languages
to drive the first wave of DLR development where we can work closely
and face-to-face with the developers in order to iron out the worst
kinks in the DLR design. After this initial phase, we want to reach
out to the broader language community. If you’re building a language
on top of .NET and are interested in supporting dynamic language
features then we want your feedback on the DLR. However, I’d
discourage you from trying to implement on top of the DLR today. I
don’t want you to get frustrated trying to work with these really
early bits and then not be interested in working with us when we’re
better prepared to engage with the language community. We plan to kick
off a broader engagement with language implementers at the upcoming
lang.net conference in three months – at the end of July. This will be
the best place to really engage with the DLR and let us know what we
got wrong.

Mono and Silverlight

For a long time a common question that the Mono team was when we were
planning on implementing WPF.

Most people want to hear a date like “tomorrow”, “next month”, “in a
year”. But the answer is more complex than just thinking “we can do this
in N months”.

We as a team have to evaluate the cost of implementing a technology and
contrast it with the impact that such technology would have. With our
finite development resources (in the Mono community and the companies
contributing to it) we have to pick our battles.

And implementing WPF was never really high up on the priority list for a
couple of reasons:

  • WPF requires a very big investment before things will start working.
  • Users of WPF is limited to those starting new applications and are
    willing to start those applications using WPF.
  • Only a minority of existing users (Windows.Forms) were willing to
    rewrite their software to move it to WPF. The rest basically will
    continue developing Windows.Forms and using the technologies they
    have been using for the time being.

So it is fair to say that we currently do not have plans to look at WPF.

But a Mono-based Silverlight is an entirely different story. Unlike WPF
that requires people to rewrite their software to take advantage of it,
Silverlight is aimed at the Web and it will become a nice complement, a
way of spicing up existing web applications without rewriting what
already works.

It makes tons of sense for us to start looking at an implementation of
Silverlight on Linux with Mono. There is already a XAML loader, it is
the perfect excuse to use Antigrain for high-speed graphics and that
only leaves the pesky media issue to be solved.

In fact, am kind of happy that Microsoft did not do the port themselves
as implementing this sounds incredibly fun and interesting.

Upsides

The major upside of this show has been how open the Microsoft folks have
been open to discuss technicalities of any sorts.

I had the chance of participating on an open source panel at the
conference and PHP, Mozilla, SubSonic.NET and Mono were well represented
and I did not fell any angry mood from anyone.

There is also a surprising amount of talk about using the MsPL license,
again, all good news.

Finally, I also made tons of new friends, have had a great time with
everyone I have met here. I also noticed that both Jon Udell and Dave
Winer both look happier, they were always smiling,

IE 8?

Someone mentioned (and I forget whom it was) that talk about IE8 was
strangely missing from the whole conversation. There were no
announcements about new upcoming features in IE, no mention of whether
IE8 will support what-wg nor any future plans.

Predictions

So how did my
predictions score?

  • “They will spend most of the time showing the new features in the
    recently released Orcas and probably the Silverlight media
    encoder.”
    At least on the keynote there were little demos of Orcas,
    most of the demos were demos about Expression, but they did show the
    Silverlight media encoder. Am going to give myself half a point.
  • “There will be a fresh Silverlight update.” score 1.
  • “Blend and Expression Design will probably ship as a final product,
    or a new beta will be released.”
    They did. score 1.
  • “Dynamic Language Runtime: a set of class libraries with some sort
    of supporting infrastructure in the CLR to help dynamic language
    authors speed up their code.”
    . score 1.
  • “Javascript: probably Microsoft will announce that they are
    upgrading the JScript compiler in .NET.”
    Although they did announce
    that it would be writing a new JavaScript compiler, it is not clear
    if its a research prototype to test the DLR or the real thing, so am
    going to go with half a point.
  • “Silverlight will bundle a micro-clr.” Silverlight bundled a full
    CLR. So zero points, although I was close.
  • “Silverlight for Linux. And if there is no announcement, we should
    try to get someone drunk enough to get them to do it.”
    There was no
    announcement of Silverlight for Linux, but I was still kind of
    joking. But I did get drunk with senior Microsoft employees. One
    point.