1

我将制作一个跨平台的图形数学建模应用程序,例如,用户可以在画布上放置一堆节点,指定它们之间的一些数学关系,然后运行模拟。我也有兴趣看到这是一个网络应用程序。

我在 Java、MATLAB、Python 方面有一些编程经验,但我从未做过大型应用程序,因此我对软件架构以及多种语言如何协同工作知之甚少。

我正在尝试找出最适合工作的 IDE、语言等。我小组之前所做的工作有很多 C/C++ 库可供后端工作使用,例如模拟。我的老板告诉我,Java 是一个开发“孤岛”,这意味着 Java 应用程序很难使用其他语言的库,也很难让自己的库可用于其他语言。

这是真的?有人可以对这个话题有所了解吗?

另外,那我应该使用什么工具?我准备好学习任何东西,但我正在努力寻找最有成效的路线。目前对我来说,学习然后用 C/C++ 编程一切似乎不是一条非常有效的途径。

到目前为止我看过的东西包括 WindowBuilder/GWT Designer(这似乎是一种制作桌面和 Web 应用程序的方法)、Mono/GTK+/MonoDevelop 和 Delphi

请尽量详细一点,谢谢!

4

3 回答 3

3

我担心这篇文章可能会因为离题而关闭。但是,恕我直言,折腾似乎有点太具体了。

Java 可以与许多非 Java 项目、产品等进行互操作。但是,它的一个主要特性是可移植性,因此您会发现人们不遗余力地留在 JVM 环境中。从这个意义上说,它是一个“岛”。

我建议您确切地考虑要与之互操作并具体化的内容 - 看看钩子是否存在。

对于后端 C/C++ 库,您需要实现 JNI 接口。我将其描述为具有小但中等陡峭的学习曲线 - 不需要学习很多东西,但需要一点思考 - 特别是如果来回传递的数据量如此之大以至于性能成为问题。

可能会发现 GWT 无法满足您正在做的图形方面的需求。

我会认真考虑您需要多少网络方面。如果这样做,请考虑完全跳过仅限桌面的解决方案(可能还有 Java/GWT),而直接访问 Web。如果您不需要支持较旧的浏览器,这尤其可行。

我不会触及“什么工具”的问题——它太宽泛了。

于 2011-11-16T22:24:38.013 回答
1

考虑到 Jython、Groovy、Clojure 以及大量针对 Java 的其他语言改编,我强烈建议您的老板不知道他在说什么。Java 还具有在必要时执行本机代码的能力,因此合并其他非 JVM 工具包并不难。但是,即使他是对的并且没有与 Java 进行跨语言工作,该语言已经存在了足够长的时间,并且足够冗长,您通常可以找到能够提供您正在寻找的互操作性的库。


在不了解您的具体情况的情况下,很难给出准确的答案,但一般规则是您知道的语言比您不知道的语言更好,所以除非您的语言完全违背所需的习语,否则请使用它。例如。如果您拥有 C/C++ 方面的内部专业知识,那么这些语言非常适合构建应用程序。JavaScript 明显更少。

您不希望出现由对语言的错误假设引起的错误。这些几乎是不可能追踪的,特别是因为你不知道去哪里看。

于 2011-11-16T22:26:10.337 回答
0

好吧,如果跨平台是个问题,我建议用 Java 开发,这让这方面的一切都变得非常容易。至于加载 C/C++ 库,我没有太多经验,但我建议看一下Java Native Access之类的东西。

就工具而言,它们是广泛而多样的。我个人使用NetbeansEclipse,但不合时宜的选择归结为您可能需要什么插件以及您个人喜欢什么。

总而言之,我会说在不同的环境和不同的语言中编写应用程序的一个小存根,看看你喜欢什么。您确实需要了解应用程序的详细信息才能做出明智的决定,并且在大多数情况下会有所不同。祝你好运!

于 2011-11-16T22:29:13.640 回答