【发布时间】:2009-04-24 16:10:40
【问题描述】:
我将开发一个综合性的教育软件,它可以在浏览器上运行,并具有许多可视化和模拟工作(静电和电磁可视化、2D 和 3D)。
哪种语言(Processing、javascript 或其他)最适合我的目的?
【问题讨论】:
-
这个问题实在是太笼统了……能说的具体点吗?
标签: javascript processing visualization simulation
我将开发一个综合性的教育软件,它可以在浏览器上运行,并具有许多可视化和模拟工作(静电和电磁可视化、2D 和 3D)。
哪种语言(Processing、javascript 或其他)最适合我的目的?
【问题讨论】:
标签: javascript processing visualization simulation
这个问题确实很广泛,但我会根据我的经验来回答。
Javascript 并不是真的要进行数学计算,这可能是快速计算大量 E&M 现象所必需的(特别是如果它们没有表示为封闭形式的解决方案)。它还涉及到您想要在图表中包含多少细节(更多步骤 = 更多计算)。您可能会发现自己需要进行更多优化以弥补性能差异。
我在 Flash 中做了一些天线阵列的可视化(他们有封闭形式的解决方案,只有简单的阵列),结果还不错。 Javascript 绝对无法与您可能想做的任何 3D 模拟相提并论。
我想知道 Silverlight 是否是一个更好的解决方案,因为您可能会发现 .NET 的数学库比 Actionscript 的要多,这可以为您节省大量自己编写数学的工作(但您最终可能还是会这样做因为性能问题)。
【讨论】:
正如其他人所说,在可视化方面,javascript 并不是那么强大的语言。
Processing 是一种非常适合您尝试的语言,它易于学习并且基于 Java。数据可视化直接内置于语言和时间空间中(即提前“1 个滴答”时间并让可视化对此做出反应。)
另外,如果您有兴趣走这条路,我建议您选择Visualizing Data,这几乎是一个处理入门。
【讨论】:
Flash 可能是目前您正在寻找的更常见的应用程序堆栈,但 Silverlight 正准备根据它所包含的强大功能从它们那里夺取称号。
【讨论】:
我自己会选择 Flex 或 Silverlight
【讨论】:
我有点晚了,但是你想要的,已经用 JavaScript 实现了,你会发现这非常有用。我建议在 Chrome 下运行它,因为 JS 处理引擎非常快。 (您甚至可以尝试更快的 Chrome 2)
【讨论】:
我赞同 LFSR Consulting 的观点:Processing 被大量用于教育目的,它是免费的,而且速度快(Java 通常比 Flash 快)并且易于学习,因此您可以获得更快的结果。它支持 3D,您可以处理用于模拟和计算的 Java 库等。它有一个很棒的社区! :-)
JavaScript 对于这种用法有点轻。 JavaFX 被炒作了,但它还不是真正的 3D(尽管有人使用 Java3D)而且它仍然有点年轻。
Flash 和 Silverlight:不予置评,在该领域没有太多经验。 OpenLazlo 可以作为替代方案...
【讨论】:
您确实有两种选择 Flash 中的 ActionScript 或 Silverlight 中的 VB.NET/C#/other。
因此,首先您需要确定您将针对这些平台中的哪一个。
【讨论】:
您可以将问题分成两部分,用户交互和显示部分,以及繁重的计算部分。
如果您可以将繁重的计算转移到服务器上,那么您仍然可以在 javascript 中显示所有内容。
javascript 的一个难点在于它是被解释的,你需要自己编写更多的方程式,因此会影响性能和开发时间,但它可以在没有任何插件的情况下工作,除非你不想这样做画布标签中的 3D。
Flash 和 Silverlight 可能有更好的选择,但您正在学习新语言并需要插件,具体取决于您要使用的 Flash 版本。
【讨论】:
查看 processing.js、xcode 和 iprocessing! ProcessingJS 非常适合数据可视化,但缺乏交互性。
【讨论】:
你或许应该试试 python。它是用于教育和计算目的的非常好的语言,它有一个相当不错的社区,而且语法也不是那么难。即使它是为命令行设计的,您也可以使用一些外部包为其创建前端 gui,它还提供 Scipy、Numpy 和 Matplotlib 用于高级绘图和数据可视化。
【讨论】: