Java是开发新应用程序和库的“岛”吗?

时间:2011-11-16 22:13:50

标签: java web-applications mono windowbuilder

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

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

我正在努力找出最好的IDE,语言等工作。我的小组以前的工作有很多C / C ++库可以用于后端工作,比如模拟。我的老板告诉我,Java是开发的“孤岛”,这意味着Java应用程序难以使用其他语言的库,并使自己的库可用于其他语言。

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

此外,我应该使用哪些工具?我准备学习任何东西,但我正在努力寻找最有效率的路线。在C / C ++中学习和编程所有内容对我来说似乎并不是一条非常有效的途径。

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

请随意尽可能详细,谢谢!

3 个答案:

答案 0 :(得分:3)

我担心此帖可能会因为偏离主题而被关闭。但嘲讽似乎有点太具体了,恕我直言。

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

我建议您考虑一下您想要与之互操作的具体内容并了解具体内容 - 看看钩子是否存在。

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

可能会发现您没有GWT所需的内容,因为您正在做的事情的图形方面。

我会认真考虑你需要多少网页方面。如果你这样做,那么考虑完全跳过仅限桌面的解决方案(可能是Java / GWT),然后转到网上。如果您不需要支持旧浏览器,这尤其可行。

我不打算触及“什么工具”的问题 - 它太宽泛了。

答案 1 :(得分:1)

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


在不了解您的具体细节的情况下,很难给出准确的答案,但一般规则是您所知道的语言比您不熟悉的语言更好,所以除非您的语言完全违背所要求的习语,用它。例如。如果您拥有C / C ++的内部专业知识,那么这些语言就足以构建应用程序。 JavaScript显着减少了。

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

答案 2 :(得分:0)

好吧,如果跨平台是一个问题,我建议用Java开发,它在这方面使一切都很容易。至于加载C / C ++库,我对它没有多少经验,但我建议你看看像Java Native Access这样的东西。

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

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

相关问题