面对新的应用程序的挑战,您可以自由设计,组建一个团队来开发和管理:
背景:桌面应用程序将控制硬件设备并执行计算、分析和显示其返回的数据。
Requirements:(重要: 10=most重要)
假设
短名单(您可以将其添加到):
期待听到你的想法!
发布于 2009-01-22 01:56:02
老实说,根据您的需求,我选择Java (使用少量C组件)的原因如下。
Lifetime of language/API/platform/framework- i.e., how future-proof will the investment in this application be?... the product has a long life-cycle (10).
,这真的取决于你所说的长。我真的无法想象Java会消失,仅仅是因为它安装了大量的基础。C或C++也没有消失,但在考虑C#的未来时,我总是会想到VB6到VB.net的迁移问题。Will need to communicate with devices using USB and/or ethernet (9).
并不是最理想的方法,但是它有JNI来完成这项工作。您仍然需要一个C组件来完成这个任务(而且每个平台的代码都会发生变化,但是最好用C编写大部分代码--用C编写一次,您可能会对每个平台的大部分代码进行更改,而对于C#,除了Windows以外的平台上真的支持吗?)另一种选择是南国防军,它看起来像"Python ctypes"
for Java (访问共享库和DLL而没有JNI接口层)。Availability of resources, tutorials, support (9).
所有的语言在网络上都有一个巨大的资源横截面。Richness and breadth of libraries available (9).
,您可以为C++和跨平台GUI提供支持,但它们是必须添加的--与Eclipse相比,开发环境中没有任何内置的东西。Unit testing (9).
的响应与下面工具的可用性相同--有大量(免费) Eclipse插件可以使单元测试自动化。Availability of engineers with relevant skills (8).
你提到的所有语言都有太多的人(我喜欢用这个词)来完成这项工作。Availability of quality IDE/tools (8).
,这是Eclipse。在我的脑海里,没有两种方法。它的插件数量确实是巨大的。NetBeans看起来可能更好,但我宁愿拥有功能而不是外观(我的妻子也是如此,所以这是幸运的:-)。Cost of IDE/tools (7).
Eclipse是免费的。The application will need to be able to interpret a scripting language (6).
最近一次听说,JavaScript现在包括了内置的JavaScript以及开发人员使用添加自己的脚本引擎的能力。Cross-platform (3).
C#,不(尽管Mono的存在,我仍然看到有一天它会与MS发生冲突,而且自由和开放源码软件世界也不会因为它的MS关联而在它上工作)。发布于 2009-01-22 01:37:31
我的第一选择是C++
发布于 2009-01-22 01:57:46
为此,我将使用C#,原因如下:
unsafe
块直接访问内存;老实说,我认为C++桌面应用程序的时间已经过去了。它们太容易出错,而且(与之相比)开发成本很高。
C#/.Net解决方案唯一缺少的是跨平台(尽管如此)。我不知道这对你来说有多重要,但你只把它列为3。
https://stackoverflow.com/questions/467762
复制相似问题