首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >根据以下标准开发桌面应用程序的语言/平台

根据以下标准开发桌面应用程序的语言/平台
EN

Stack Overflow用户
提问于 2009-01-22 01:27:25
回答 8查看 4K关注 0票数 6

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

  1. 你会选择哪种语言/平台?
  2. 为什么?

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

Requirements:(重要: 10=most重要)

  • 将需要与使用USB和/或以太网的设备进行通信(9)
  • 具备相关技能的工程师(8)
  • 提供优质IDE/工具(8)
  • IDE/工具的成本(7)
  • 提供资源、教程、支持(9)
  • 语言/API/平台/框架的生命周期--即投资于此应用程序的未来将如何证明?该产品的生命周期很长(10)。
  • 跨平台(3)
  • 现有图书馆的丰富程度和广度(9)
  • 应用程序需要能够解释脚本语言(6)
  • 单元测试(9)

假设

  • 对于设备的USB变体,将使用C/C++编写设备驱动程序。
  • 应用程序将是一项全新的努力--从头开始。
  • 现有工程师背景为C/C++,具有较强的面向对象能力。现有工程师愿意采用最好的语言/平台,并将招聘具有适当技能的新工程师。

短名单(您可以将其添加到):

  • Java/J2SE
  • C#/.NET
  • C++/wxWidget
  • C++/QT
  • 等。

期待听到你的想法!

EN

回答 8

Stack Overflow用户

回答已采纳

发布于 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关联而在它上工作)。
票数 11
EN

Stack Overflow用户

发布于 2009-01-22 01:37:31

我的第一选择是C++

  1. “语言的一生”。我不认为C/C++很快就会去任何地方。
  2. 支持与usb/以太网/其他设备的低层通信
  3. 你在你的团队中已经掌握了知识/技能。
  4. 提供大量高质量的图书馆/IDEs等
票数 11
EN

Stack Overflow用户

发布于 2009-01-22 01:57:46

为此,我将使用C#,原因如下:

  • 句法上与C++关系最密切;
  • 如果需要使用unsafe块直接访问内存;
  • 与任何C++ UI框架相比,开发成本更低的现代UI;
  • 高技能可得性;
  • 多亏了微软和其他公司,图书馆提供了几乎所有的东西(包括USB);
  • Visual相对便宜;
  • 长期预期寿命:.Net是相当成熟的(在7+年),并且具有“字节码平台”(主要包括7+)的最佳长期前景;
  • 通过DLL轻松地集成本机代码。Java/JNI (根据经验发言)则要尴尬得多;
  • 单元测试框架。

老实说,我认为C++桌面应用程序的时间已经过去了。它们太容易出错,而且(与之相比)开发成本很高。

C#/.Net解决方案唯一缺少的是跨平台(尽管如此)。我不知道这对你来说有多重要,但你只把它列为3。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/467762

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档