我的项目使用什么语言?

时间:2009-04-15 14:36:16

标签: c# java vb.net delphi programming-languages

我很快会就一个项目向一家公司提出建议,而且我不太清楚我应该建议的编程语言。

这是一个相当简单(基于桌面)的应用程序,在网络上有一个中央数据源,用于存储和编辑组成机器的部件。需要在应用程序中配置机器,并使用此配置生成生产文档(手册,软件,物料清单)。 (例如,如果将A部分和B部分添加到配置的机器中,则必须使用手册第5章中的变体X,如果有意义的话)

有一些非标准组件,如带有收音机和电视的树。复选框,它必须有一些版本控制。它需要一个WYSIWYG编辑器来编辑手册的章节。它不一定必须在Windows以外的平台上运行,因为它只会在公司网络上使用,并且每个人都运行Windows。

我在想Java,因为它有大量有用的库和免费的IDE。我自己就是Java程序员,所以我对其他编程语言并不熟悉。关于我应该使用什么语言的想法,为什么?我相信公司中存在一些VB / VBA和Delphi知识(它不是IT公司,我不太可能自己编程)。

谢谢堆!

14 个答案:

答案 0 :(得分:22)

根据您对应用程序和环境的描述,没有什么可以击败Delphi!

这是德尔福发光的理想案例:
- 结合最快性能和开发的原生桌面应用程序 - 过多的优秀(通常是免费的)组件;你可能会找到你的树 - 数据库应用极其强大而简单
- 非常积极和乐于助人的社区

另见why I recommended it for another SO user

答案 1 :(得分:19)

我认为如果您在公司拥有Delphi知识:它是桌面应用程序的一个非常好的选择,并且avar says:您可以在Torry's Delphi Pages找到很多好的组件。

我推荐这个article

答案 2 :(得分:16)

对于桌面应用程序(加上数据库/ win32的东西)我建议使用delphi。你可以找到很多好的组件。

答案 3 :(得分:7)

您可能希望选择您的团队最有经验的语言。我亲自进入Delphi,听起来这可能是你所描述的一个很好的选择。 Delphi非常适合与数据库通信的桌面应用程序。但是,如果您的团队(编写和维护应用程序的人员)对Java / C#/ VB更有经验,那么您应该使用它。

答案 4 :(得分:6)

你描述的场景不是特定于语言,所以 这里有一些提示:

  • 一般来说,java绝对可以,但是:
  • 在Windows世界中,您可以使用.net语言更轻松地生活, 因为可以直接访问COM / activex以组合文档片段 在adobe或Word中
  • 因为公司有一些关于vb的知识,也许是公司的任务 维护软件变得更便宜。

我建议使用c#,因为通过单声道,你可以在必要时使用Linux。

好吧,那是我的2美分。

答案 5 :(得分:4)

取决于。在很多的事情上。你熟悉哪种语言?您使用什么数据库(MS SQL与.NET语言一起使用时有一些优点,但也可以与java一起使用,或者......)?

图书馆(至少对我而言)不是主要决策点,因为其他语言也有很多库。

如果您没有自己编程,请让开发人员完成这项工作。项目有其他标记,而不是技术,如使用时间和花费的钱。如果您选择开发人员熟悉的语言,则更有可能及时且成本高。

你的问题在某种程度上过于开放,无法给出确切的答案。但也许这有助于你思考它。

答案 6 :(得分:3)

您应该使用以下任何一种语言:

1)最适合项目

例如:如果您的项目需要实时处理,请使用有助于执行该任务的语言。

2)您(以及您的团队)最熟悉。

您需要与您的团队讨论您当前认识的任何语言是否合适(记住第1点)。如果没有合适的话,那么在项目的整个生命周期中学习,开发和支持(维护)的语言(记住第1点)都是最舒适的。

这听起来很简单,但我认为这非常重要。如果您的项目要成功,您需要一种可以“生活”的语言,并且将与您合作而不是与您合作。如果你是一名木工,你可以使用锤子将螺丝拧入一块木头中,但使用螺丝刀你不会更加舒适吗? / p>

答案 7 :(得分:2)

在标记语言中,请避免使用asp.net,因为它是桌面应用程序。除此之外,所有其他语言都能做得很好。这取决于个人偏好(更重要的是开发人员的个人偏好)。

答案 8 :(得分:1)

  

我自己就是Java程序员所以我是   不太熟悉其他   编程语言。

如果您要编写软件,则应使用Java。您已经熟悉它了,您的熟悉程度可以帮助您取悦您的客户。

答案 9 :(得分:1)

如果你不写作,你需要找出谁是谁并考虑他们的经验。让他们学习一门新语言只是因为你不知道他们熟悉什么并不是一个好方法。

Java会起作用,C#会起作用(我会亲自拍摄C#),这实际上取决于你所拥有的经验。

“非标准”组件的含义是什么?如果有他们想要使用的第三方控件可能会指示要使用的语言/平台。 Java和C#中还有许多免费控件和示例,扩展标准Java / .NET控件甚至可以更好地与第三方控件一起使用。

听起来你需要了解更多有关应用程序以及其他一些事情的知识,然后才能真正建议其他人做什么。

答案 10 :(得分:0)

嗯,使用你所知道的(Java)有很多智慧。

然而,只是为了对抗“因为它有大量有用的库和免费的IDE” - .NET还拥有庞大的库库和免费的IDE(包括Visual Studio的Express版本)。对于.NET,C#将是比Java更“接近”的语言。

我认为你最终会得到Java(通过熟悉 - 并不总是坏事)。

答案 11 :(得分:0)

当我们构建客户端系统时,我们使用.Net(通常是C#)。我们在后端做Java,但听起来你可能没有传统的后端。对于所有可用于Java的库和框架,绝大多数高质量UI组件最近都在.Net空间中。

答案 12 :(得分:0)

我认为只要你彻底了解它,编程语言和编程环境并不重要。 C ++,Java和C#都有很好的库,都有自己的优点和缺点。重要的是你知道语言的特性,开发环境,调试器,优秀的分析器,标准库,最好的第三方库等等。而且,过了一段时间,你可以重用自己的代码作为好。例如,您提到了一个高级树窗口小部件。在我们公司,我们有自己的树(用C ++编写),我们可以根据需要进行微调。

答案 13 :(得分:0)

当您管理开发并且其他人正在进行实施和维护时,我建议与他们协商编程语言。

当您必须进行维护时,请专注于您所知道的语言。

如果您完成所有/大部分工作,只需使用您熟悉的语言,当您没有足够的时间在路上学习新语言时。特别是如果应用程序很重要并且需要非常无bug。 (尽管我们都知道,从来没有“最后的错误”); - )

第三方图书馆的数量不是一个好的标准,因为这并不能反映他们的质量(也许大多数东西都是废话),而且许多图书馆也意味着选择错误图书馆的机会很大。

不要忘记检查所选语言是否能够胜任。 (速度,平台限制,内存占用,......)