Programming languages 公司标准:C#NET vs.VB.NET vs.whatever.NET

Programming languages 公司标准:C#NET vs.VB.NET vs.whatever.NET,programming-languages,standards,Programming Languages,Standards,在我以前的工作中,当我们考虑用更多的机构充实我们的开发人员时,这个问题不时出现。如果你是一家.NET开发公司,如果你的开发人员都用一种语言编写代码,这真的很重要吗 我可能一开始和其他400万人一样,用VisualBasic编程,然后迁移到VB.NET。我们当时的另一个开发人员来自C背景,并迁移到C#NET。基本上,他能很快地用他的母语编写代码,我也能用我的语言编写代码,因为我们的项目并没有真正重叠,所以没有问题,直到我们的老板基本上说我们需要切换到C#。。。除了标准化,没有其他原因 所以我想问题

在我以前的工作中,当我们考虑用更多的机构充实我们的开发人员时,这个问题不时出现。如果你是一家.NET开发公司,如果你的开发人员都用一种语言编写代码,这真的很重要吗

我可能一开始和其他400万人一样,用VisualBasic编程,然后迁移到VB.NET。我们当时的另一个开发人员来自C背景,并迁移到C#NET。基本上,他能很快地用他的母语编写代码,我也能用我的语言编写代码,因为我们的项目并没有真正重叠,所以没有问题,直到我们的老板基本上说我们需要切换到C#。。。除了标准化,没有其他原因

所以我想问题的“主观”部分是,牺牲生产力来保持一致性是否更好?现在我应该量化这一点,说我们是一个小商店,不到5个开发者,并且考虑到我们的大多数项目计划是如何在鸡尾酒餐巾纸上完成的,这不像我们很快就要进行6西格玛,所以“标准”不是一条硬性规定


谢谢。

C#无疑正在成为微软的首选途径,选择一种所有开发人员都可以使用的语言是有意义的,因为如果开发人员在任务之间移动,项目将使用统一的语言(更不用说编码约定)这将使所有参与项目的人都能更轻松地维护这些项目。

我想说,只要可行,就去做吧。VB.NET和C#使用所有相同的底层框架,因此您应该能够阅读彼此的代码,并且通过一点谷歌搜索,您也应该能够修改它


我要说的是努力提高生产力。。最终,客户会关心它是用VB.NET还是C#编写的吗??但是说你必须考虑可维护性。

在我工作的地方,我们仍然是一个混合语言小组;然而,这是有目的的。几乎所有硬件相关的项目都是用C++完成的(不是汇编,我知道:),而且几乎所有的Windows应用程序都是用C语言完成的。
考虑到C#的流行性和易用性,我想说,当一家公司有了新的、更环保的员工时,转向it符合公司的利益。

我认为选择一个并让每个人都参与其中是有意义的。生产力方面的牺牲将是短暂的,有能力的开发人员将很快迁移

一些优点:

  • 你的上一个VB开发人员和团队被精简了…哦
  • 其中一个开发人员退出,您必须接管他们的代码
  • 等等
所以我想这是我的“主观”部分 问题是,这样做更好吗 牺牲生产力 一致性

当然不是。一致性本身有什么好处?一致性的最终目标是生产率。考虑到这一点,我建议,从长远来看,让每个人都用一种语言编写代码将是最好的方式……从长远来看,修改和维护代码的时间要比编写代码的时间多得多我认为,让人们花一次提升时间比一直来回切换要好

我们的老板基本上说我们需要 切换到C#…没有其他原因 比标准化更重要。(……)所以我猜 问题的“主观”部分 是,牺牲好吗? 一致性生产力

当然不是。唯一的问题是这种“一致性”对未来生产力有什么价值,因为生产力才是最重要的。“一致性”本身不是一种商业价值。它可能只会帮助你在未来实现更高的生产力

必须平衡几个因素:

  • (+)明天人们只需要维护一种语言,即最流行的.Net语言:C#(见注1)
  • (-)今天你必须学习C,这对你的公司来说是一项成本,除非你在周末免费学习。当然,这在成本上是一个(-)。学习C本身是好的,只是有成本而已
  • ()今天,在学习C#之后,您或其他人必须将一个项目从Visual Basic.Net切换到C#。这会产生成本,具体取决于项目的LOC计数。此外,可能会引入错误,因此您需要重新运行单元测试,检查所有故障并解决问题。此外,您还需要重复一些集成测试,以确保一切正常
你不能用这些信息来判断平衡的结果是什么。但你也不必说,因为你的老板大概有更好的信息,并且已经做出了决定。你需要做的就是实际去做


注1:然而,这种推理与“如果VB.NET不存在,世界会变得更好”的说法非常接近VB.NET,或者两种语言的混合,在某些情况下可能是一个不错的选择。

如果可能的话,坚持一种奇异的语言选择是很重要的。显然,如果你写的是非托管C++,或者有其他类似的情况,那么会有明显的例外。很多人都在研究效率。在同质语言选择方面,一旦你升级了。我认识的大多数开发人员在切换语言时都会遇到效率问题,即使他们对语言了如指掌。在用C#编写了几个月的代码后,如果我不得不回到VB.NET来维护某些东西,总有一天我会有意识地考虑瘦语言通常是自动的。它们是简单的事情,比如使用vs.导入、类型转换等。这不是因为你忘记了它是如何工作的,而是你的大脑想要做一些你已经做了很长一段时间的事情。很像老的客厅把戏,把你的手臂推到门框上一分钟,然后休息一会儿对你的si下摆