Thursday, October 11, 2007

Flash rulez

Courtesy of Corey.
Fairly impressive set of announcements from Adobe's MAX conference this year.

Most notably (for me):
  • Aformentioned Flash player support for H.264/MPEG-4 should be released in the next few weeks (though media streaming is still tied to their Media Server, which kinda sucks),
  • 2D Shading language for Flash code-named Hydra; you can check out a HW accelerated only version here,
  • C/C++ compiler for Actionscript; not sure if this will be productized, but the demo of Quake I software rendering compiled to the AS3 VM is pretty cool (end of the second video, here),
  • Substantially expanded text control: flow, wrap-around, tables, etc.,
  • 2.5 rendering, e.g. a perspective display system.
Get (slightly) more detailed info at Adobe Labs.

With some significant focus of the developer productivity/debugging chain, Adobe could make things very interesting for the current generation of incumbents (Sun, Microsoft, etc.).

Certainly it turns up the heat intensely for the Silverlight team... and even moreso for the future of Java on the desktop for RIA.

Labels: , , ,

Monday, May 21, 2007

Microsoft's good at this...

I'd love to see Microsoft's "best practices" guide on the platform effect - they're good at it (generally). Like the developer entanglement Adobe's attempting with their eco-system, hard to argue that 4 gigs of Silverlight storage and streaming is bad for developers... just check out the community response (from a self proclaimed Adobe "Flex Machine", no less).

Though, these days, this seems more like a Google tactic than a Microsoft one... what does that tell you?

Labels: , , , ,

Tuesday, May 01, 2007

MIX '07 and Ray Ozzie

Ray Ozzie, Chief Software Architect of Microsoft (along with Scott Guthrie, General Manager of the tools group) presented the keynote at MIX '07, 2nd annual Microsoft's Web UI and development conference

The core tenet of Ray's argument is that client side computing is vital to delivering rich experiences. I think he made that case well (and I agree with the rationale), but Ray didn't really address how or why Silverlight specifically and WPF generally was better than browser + DHTML/SVG/Flash/Java, or whatever, in terms of ANY richer function and/or end user benefit.

Specifically, the undertone of the arguments, from both Microsoft and Adobe, is that a single sourced runtime is better for the developer - more consistency across a wider variety of platforms (browsers, OS'es, devices, etc.). And, as a practical matter, its hard to disagree with that - and there's enough that's "open sourced" by the vendors to reduce impedence in the development chain.

Speaking of which (and not to be overlooked), the development chain that Microsoft is putting together is nothing short of phenomenal. If there's a "secret sauce" in Windows continued dominance in the Enterprise (and thus, everywhere else) its through the tools, class libraries, etc.; they continue to define the cutting edge of developer productivity. Perhaps somewhat counter-intuitively, it seems particularly well designed for small teams and becomes an easy way to develop prototypes, and, in turn, go from prototype to production.

Platform success, which I'll define as self-sustaining propagation and increasing barrier to exit, is definitely AADD (All About the Developers, Dummy).

There was also a Michael Arrington interview with Ray and Scott, which might as well have been conducted by a Microsoft employee. What few interesting questions were asked went basically unanswered, and at least that way there would have been less mumbling.

Labels: , ,

Monday, April 30, 2007

MIX '07 (and Silverlight)

I'm at MIX '07 in Las Vegas. Come find me if you're there (here).

Also, I should note (based on surprisingly copious amounts of e-mail I received) that I didn't comment on Microsoft's "announcement" of Silverlight at NAB because, well, there's no there there. Silverlight is the new name for what used to be called WPF/e - and the news at NAB was just that: a name change.

The actual technology available was the same February Community Technology Preview that had been available for months. I expect that will change this week, but I was impressed with the vortex of press MS was able to create for their naming ceremony :)

As an aside BubbleMark presents a very simple, very basic, and very artificial performance test (that is, I think the results are STRONGLY un-correlatable to any real world application), but its fun to look at the code for each version.

Updated: Yep - here's the new "1.1" Silverlight build, which includes the cross-platform mini CLR (essentially dot NET lite for Windows and OS X). The distribution size went from 1.1MB to 4.2MB (just a developer build - so no judgement yet). It will be interesting to see what the final size is once Silverlight approaches functional usefulness (its not there yet).

Labels: ,

Thursday, April 26, 2007

Adobe Flex Open Sourced

Adobe announced today that they're open sourcing the Flex SDK (which includes the compiler, debugger, and Flex ActionScript libraries). It shouldn't come as too big a surprise, considering the recent MPL release of their ActionScript 3 VM to the Mozilla Foundation, Tamarin.

The model, as with Postscript, and, quite frankly, Windows, is the "Platform Effect" - monetizing both the runtime (Postscript/Windows/Flash) and providing rich(er) enterprise level authoring tools and functions (Authoring tools, servers, etc.). Releasing the specifications and "core" tools creates the illusion of freedom in tool chain, while actually delivering vendor lock-in - which isn't necessarily a bad thing for developers if (a) there's runtime ubiquity, and (b) the developer's not on the hook for distribution costs.

And getting developer buy-in (lock-in?) creates a "virtuous cycle" of scale for the platform provider... ultimately why API and specification ownership is so critical in the technology business cycle.

Although I think Adobe's Apollo (which is Flex driven) is still slightly off in its execution of product distribution, overall the company is doing a good job driving a giant truck over the ongoing bungling that is WPF (I mean... Silverlight).

And (naturally) this will impact (squeeze out) smaller players like Laszlo, Haxe, and mtasc more than affect the big players...

Labels: , , ,

Thursday, January 25, 2007

Sampling theory, pt 1: WPFE in pictures

I got a few questions and comments about my comment that WPFE "botched" the sampling rules for bitmaps/images. I tried to explain in the comments, but its clear I wasn't clear.

So, I'll post a clearer text/mathematical explanation shortly but here's the issue, by visual example.

First a simple "linework" image:


Next, the same image if I apply a 400% scale to the canvas, as rendered by WPFE (I cropped the result to the upper left corner):


And now, the same image, with a 400% scale as produced by my (new) rasterizer - this is also the same image that Flash 8+ and OpenGL will produce:


See the problem?

I'll explain why this isn't a black and white issue, but why I think MS landed on the wrong side of it shortly, in a follow-up. The problem is covered well in the seminal computer graphics memo from Alvy Ray Smith, "A Pixel is NOT a little square..."

Alvy Ray, of course (being Alvy Ray), is not wrong in his final conclusion, but that doesn't make his point right for all applications either, and therein lies the rub... most UI designers, I'll posit, think of images as exactly little bags of rectangles...

Labels: ,

Tuesday, December 19, 2006

December WPF/E CTP: First Impressions

Updated: Some more details about WPFE and texture sampling issues.

So.... not bad.

I've been playing with the Microsoft WPF/E CTP a little over the last week-ish (its a slow time of year), and I thought I'd post some early thoughts. These are mostly a ramble - no particular point that I'm making, and it might not be entirely coherent.

Rendering
Appears to be a pure software rendering pipe (that is, there appears to be no Hardware acceleration in this CTP). Good antialiasing quality - appears to 4X oversampled in the y-direction and analytical in the X. As with GDI plus, I think they botched the texture sampling rules. Its a little better than GDI plus was, but still wrong (IMHO) for resolution independent UI - which of course, is a big part of the goal. Macromedia got this right (at least, starting with Flash 8). Although its a software rendering pipeline, it also looks like WPE/E employs a front-to-back display (or some form of overdraw prevention, at least), and performance is pretty decent - though I haven't stress tested complex shapes or the like yet (Updated: I tried, and failed, to load the simplest benchmark - must be a point limit, though I couldn't find any documentation/info on that).

And no 3D support.


Interactivity
No controls (buttons, menus, text edits, etc.) are present in this CTP - you get events, and you get shapes and images (textures), so... hard to say much about this yet. Startup time for the WPF/E plug-in appears good - the header of theWPFblog (appropriately) is WPF/E, for example, and loads nicely/quickly - WAAAAAY better than .NET 3.0/XBAP (e.g. try this sample).

Still, I think the packaging streaming model, although goofy in Flash, makes it much easier for developers to explicitly control and manage assets loading. It will be interesting to see how important this becomes in the real world for building larger scale applications - I think Microsoft is at major experience deficit in this one key area.

Animation is a bit odd still, and the property/element "." syntax rules still throw me a bit...

Samples/SDK
Documentation and SDK - really nice.
Samples? Laaaaaame.
Pretty much most of them could have been built trivially in Flash, or even DHTML. Even the Page-turn example is mostly about clever content (for example, the shading is a part of the ARTWORK). Not one example shows the expressiveness potential of the runtime. Most of these HTML samples are more inspirational. I realize this is just the first CTP - but *ONE* killer sample would have been nice.

Overall
The language is nice and expressive - its pretty easy to get started and build "rich" interactive content. If you're starting from scratch, much easier than Flash, Flex, or DHTML even. The browser integration and support for multiple platform (browser and OS) right out of the gate is a good move. CLR integration (and the release of the mini-CLR) is the big "FUD" thing we're all waiting for, I think. The code-behind model really leverages the excellent "first class" host DOM integration. Plug-in size and updating may be an issue, but its early enough that I'll reserve judgment on that. Currently, the IE control is 1.1 MB - the other variants (browser and OS) are quite a bit bigger.

All in all... a decent first CTP - looking forward to more... and some clearing up of the massive general confusion about how WPF, .NET 3.0, XBAP and WPF/E are supposed to fit. Everything I've seen so far seems to be after-the-fact rationalizing of internal competition and overlap.

Labels: ,

Monday, December 04, 2006

WPF/E CTP now available

The application runtime arms race is off.

Adobe's Apollo is due early next year, as is a more functional (read: useful) XULRunner from the Mozilla foundation. But first out of the gates is Microsoft with their cross platform web content runtime framework: you can now try out WPF/E. Read more here.

At least from a "promise" perspective, WPF/E more squarely what Avalon - now WPF in Vista - or even ChromeEffects (for you old-timers) was going to offer, but, significantly, this is cross-platform from the get-go. The "E" is for "Everywhere". And just to prove it, the CTP is available for Windows and Mac OS X (well, Safari on OS X anyway).

I'll post some thoughts later this week after playing with it. As I've mentioned before, the evolution is towards
general purpose computing technologies to make rich application distribution instantly ubiquitous. There are some significant and interesting technology choices that imply certain classes of applications and uses... more on this in the future. Confusingly, WPF will ALSO run in your browser and enable web applications but only on Windows, and its, uh, somehow different than WPF/E, and, uh, richer (?) somehow... though neither is a subset of the other... yeeeeahhh.... quick over there! Linux is eating your IP!!!! .....

Of course, still an open question is what "rich" really means and if people really care at all ... :)

My (biased) guess is that it does, but our current generation of applications and infrastructure (not to mention imagination) just isn't there yet. After the fact, I think we'll go "of course!" (iPod anyone?)

(and oh, btw, this was the idea with
Boxely and the OCP, too, but... cie la vie :))

Labels: , ,