当前位置:  开发笔记 > 编程语言 > 正文

基于以下标准开发桌面应用程序的语言/平台

如何解决《基于以下标准开发桌面应用程序的语言/平台》经验,为你挑选了3个好方法。

面对您可以自由设计的新应用程序的挑战,组建团队进行开发和管理:

    你会选择哪种语言/平台?

    为什么?

背景:桌面应用程序将控制硬件设备并执行计算,分析和显示它返回的数据.

要求 :(重要性:10 =最重要)

将需要使用USB和/或以太网与设备通信(9)

有相关技能的工程师的可用性(8)

高质量IDE /工具的可用性(8)

IDE /工具的成本(7)

资源可用性,教程,支持(9)

语言/ API /平台/框架的生命周期 - 即对该应用程序的投资将来会有多大的前景?......该产品具有较长的生命周期(10)

跨平台(3)

丰富多样的图书馆(9)

应用程序需要能够解释脚本语言(6)

单元测试(9)

假设:

对于设备的USB变体,设备驱动程序将使用C/C++编写

申请将是一项全新的努力 - 从零开始

现有工程师的背景是C/C++,他们具有很强的OO能力.现有工程师愿意采用最佳语言/平台,并且将招聘具有适当技能的新工程师.

候选名单(可以添加到):

的Java/J2SE

C#/.NET

C++/wxWidgets的

C++/QT

等等

期待听到您的想法!



1> Jaime..:

我的第一选择是C++

    "语言的生命周期"......我不认为C/C++会在任何时候出现.

    支持与usb/ethernet /其他人的低级别通信

    您已经拥有团队中的知识/技能

    有很多高质量的库/ IDE等



2> paxdiablo..:

说实话,我会根据您的要求选择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-to-VB.net迁移问题.

Will need to communicate with devices using USB and/or ethernet (9).虽然Java不是直接理想的,但它有JNI来完成这项艰苦的工作.你仍然需要一个C组件才能做到这一点(并且它会针对每个平台进行更改,但最好是将大部分代码写入一次 - 使用C,您可能会为每个平台更改大部分代码,并且使用C#,它是否真的支持Windows以外的其他平台?).另一个替代方案是JNA,它看起来像"Python ctypes"Java(访问共享库和没有JNI接口层的DLL).

Availability of resources, tutorials, support (9). 所有语言在网络上都有巨大的资源横截面.

Richness and breadth of libraries available (9). 你有Boost for C++和跨平台的GUI,但它们是必须添加的东西 - 没有像Eclipse/Java那样内置于开发环境中.

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). 最后我听说,Java现在包含JavaScript作为内置函数以及开发人员添加自己的脚本引擎的能力.

Cross-platform (3). C#,没有(尽管单的存在,我依然看到它会下降相抵触的MS1天风险,不会有很多是开源软件世界将在它的工作,因为它MS协会).


不要介入这个Eclpse的爱情,但Eclipse的部分问题就是我称之为"插件地狱".

3> cletus..:

我会用C#来解决这个问题,原因如下:

在语法方面相对于C++最接近;

如果unsafe块需要,可直接访问内存;

现代UI,开发成本低于任何C++ UI框架;

高技能可用性;

感谢微软和其他人,几乎所有的图书馆(包括USB);

Visual Studio相对便宜;

长期待寿命:.NET是两个相当成熟(在7年以上)和一个用的"字节码平台"最好的长期前景(主要包括Java);

通过DLL轻松集成本机代码.Java/JNI(从经验来讲)更加尴尬; 和

单元测试框架.

老实说,我认为C++桌面应用程序的时代已经过去了.在开发过程中,它们太容易出错并且价格昂贵(相比之下).

C#/ .Net解决方案唯一缺少的是跨平台(Mono尽管如此).我不知道你有多大的优惠,但你只把它列为3.

推荐阅读
雯颜哥_135
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有