我希望你对这个想法对你来说是否合适有意见,如果没有,你会做什么。
我的项目的目标是制作一个可下载的应用程序,让用户输入实验数据的文本文件,然后对数据进行计算,以找到统计值,如平均值,标准差,斜率和截距。线性回归线。这些显示在屏幕上,以及数据的散点图或直方图。
目前,我的计划是使用Swing库编写用户在Java中交互的接口,以及在C中执行计算的部分。我这样做的原因是Java适用于可以使用Java的GUI可以在任何机器上使用,C在执行大型计算时更快。我的项目中的一个关键步骤是使用MPICH库并行化代码,以便我的程序可以执行诸如制作多组随机数据并分析它们之类的事情。 Java和C代码将通过输入和输出文本文件相互通信,我被告知我需要做一些shell脚本来将两者连接在一起。通过这样做,我希望Java代码能够为C代码提供原始数据的文本文件,C代码将进行计算并以文本文件的形式报告统计值,然后Java代码将读取此文本文件以向用户呈现数据分析的结果。
此可下载应用程序的重要特征是:
我对这些语言或环境不是很了解,我对我的计划有些怀疑。
感谢您的帮助!
答案 0 :(得分:1)
请再次阅读您自己帖子中的引文:
第一
我对这些语言知之甚少
可是:
Java适用于GUI
和
Java适用于GUI
所以,你并不真正了解Java和C,但你可以说Java对GUI有好处,而C则更快。但这两种说法都可能是错误的。
在过去的15年中,人们倾向于避免在java中实现SWING UI和桌面应用程序。他们通常尝试将计算移动到服务器并使用基于Web的UI控制流程。 (如果您确实有大量输入数据集,例如数十或数百GB,则这可能不适用于您的用例)。
在同一时期,JVM在性能方面得到了显着改善,因此假设C代码比用java编写的相同代码运行得更快可能是不正确的。
所以,可能你应该在java中实现all。
如果无法将计算移动到服务器,则可以实现Java应用程序并使用JNLP运行它。
然而,在您开始之前,我是否可以建议您询问其他设计/架构问题,其中包含有关输入/输出数据量和计算性质的更多详细信息?
答案 1 :(得分:0)
让我们先解决你的特点。
C
是可能的,但您必须提供在每个平台上构建应用程序的方法,对于每个平台,这通常是不同的。< / LI>
现在让我们谈谈你的疑惑。