选择语言时我应该考虑什么?

时间:2009-03-09 22:07:25

标签: programming-languages

重复:

  

Best Language for Rapid Prototyping?

     

Which language should students start with?

     

What coding languages should a web developer know?

在选择用于项目的语言时,要记住哪些标准?例如,为什么我应该使用Python而不是Python,PHP而不是Java,C#over Java等。它是可扩展性,文档,可维护性还是语言学习的容易程度?

由于

编辑:

我知道这是一个主观问题,但我正在寻找好的商业案例来说服经理从一种语言转换到另一种语言。我不是这样做是为了煽动语言战争或证明一种语言比另一种语言更好。在比较语言时,我只需要一些标准来查看。如果我的问题对某些人来说是冒犯性的或天真的,我很抱歉。

14 个答案:

答案 0 :(得分:4)

Stack Overflow上有很多关于这些问题的问题:

列表还在继续。回复通常包括特定选择背后的推理,这可以回答您的问题。

答案 1 :(得分:4)

我倾向于尝试在我的所有项目中使用Excel VBA宏。

答案 2 :(得分:3)

  

可扩展性,文档,可维护性或语言学习的容易程度是什么?

嗯是的,但你应该问的最重要的问题是“我需要完成什么?有什么要求?”我是建立一个网络应用程序或Windows应用程序,它需要是跨平台还是只在Windows上运行?它是否需要是“实时”应用程序,如流媒体股票行情,聊天室/即时消息等。一旦您回答了这些问题,语言选择就变成了为工作选择正确工具的问题。

答案 3 :(得分:2)

最初这个Q被投了-2票,我不知道为什么。这是一个合理的问题。

项目团队如何 DOES 选择编程环境?

第一顺序因素是输出类型。如果它是一个Web应用程序,那么Java,C#PHP,也许是Python,但不是Perl,COBOL F#或LISP。如果它是系统应用程序或驱动程序,那么C ++是,但不是C#。

除此之外,在我看来,在大多数情况下,它是环境决定的。这是你已经知道的任何东西,或者是大多数团队已经习惯的语言。

答案 4 :(得分:2)

我也不知道为什么这会被作为一个问题投票。我已经投票了,因为我觉得这是一个合理的问题,我们都需要回答。

有人说,“你最舒服的语言......”是正确的答案。我不同意。如果我在C中最舒服,我正在建立一个网站,我们应该使用C吗?不,当然不是!

以下是我会考虑的一些事情:

  1. 您正在解决的问题域中使用此语言的普通开发人员(不仅仅是您)的生产力
  2. 解决您将要解决的问题类型的语言支持
  3. 针对您的问题域使用此语言的代码的可维护性
  4. 使用此语言为您的问题域编写的系统的可伸缩性
  5. 正式和社区学习和支持资源的可用性
  6. 只需要考虑几件事。

答案 5 :(得分:1)

在选择用于项目的语言时,最能影响您的因素将是您最满意的语言。

更新:可伸缩性不是语言的一个方面,而是您的架构和应用程序代码。

答案 6 :(得分:1)

这显然取决于项目和开发人员。

  • 您的开发人员更熟悉哪些?
  • 软件堆栈的许可/定价/支持。
  • 现有系统(例如,如果您是.NET商店,可能会选择ASP.NET,而不是PHP)。
  • 特定项目的语言适用性(您不会在PIC上使用Ruby)。
  • 等,等等。

答案 7 :(得分:1)

如果您试图向管理层提出切换语言的案例,请考虑以下事项:

1)人才库 - 内部和外部。用语言找到好的程序员有多难?

2)其他项目 - 正在考虑的每种语言中进行了类似的项目

3)教育支持 - 依靠本地大学与微软继续教育(对于技术可能在项目完成之前发生变化的大型长期项目非常重要)

4)会议,标准和工作机构 - 与#3一致。

5)对管理风格的吸引力 - 老学校管理层每次都会欣赏“尝试和真实”的“前卫和新鲜”。

祝你的研究和投球顺利!

答案 8 :(得分:1)

我希望有人开始努力让事情变得更具互操作性。我希望能够将Perl用于某些事情,Python用于其他事情,SQL用于其他事情,C#,Prolog,Haskell和Pascal。然后将所有内容与make绑定在一起,并对我的集成调试器可以在它们之间跳转感到高兴。

从根本上说,您希望为手头的工作选择合适的语言,因此,这对您和您的机构来说都是个人的。

我们是一家MS商店,所以虽然我不是以任何方式塑造或组建微软的倡导者,但我不得不说C#是解决许多问题的非常好的通用解决方案。

并非所有马匹都适用于所有课程,但它目前适用于我们(大约15名开发人员只在内部使用应用程序,其中一些是网络交付的,所有这些都必须能够被接收由某人在未来某个未指定的点随机选择)。

答案 9 :(得分:0)

我会选择适合问题空间的语言,以及我和/或员工在语言方面有一定经验的事实。对于非Web非驱动程序应用程序,我通常会选择Java - 除非性能至关重要,否则我会选择C ++。但是,imo C ++远比Java复杂,而且更容易受到错误和内存泄漏的影响,因此请谨慎选择。对于一个Web应用程序,我会选择PHP,因为我知道它并且有大量的文档,虽然我听说Ruby非常好。对于基于非Web,脚本的应用程序,我会选择Perl。

答案 10 :(得分:0)

无论你做什么,不要只选择语言,因为它是“酷”或你想“尝试”的东西。

它必须是主流。

现在已经说过,不要回答这个问题。你应该选择平台,而不是语言。

答案 11 :(得分:0)

根据您的需要,简单地考虑一下该语言的设计目标(针对其设计的问题以及如何解决这些问题)。

答案 12 :(得分:0)

陈词滥调“选择平台而非语言”是有道理的。当你开始使用它时,大多数任务可以用几乎任何语言执行(即使在LOLCODE中)。但是,您会注意到不同的语言具有完全不同的可用库集。在很多人的意见中,这是唯一保持Java和PHP等语言活着的东西(不一定说我同意这一点虽然......好吧,至少不是Java :-))。

我的建议是找出你需要的外部库(如果有的话),然后根据你正在考虑的任何语言提供的内容来决定。我想你会发现这个决定要容易得多。

最后一件事,如果您仍然无法在某些语言之间做出决定,请记住坚持使用您所知道的或者您更喜欢的内容并没有错。基于类似任意的事情做出决定要比陷入“分析瘫痪”更好。

答案 13 :(得分:0)

可用的工具