团队语言基础混合时,ac#dev是否应切换到VB.net?


14

我最近加入了一个新的开发团队,该团队在.net平台上混合了语言首选项。

  • 开发1:知道VB.net,不知道C#

  • Dev 2:知道VB.net,不知道c#

  • 开发3:熟悉c#和VB.net,更喜欢c#

  • 开发4:知道c#和VB6(VB.net应该很容易掌握),更喜欢c#

在我看来,.net空间中的思想领袖几乎都是c#开发人员。我还认为某些第三方工具不支持VB.net,但是当我开始研究它时,却没有发现任何好的例子。

我希望整个团队都使用C#,但是如果没有任何理由除优先考虑之外迫使该问题出现,那么我认为这不是正确的选择。

我有什么理由要带领人们远离VB.net?


5
仅凭VB的冗长性就能使您进入C#...
Aaron McIver

13
在我看来,您的开发团队缺乏认真的领导才能。您的经理为什么不处理这个问题?

2
您为什么要转向VB .Net?从上面的图表中可以看出,两名具有任何技能的开发人员都知道C#,而其他人根本不知道任何.Net。当然,最好是让不懂两种语言的人立即使用C#,因为另外两个开发人员已经具备了C#技能?

15
它们的内幕可能是相同的,但是VB语法是一个丑陋的疣病姐妹,站在她那又热又健康的C#姐妹旁边。应该记住它的语法,只是作为许多开发人员注视自己的地狱版本时流血的参考点。VB应该被绝育,杀死并留在路边,以便在炎热的夏季炎热时腐烂。拥抱自然母亲选择忘记的更优美的语法并避免使用。做出明智的选择。
Moo-Juice

2
如果我没有记错的话,那么On Error Resume Next将为您提供传统支持。尝试Catch块确实存在于VB.Net中,因为它是.Net。
Tony Abrams

Answers:


2

除非有人具有对您的项目特别有用或节省时间的功能,否则没有真正令人信服的理由强迫某人更改语言。它们都将编译为IL并等效地执行(假设Option Strict在VB.NET中处于启用状态...否则,您可能会受到后期绑定的惩罚)。其他所有事情实际上都是优先的(根本不要忽略它,但这不是客观指标)。

我建议您查看您所在地区的工作清单,看看哪种语言在工作供应中都比较普遍(即两种语言的劳动力资源)。看看哪个将为您提供更大或更佳的劳动力资源可能是您最引人注目的指标。


我同意你所说的关于当地工作清单的说法。我认为容易忽视的一件事是潜在的人才库,选择一种语言而不是另一种语言可能会对您未来的招聘工作产生影响。
jjr2527 2011年

7

幸运的是,答案很简单:没有“最好的”语言。所有.NET语言从根本上都使用.NET Framework提供的一组类中的功能。因此,在VB.NET中可以执行的所有操作都可以在C#中进行,反之亦然。语言之间的唯一差异只是语法上的差异。

C ++,Java和J ++程序员更喜欢C#的简洁语法。Visual Basic(VB)程序员可能更喜欢坚持使用他们所熟悉的魔鬼-Visual Basic .NET不区分大小写的伪自然语言方法。如果您有VB程序员并且他们是真正的程序员(请参阅Option Strict ON),您将获得相同的结果。VB更为冗长。...C#是大小写敏感的球形破坏者。


的确,两者都可以做到98%,而对方可以做到,但VB中有太多绳子可以挂在自己身上。On Error Resume Next一个人会让我奔向C#。这个Module概念也很危险。它类似于static classC#中的a ,但是...其中的所有内容都可以全局访问,而无需引用父类,并且在没有任何其他指示的情况下会自动保持静态...除了父类是Module ...之外!
Paul Sasik 2011年

6
很抱歉,这不是事实。例如,如何用C#编写异常过滤器?blogs.msdn.com/b/clrteam/archive/2009/08/25/...

@LukeH要将异常过滤器添加到C#,我们可以在VB或IL中构建一个函数,然后在C#中调用它:D

4
@Anna:这样就驳斥了“在VB.NET中可以在C#中完成的所有工作”的说法。

2
在VB.Net中有很多您无法在c#中完成的事情-另请参见:stackoverflow.com/q/2362381/50447
Rowland Shaw

5

老实说,一组开发人员应该使用相同的语言,或者至少要使用相同的语言。

这将有助于开发团队在各种应用程序之间进行交叉培训和支持。

最后,VB vs C#都是一场偏好之战,但团队应该在同一页面上确定他们将使用或支持哪一个。


5

团队语言基础混合时,ac#dev是否应切换到VB.net?

开发人员应使用团队标准的.NET语言。IMO,应该使用一种语言(除非可以提出非常有说服力的案例)。

我有什么理由要带领人们远离VB.net?

我认为这里的大多数人都喜欢C#,但这不是技术上的问题,而是政治或商业决策。确定要使用的.NET语言,然后再使用它。现在显然要考虑很多因素:

  • 是否有现有的代码库?它的大部分语言是什么?
  • VB.NET开发人员可以轻松使用C#吗?他们想要吗?
  • 投资C#提升/培训在财务上是否有意义?
  • 任何语言转换都会如何影响现有交付物?

+1是为了思考团队,而不是个人喜好
MarkJ 2011年

4

实际上,VB.NET具有C#目前不具备的一些功能:XML文字,以及在LINQ中使用Aggregate方法的查询语法。


1
VB.NET也没有迭代器(即C#中的Yield关键字)。
atconway 2012年


2

回到2003年,您现在所处的情况与我非常相似。我管理着一个从ASP Classic迁移到ASP.NET的团队。我们团队中的大多数人都有使用VBScript作为ASP的事实语言的经验,但是尽管从ASP / VBScript迁移路径稍微复杂一些,但仍有大约一半的团队赞成C#。最终,我选择了VB.NET,但回想起来,我真的希望我走了C#路线。

在该决定的5周年纪念日,我写了一篇博客文章,介绍了我做出该决定的理由,并试图将我的后见之明提供给其他试图做出同样决定​​的开发经理。这是文章的链接:

“经理对C#和VB.NET决策的回顾”

长话短说,对于那些不想阅读整篇文章的人:我认为该项目不会因为选择C#上的VB.NET而变得更糟,并且在短期内可能为我们节省了很多时间。最大的问题确实与招聘有关。我会很乐意雇用C#或VB.NET程序员来使用这两种语言。它们确实没有太大的不同。但是,无论是否应得,VB.NET都有一个污名,使许多开发人员避免从事他们知道将使用它作为主要语言的工作。


作为C#程序员,我从事过使用VB.NET的项目。但是,VB.NET程序员经常不知道他们在做什么,没有Comp Sci学位,并且编写的方法包含100行代码。因此,我倾向于忽略任何要求VB.NET的招聘广告。
2015年

1

我倾向于C#,因为它不那么冗长,并且根据我的经验,它在Internet上更为普遍。我还认为C#或VB.NET易学易用,以至于可以忽略不计。另一方面,.NET框架是一个庞大且不断发展的生物。掌握.NET可能需要很多年,但是掌握C#或VB.NET 可能需要几个月或更短的时间。


0

我认为@Anna Karin有一个好点,因此您不必担心库。至少,我不记得任何仅适用于c#而不适用于vb.net的软件。

另一个重要的一点是,如果同一团队的成员使用不同的语言,这将使代码检查变得更加困难。我认为最好是使用一些交流语言,以减少沟通中的摩擦。


0

虽然我同意前面的回答,即.NET应该具有相同的功能,但这并非总是如此,但是足够接近,如果您有一个简单的项目,那就没关系了。

我在整个团队中切换到C#的主要原因是,它是大多数示例所使用的语言,并且大多数开源项目都使用C#发布源代码。因此,如果您的团队无法使用这种资源,则可能会不必要地限制自己。


0

C#和VB.NET基于.NET平台;对于在.NET中工作的开发人员来说,重要的是要了解.NET,原理,技术,模式...在这种情况下,在语言之间切换不会成为问题-主要是关于语法。在一个混合团队中,也许所有人都应该尝试学习两种语言(这没什么大不了的),但这对于团队成员之间未来的合作可能很重要。


0

我要说的是,让每个人都使用相同的语言的一个好处是,这意味着任何开发人员都可以在代码的任何部分上工作。

除此之外,VB.NET和C#的区别仅在于.NET下的语法。用两种语言编写的代码可以在同一个项目中共存。


0

我会选择C#,因为:

  • 它更接近Java和C ++(在CS课程中经常教授的语言)。
  • C#上Internet上的资源比VB还要多(据我所知)。
  • 找到/雇用比VB更了解C#的其他开发人员的机会更高(从我在公司中所看到的)来维护该项目。

0

我的观点是,可以通过接口进行基于合同的开发,并且开发人员应该能够以他希望的任何语言编写类,并且可能在不同的程序集中分离低级/高级类。只要这些类遵守所请求的接口并实现要求,就应该没有什么问题。


0

我同意这里的许多其他答案。我是必须做出此决定的两个团队的一部分。在这两种语言中,他们最初都决定开发人员可以选择,因为两种语言可以协同工作。但是在第一年中,他们俩都希望他们选择了C#,并提出了一项新要求,即所有新项目都必须使用C#。


0

使用C#的原因:

  • 到目前为止,这已经使您的两个开发人员感到高兴,并且一旦其他两个开发人员了解了它们,他们可能会很着迷
  • 您计划在某个时候雇用更多的开发人员,并希望避免出现“ 20年的VB经验”人群。
  • 你喜欢花括号。
  • 你热爱生活。

使用VB.NET的原因:

  • 不了解C#的两个开发人员绝对拒绝学习它。
  • “在阻力最小的道路上ham草”是您公司的座右铭。
  • 现有巨大的VB代码库,无法更新。
  • 您正在HP Lovecraft上踢,并为您的日常生活中缺少“鬼怪恐怖”而感到遗憾。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.