我们公司正在开始开发客户端 - 服务器应用程序,正在讨论应该使用哪些技术。 对于客户端(GUI),我们倾向于QT和C ++。对于服务器端,我们建议使用Java,实际上它看起来是最常用于服务器开发的语言之一。 任何人都可以详细说明Java为服务器端开发提供的优势,以及为什么采用它应该让我们的开发人员生活更轻松和/或让我们获得比我们使用的更好的结果,比如说,.NET甚至是C ++? 提前谢谢。
答案 0 :(得分:5)
一些优点:
一些缺点:
您可能还希望查看在JVM上运行的其他语言,例如Scala和Groovy,在.NET(它可以在Linux上运行,使用Mono),甚至是D语言,它提供了类似的C ++,编译为本机语言,具有现代功能,如垃圾收集(可选),代码契约,lambdas等。这些语言提供了Java相对于C / C ++的许多好处,但也进一步或向不同方向发展。 / p>
答案 1 :(得分:2)
除了平台独立性之外,服务器端Java开发的主要优点是成熟的库和标准化框架的广泛选择。但是,这里主要关注的是Web开发。
对于C ++客户端,如果在客户端和服务器之间使用REST作为协议,Java仍然是有益的(JAX-RS非常好)。否则,它在很大程度上取决于您的应用程序域以及是否有可以帮助您的Java库。
答案 2 :(得分:1)
让我们这样说吧......不是哪种服务器端语言更好,什么不是,你公司可以利用它并充分利用它。当你在一家大公司工作时,有时你不能只引入“另一种语言”......它不会那样工作。 :)
此外,每种语言都有其优点和缺点。你可以用两种方式来争论利弊,这取决于你有多么偏见或开放。您可以选择RoR和所有流行时代的技术,但如果您的团队成员不熟悉处理一种全新的语言,您究竟要如何长期维护项目?我的意思是,如果你的团队熟悉PHP,那么与Java,.NET等相比,我没有看到使用它的任何错误。
只要有效,您的客户就不关心底层实施。
答案 3 :(得分:1)
Java优势: - 成熟 - 良好的向后兼容性 - 几乎所有问题的广泛可用框架 - 健壮 - 垃圾收集,API作为java.util.concurrent - 管理代码质量,良好IDE等的出色工具。 - 非常好的表现 - 支持脚本
缺点: - 有时同样的东西框架太多了 - 并非所有框架都具有您需要的高质量代码 - 看起来比实际更容易
答案 4 :(得分:0)
服务器端有很多选项。由于您可以控制服务器端,因此基本上可以使用任何东西。使用.NET强制您使用Windows Server,因此我更喜欢可以在任何操作系统上运行并且可移植的框架。
Java是5 - 10年前的正确答案。因为它具有可移植性,并且可以在任何系统上运行。但是现在开发人员正在寻找更易于使用,维护和编码的语言/框架。我现在将投票选择Python用于服务器端开发,因为它很快,它更容易阅读和维护代码,并且它有许多你可以使用的开源项目/库,甚至谷歌也支持python over Java(GAE已经首先是python支持,然后支持Java来了)。您可以在python上使用django进行Web开发,并使用TCP编写使用TCP进行通信的服务器。
答案 5 :(得分:0)
选择语言时需要考虑几个问题:
至少对具有合理规模的项目使用特定语言的说法始终是成本问题。但不仅是构建系统的成本,还有维护它的成本。 - 上面提到的要点都与成本有关:例如:如果您不熟悉您的语言( - > $),如果系统无法维护,则必须重建( - > $),如果没有合适的库,你需要自己实现它( - > $),如果你选择的语言让bug很容易隐藏,你需要很长时间才能进入生产阶段( - > ; $)
在MHO中,Java的优点是:广泛传播的知识(这也适用于.net),大量真正成熟的开源framworks(这是Java反对.net的重点),以及使用强类型系统和编译器可以减少错误,这是Java和.net相对于每种非强类型脚本语言的长期优势)您在服务器上使用的所有语言都必须具有垃圾收集功能!