我想听听您的意见,看看这个想法对您来说是否合适,如果不好,您会采取什么措施。
我的项目的目标是制作一个可下载的应用程序,让用户输入实验数据的文本文件,然后对数据进行计算以查找统计值,例如平均值、标准差以及斜率和截距。线性回归线。这些显示在屏幕上,以及数据的散点图或直方图。
目前,我的计划是使用 Swing 库在 Java 中编写用户交互的界面,并用 C 编写执行计算的部分。我这样做的原因是 Java 非常适合 GUI,它可以可以在任何机器上使用,并且 C 在执行大型计算时速度更快。我的项目中的一个关键步骤是使用 MPICH 库并行化代码,以便我的程序可以执行诸如生成多组随机数据并分析它们之类的操作。 Java 和 C 代码将通过输入和输出文本文件来相互通信,我被告知需要编写一些 shell 脚本来将两者桥接在一起。通过这样做,我希望Java代码将原始数据的文本文件提供给C代码,C代码进行计算并以文本文件的形式报告统计值,然后Java代码将读取此文本文件以向用户呈现数据分析结果。
此可下载应用程序的重要特征是:
- 拥有非常清晰、易于使用的界面
- 可以轻松下载和使用,非常适合在各种计算机(Windows、Mac、Linux)上使用
- 利用并行化更快地进行大型计算
我对这些语言或环境不是很了解,并且我对我的计划有一些疑问。
- 我知道 Java 程序可以通过 jar 文件轻松下载,但如果我使用 Java 和 C,我的程序是否仍然可以轻松下载并能够在所有具有 shell 脚本的计算机上使用?
- 最好用一种语言完成所有编码并仍然保留上面列出的重要特征吗?如果是这样,与使用两种语言相比,这样做会损失什么?
感谢您的帮助!
最佳答案
请再次阅读您自己帖子中的引用:
第一
I am not very knowledgeable about these languages
但是:
Java is good for GUIs
还有
Java is good for GUIs
所以,你并不真正了解 Java 和 C,但你可以说 Java 适合 GUI,而 C 更快。但这两种说法可能都是错误的。
在过去 15 年里,人们倾向于避免使用 Java 实现 SWING UI 和桌面应用程序。他们通常尝试将计算转移到服务器并使用基于 Web 的 UI 控制流程。 (如果您确实有很大的输入数据集,例如数十或数百 GB,这可能不适用于您的用例)。
在同一时期,JVM 在性能方面得到了显着提高,因此假设 C 代码比用 Java 编写的相同代码运行得更快可能是不正确的。
所以,也许你应该用 java 来实现所有内容。
如果您无法将计算移至服务器,您可以实现 java 应用程序并使用 JNLP 运行它。
但是在开始之前,我是否可以建议您提出其他设计/架构问题,其中包含有关输入/输出数据量和计算性质的更多详细信息?
关于java - 可下载应用程序中的不同语言,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24156043/