July 12, 2006

Flash Player #9, Pt 2

Continued from Part 1.

I came across a post recently, which discusses the difference
Flash RIAs and DHTML/AJAX RIAs. That content philosophy (preloaders, timelines, player updates) continues to drive Adobe/Macromedia Flash to legitimately suffer in the face of the Browser paradigm, despite a superior graphics runtime, (now) better script execution engine, and more consistent, cross-platform platform.

What do I mean? Well, its a bit embedded in my points from Part 1: Asynchronicity and caching are the core of the
content-runtime/application-as-content business. So when I said (way back when) that the Viewpoint Media Player would be the "last version" - that's what I meant. Even the plug-in itself should consider itself no more than a cached, transient thing.

And, way back then, Macromedia (now Adobe), sort of missed the point, although the
VERY last part of the last comment (by Mike Davidson) comes close: The Viewpoint Media Player was not a "Player" anymore than the Flash Player is, from a consumer perspective, nor did it possess an "update system", in any traditional sense.

The
Viewpoint Media Player was (is?), fundamentally, a browser-plug-in installation system. It could download and install executable modules that extended its runtime environment (through a variety of security measures I can describe later if anyone's interested). There had been two previous versions of the plug-in (called Metastream at the time) that we had gone to GREAT lengths to get distributed, including distribution as a part of Windows98, and it sucked starting all over each time; we wanted content developers to be able to use new features immediately without disrupting the user experience - so version 3 was going to be the last.

Essentially, the core of the Viewpoint Media Player, called "Genie", is much closer to the Java/JAR-file paradigm, in that sense, than anything eelse. It could on-the-fly install modules for animation, decompression, rendering, video, basically, whatever.

And it could do so asynchronously.

If a content package lacked a Flash decoder (we had a private, reverse engineered Flash player we wrote), or a JPEG decompressor, or a Video codec, the rest of the content would play, animate, interact - whatever - until the executable module appeared (i.e. was downloaded and "installed"), and then that specific part of the content would get "handled", with nary a disruption.

In fact, I called it "Genie" because, if you had one wish, what would you wish for? In that vein, if you could install ONE thing on a user's machine, what would that thing do? (hint: Distribution is a bitch)

Yes, the Viewpoint Media Player could update itself, while it was running, in "realtime" at the request of its own currently executing content. Getting a new version (that is, updating) of a compenent was literally no different than installing a new component.

Macromedia, and others, took this to be an "update system", and with Flash Player 7 (I believe), started using a system tray to notify/download updates to the Flash Player.

But they still kind of missed the core idea - and you can still see the "philosophy delta" to HTML and the browser at work in Flash Player 9. Check out their "UI controls catalog" sample
here. Note all the "loading...." screens for each component?

I'll finish in Part 3...

7 comments:

Niko said...

Sree, the update system of the VMP is really powerful, and I agree with the comparison to Java. In theory it should prevent a lot of "loading" screens. But in practice it isn't so much the case. It depends very much of the client/content author. Any big company that really cares about its brand requires that the content looks right immediately and will rather have a loading screen than something that looks half-baked for a few seconds.
It is the same problem with 3D streaming.
Also, it can make content authoring much harder, in particular interactions and scripting. In the end, to make content authoring easier, the developer prefers to wait for all components to be available using a loading screen.
So, yes in theory it would be possible to create content that requires few loading screens but in practice few people take fully advantage of it.
Though, you're entirely right when you say VMP doesn't really have a global version. It is extremely modular. And one big advantage is that, even if the developer uses loading screens, their display time can be dramatically reduce because only few component may need to be updated or downloaded (instead of the whole player like with flash)

Now I'd like to address the “was(is?)” statement you made about the VMP.
We are actually working on a set of new cool features for the VMP. You seem to still be proud of the technology. And I'd be delighted to talk with you about some of them if only I can successfully get some of your time (something I fail to do for the past 2 months)

niko said...

I am not entirely sure what flash can do at this point. (I'll need to investigate) But I think Macromedia is making SWF much more modular in order to solve the problem you're pointing out.
At least they already do it at compilation time. (even if it is still a big mess when several developers work on the same flash code base or when you want to use SWF as Dlls). You can define classes in separated files and have the compiler automatically load the .as when you instantiate a new object of the class type (without using #include).
It feels like the next logical step would be to load .swf on demand at runtime.(if it doesn't already do it now) which would solve the problem you're pointing out. (at this point it would really work like java)

Sree Kotay said...

Hey niko!
I guess I was really addressing runtime performance, not author-time development difficulties (though both are valid concerns).

I agree with you about content authoring and the trials of dealing with asynchroncity - and maybe that's indeed the overlap. If you want to build good RIA content for the web, perhaps developers NEED to figure out the tools and paradigms for dealing with it - and not just punt it to the runtime.

The challenge is indeed that mixing animation, streaming, and rich presentation for a single view is hard :)

Anonymous said...

runescape money runescape gold runescape money runescape gold wow power leveling wow powerleveling Warcraft Power Leveling Warcraft PowerLeveling buy runescape gold buy runescape money runescape items runescape gold runescape accounts runescape gp dofus kamas buy dofus kamas Guild Wars Gold buy Guild Wars Gold runescape accounts buy runescape accounts runescape lotro gold buy lotro gold lotro gold buy lotro gold lotro gold buy lotro gold lotro gold buy lotro gold runescape money runescape power leveling runescape money runescape gold dofus kamas cheap runescape money cheap runescape gold Hellgate Palladium Hellgate London Palladium Hellgate money Tabula Rasa gold tabula rasa money 陈楚生 压力开关 压力传感器 流量开关 流量计 液位计 液位开关 温湿度记录仪 风速仪 差压开关 可燃气体检测仪 过滤器 强磁水处理器 自清洗过滤器 自动反冲洗过滤器 保鲜棕榈树 棕榈树

Anonymous said...

runescape money runescape gold runescape money runescape gold wow power leveling wow powerleveling Warcraft Power Leveling Warcraft PowerLeveling buy runescape gold buy runescape money runescape items runescape gold runescape accounts runescape gp dofus kamas buy dofus kamas Guild Wars Gold buy Guild Wars Gold runescape accounts buy runescape accounts runescape lotro gold buy lotro gold lotro gold buy lotro gold lotro gold buy lotro gold lotro gold buy lotro gold runescape money runescape power leveling runescape money runescape gold dofus kamas cheap runescape money cheap runescape gold Hellgate Palladium Hellgate London Palladium Hellgate money Tabula Rasa gold tabula rasa money 陈楚生 压力开关 压力传感器 流量开关 流量计 液位计 液位开关 温湿度记录仪 风速仪 差压开关 可燃气体检测仪 过滤器 强磁水处理器 自清洗过滤器 自动反冲洗过滤器 保鲜棕榈树 棕榈树

runescape gold said...

runescape money runescape gold runescape gold runescape money buy runescape gold buy runescape money runescape money runescape gold wow power leveling wow powerleveling Warcraft Power Leveling Warcraft PowerLeveling buy runescape gold buy runescape money runescape itemsrunescape accounts runescape gp dofus kamas buy dofus kamas Guild Wars Gold buy Guild Wars Gold lotro gold buy lotro gold lotro gold buy lotro gold lotro gold buy lotro gold runescape money runescape power leveling runescape money runescape gold dofus kamas cheap runescape money cheap runescape gold Hellgate Palladium Hellgate London Palladium Hellgate money Tabula Rasa gold tabula rasa money Tabula Rasa Credit Tabula Rasa Credits Hellgate gold Hellgate London gold wow power leveling wow powerleveling Warcraft PowerLeveling Warcraft Power Leveling World of Warcraft PowerLeveling World of Warcraft Power Leveling runescape power leveling runescape powerleveling eve isk eve online isk eve isk eve online isk tibia gold Fiesta Silver Fiesta Gold




runescape money runescape gold wow power leveling


棕榈树
VI设计
画册设计
血管瘤
肝血管瘤
音乐剧
福卡
防静电地板
美国留学
留学美国
电阻器
不锈钢电阻器
频敏电阻器

睡眠呼吸机
伟康呼吸机
呼吸机
无创呼吸机
家用呼吸机
呼吸机的使用

北京消化系统疾病
北京心脑血管疾病
北京肾病
北京中医儿科
北京针灸减肥
针灸减肥
北京糖尿病
北京疼痛病
北京类风湿

小姐 said...

情趣用品,情趣用品,情趣用品,情趣用品,情趣,情趣,情趣,情趣,情人歡愉用品,情惑用品性哥,情人用品性哥,情趣用品,AIO交友愛情館,情人歡愉用品,美女視訊,情色交友,情人用品性哥,視訊交友,辣妹視訊,美女交友,性愛,嘟嘟成人網,按摩棒,震動按摩棒,微調按摩棒,情趣按摩棒,逼真按摩棒,G點,跳蛋,跳蛋,跳蛋,性感內衣,飛機杯,充氣娃娃,情趣娃娃,角色扮演,性感睡衣,後庭區,SM,潤滑液,情趣禮物,威而柔,香水,精油,芳香精油,自慰,自慰套,性感吊帶襪,情趣用品加盟,情人節禮物,情人節,吊帶襪,辣妹視訊,美女交友,情色交友,成人交友,視訊聊天室,美女視訊,視訊美女,情色視訊,免費視訊聊天,視訊交友,視訊聊天,AIO交友愛情館,嘟嘟成人網,成人貼圖,成人網站,AIO交友愛情館,情色,情色貼圖,情色文學,情色交友,色情聊天室,色情小說,七夕情人節,色情,A片,A片下載,免費A片,免費A片下載,情色視訊,情色電影,色情網站,辣妹視訊,視訊聊天室,情色視訊,免費視訊聊天,視訊聊天,美女視訊,視訊美女,美女交友,美女,情色交友,成人交友,自拍,本土自拍,情人視訊網,視訊交友90739,生日禮物,情色論壇,正妹牆,正妹,成人網站,A片,免費A片,A片下載,免費A片下載,AV女優,成人影片