Adobe AIR、Microsoft Silverlight、JavaFX 和 Mozilla Prism...您对本次竞赛有什么看法?
SO 上有很多关于 JavaFX、Silverlight、AIR 的问题,现在 Prism 即将发布。
这是四种具有相似目标的不同技术。我认为我们可以收集要点 - 优点和缺点 - 来考虑社区 wiki 问题中的一个或另一个。
尽量将火焰保持在最低水平,谢谢。
There are a lot of questions on S.O. about JavaFX vs. Silverlight vs. AIR, and now Prism is going to be released.
These are four different technologies with a similar goal. I thought we could gather the main points -pros and cons- to consider one or the other in a community wiki question.
Try to keep the flaming level at its lowest possible, thanks.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
Prism 的巨大优势在于基于非常熟悉的现有平台(网络),拥有庞大的现有开发人员基础和较低的进入门槛。然而,它受到该平台最初并非用于应用程序开发的限制。 (HTML5 许诺了很多,但(不包括视频)实际上除了自第一台 Apple Mac 以来桌面 API 常见的功能外几乎没有提供什么。)
Silverlight 的优势在于得到了 Microsoft 的支持,拥有庞大的开发资源和将运行时推送到世界上 85% 以上的台式机(如果他们愿意的话)。它的缺点是得到了微软的支持,随之而来的是所有政治包袱。
JavaFX 的优点是实际上是从头开始设计的,是一个专用且干净的 RIA 解决方案,而不是从现有语言和格式拼凑而成。它还可以利用大量现有的 Java 库。它的缺点是起步较晚,并且要求开发人员学习一种新的 GUI 编码方式。
AIR 的优势在于能够利用现有的 Flash 安装基础来推动其运行时的采用,并且对于希望迁移到 Web 之外的大量现有 Flash 开发人员来说,学习曲线相对较小。它的缺点在于它植根于设计/图形社区,这意味着它历来在“严肃的”编程圈内的采用有限,并且(因此)支持的第三方库和开源 API 的数量极少。
结论:如果您的应用程序只需要一个精美的网页,那么 Prism 很酷;如果您能忍受某些圈子中围绕 Microsoft 的偏执,那么 Silverlight 很酷;如果您不介意学习新的语言,那么 JavaFX 很酷如果您的应用程序永远不需要做任何不符合规范的事情,那么 DSL 和 AIR 就很酷。
Prism has the huge advantage of being based on a very familiar existing platform (the web), with a massive existing developer base and low barrier to entry. It is, however, constrained by said platform not originally being intended for applications development. (HTML5 promises a lot, but (excluding video) in reality offers little beyond features common to desktop APIs since the first Apple Mac.)
Silverlight has the advantage of being backed by Microsoft, with their huge development resources and ability to push the runtime onto 85%+ of the world's desktops if they wanted. It has the disadvantage of being backed by Microsoft, with all the political baggage that naturally follows.
JavaFX has the advantage of actually being engineered from the ground up as a dedicated and clean RIA solution, rather than cobbled together from existing languages and formats. It can also draw on the massive number of existing Java libraries. It has the disadvantage of being late to the game and requiring developers to learn a new way of coding GUIs.
AIR has the advantage of being able to utilise the existing Flash install base to push adoption of its runtime, and a relatively slight learning curve for the huge army of existing Flash developers wishing to move outside the web. Its disadvantage lies in its roots within the design/graphics community, meaning it has historically had limited adoption within 'serious' programming circles and (therefore) a miniscule number of supporting third party libraries and open source APIs.
In conclusion: Prism is cool if your application will never need to be more than a fancy web page, Silverlight is cool if you can put up with the paranoia surrounding Microsoft in some circles, JavaFX is cool if you don't mind learning a new DSL, and AIR is cool if your app will never need to do anything out of the norm.
Silverlight 与 AIR 和 Prism 有很大不同,因此这里的比较可能会变得非常混乱。我确实没有资格谈论 JavaFX,但我对其他三个足够熟悉,知道我不会直接比较它们。
Silverlight 是一个浏览器插件,具有一些非常有趣的功能,当它从浏览器中取出时就可以发挥作用。从部署方面,开发了一个应用程序,该应用程序可以在网页内运行(始终默认)或安装到桌面,尽管设计用于安装的应用程序可能会受到严格限制(或可能无法运行),直到它们被安装为止。安装。也许最好的比较是 Flash 和 AIR 的组合,其优点是为受益于更加混合的解决方案的应用程序提供了一种解决方案(从 Web 到桌面的过渡对于消费者来说是一条简单的路径,他们可以尝试该应用程序并然后无缝安装它以获得更多功能)。
AIR是Adobe开发平台的桌面端; Flash 的安装端。正如 Simon 提到的,它在设计社区中有着深厚的根基,对于希望利用现有 Actionscript 知识并超越浏览器内应用程序限制的 Flash 开发人员来说,它可能是一个非常有吸引力的解决方案。我听说 AIR 被称为“Twitter 客户端平台”,这在精神上是不公平的(即使它反映了它最常见的用法),尽管它确实指出了这样一个事实:数据可视化可能是 AIR 的最大优势。有。 Silverlight 也可以做到这一点,但也有更强大的库用于操作数据,这在 Actionscript 中不太简单(在我看来)。
Prism 是新的,它具有有希望的事物的所有优点,也具有尚未交付它们的所有缺点。也许 HTML5 将提供一种更好的方式来处理当前浏览器插件所做的一切,但目前情况并非如此,很难想象有人会假设他们今天计划部署的应用程序支持这种方式。 Prism 的优势在于将现有网页从浏览器中移出,添加一些功能并消除基于浏览器的限制,但仍然很难(如果不是不可能的话)说明 Prism 设计的应用程序将提供什么。 Simon 关于 HTML5 的观点很好;事实证明,基础语言从来就不是为应用程序开发而设计的。
就我个人而言,我是一名 Silverlight 开发人员,主要是因为它利用了我现有的 C# 和 .net 库知识。我遇到过一些同样从事 Flash 开发工作的 AIR 开发人员。我想一个认真的 HTML/CSS/Javascript 开发人员可能会对 Prism 有同样的感觉,并且我认为学习一门外语和一组新的库的想法和 > 新平台已经足够令人畏惧(除非您的目的只是学习全新的东西),利用现有技能可能是“比较”这些技术并在它们之间进行选择的最简单方法。如果您是一名 Web 开发人员并且需要完成一些工作,那么您可能会发现您列出的四个中的一个感觉更自在,并且对于平台中缺少的部分似乎总是有解决方法。我发现在平台上获得新功能的最简单方法就是声称它们无法完成并等待被证明是错误的。
Silverlight is different enough from AIR and from Prism that the comparison here could get very muddled. I'm not really qualified to speak on JavaFX, but I'm familiar enough with the other three to know that I wouldn't compare them directly.
Silverlight is a browser plugin with some very interesting capabilities that can come into play when its taken out of the browser. From a deployment side, a single app is developed, which can be run inside a webpage (always the default) or installed to the desktop, although applications that are designed for installation may be severely restricted (or potentially non-functional) until they are installed. Probably the best comparison is to the combination of Flash and AIR, with the advantage of offering a solution to applications that benefit from a more hybrid solution (the transition from web to desktop is a simple path for a consumer, who can try the application and then install it seamlessly for perhaps more functionality).
AIR is the desktop side of Adobe's development platform; the installed side of Flash. As Simon mentions, it has serious roots in the design community and is probably a very attractive solution for Flash developers looking to leverage their existing Actionscript knowledge and expand beyond the restrictions of an in-browser application. I've heard AIR referred to as a 'Twitter client platform', which is unfair in spirit (even if it is reflective of it's most common usage) , though it does point to the fact that data visualization is probably the biggest strength that AIR has. Silverlight does this as well, but also has more robust libraries for manipulating data, which is less simple (in my opinion) in Actionscript.
Prism is new, which gives it all of the advantages of promising things and all of the drawbacks of not having delivered them yet. Perhaps HTML5 will provide a superior way of handling everything that current browser plugins do, but this is not true as of now and it's hard to imagine anyone assuming that support on an application that they're planning to deploy today. Prism's strength is in taking existing web pages out of the browser, adding some functionality and losing the browser based restrictions, but it's still hard (if not impossible) to say what applications designed for Prism will offer. Simon's point about HTML5 is a good one; the base language was never designed for application development and it shows.
Personally, I'm a Silverlight developer, mostly because it made use of my existing knowledge of C# and the .net libraries. I've met AIR developers who are in the same boat, having come from Flash development. I would imagine that a serious HTML/CSS/Javascript developer might feel the same way about Prism and I think that the idea of learning a foreign language and a new set of libraries and a new platform is daunting enough (unless your intent is just to learn something completely new) that leveraging existing skills might be the simplest way to 'compare' these technologies and choose between them. Chances are, if you're a web developer and you need to get something done, you'll find that one of the four you listed feels more at home and there always seem to be workarounds for parts of the platform that are lacking. I've found that the easiest way to get new features on a platform is to claim they can't be done and wait to be proven wrong.
Silverlight 或 JavaFX,仅基于这些来自行业标准平台的推理。
Silverlight or JavaFX, based only on the reasoning that these come from industry standard platforms.