O ac # dev deve mudar para o VB.net quando a base de idiomas da equipe é mista?

14

Entrei recentemente para uma nova equipe de desenvolvimento em que as preferências de idioma são misturadas na plataforma .net.

  • Dev 1: Conhece VB.net, não sabe c #

  • Dev 2: Conhece VB.net, não sabe c #

  • Desenvolvedor 3: conhece c # e VB.net, prefere c #

  • Dev 4: Conhece c # e VB6 (o VB.net deve ser bem fácil de entender), prefere c #

Parece-me que os líderes de pensamento no espaço .net são c # devs quase universalmente. Eu também pensei que algumas ferramentas de terceiros não suportavam o VB.net, mas quando comecei a pesquisar não encontrei bons exemplos.

Eu preferiria colocar toda a equipe em c #, mas se não houver um bom motivo para afastar o problema da preferência, não acho que seja a escolha certa.

Há algum motivo pelo qual eu deveria afastar o pessoal do VB.net?

Wilman
fonte
5
A verbosidade somente dentro do VB deve levar você a C # ...
Aaron McIver
13
Parece-me que sua equipe de desenvolvimento carece de uma liderança séria. Por que seu gerente não lidou com esse problema?
2
Por que você está indo para o VB .Net? No seu diagrama acima, os 2 desenvolvedores com alguma habilidade conhecem C # e os outros não conhecem nenhum .Net. Certamente, seria melhor trazer os que não conhecem nenhum idioma a velocidade do C #, pois os outros dois desenvolvedores já têm habilidades de c # para desenvolver?
15
Sob o capô, eles podem ser os mesmos, mas a sintaxe do VB é a irmã feia e infestada de verrugas que fica ao lado de sua irmã C # mais quente e bem banhada. Sua sintaxe deve ser lembrada apenas como um ponto de referência para o sangue que vazou dos olhos de muitos desenvolvedores enquanto eles olham para sua própria versão do inferno. O VB deve ser castrado, morto e deixado ao lado da estrada para apodrecer no calor do verão. Abrace a sintaxe mais bonita e evite o que a mãe natureza escolheu esquecer. Escolha sabiamente.
Moo-Juice
2
Se não me engano, On Error Resume Next é para suporte legado. Experimente blocos Catch existentes no VB.Net ... já que é .Net.
Tony Abrams

Respostas:

2

Não há motivo realmente convincente para forçar alguém a mudar de idioma, a menos que alguém tenha um recurso que seja particularmente útil ou que economize tempo no (s) seu (s) projeto (s). Os dois serão compilados até o IL e executados de forma equivalente (assumindo que o Option StrictVB.NET esteja ativado ... caso contrário, você poderá incorrer em penalidades por vinculação tardia). Todo o resto é realmente preferencial (para não descartar isso, mas não é uma métrica objetiva).

Eu sugeriria olhar as listagens de emprego em sua área e ver qual idioma é mais prevalente tanto na oferta de trabalho (ou seja, o grupo de trabalho para os dois idiomas). Ver qual deles fornecerá um pool de trabalho maior ou melhor provavelmente será sua métrica mais atraente.

Adam Robinson
fonte
Concordo com o que você disse sobre as listas de empregos locais. Acho que uma coisa fácil de ignorar é o potencial pool de talentos e o efeito de escolher um idioma sobre o outro pode ter em seus futuros esforços de contratação.
jjr2527
7

Felizmente, a resposta é simples: não existe uma linguagem "melhor". Todas as linguagens .NET usam, na raiz, funcionalidade do conjunto de classes fornecido pelo .NET Framework. Portanto, tudo o que você pode fazer no VB.NET em C # e vice-versa. As únicas diferenças entre os idiomas são meramente sintáticas.

Os programadores C ++, Java e J ++ preferem a sintaxe concisa e sem sentido de C #. Os programadores do Visual Basic (VB) podem preferir ficar com o diabo que conhecem - a abordagem de linguagem pseudo-natural, que não diferencia maiúsculas de minúsculas do Visual Basic .NET. Se você possui programadores VB e eles são programadores reais (consulte a opção Strict ON), você obterá os mesmos resultados. VB é mais detalhado .... C # é um imbecil com diferenciação de maiúsculas e minúsculas.

Anna Karin
fonte
É verdade que ambos podem fazer 98% que o outro pode, MAS há muita corda para se pendurar no VB. On Error Resume Nextsozinho me enviaria correndo em direção ao c #. O Moduleconceito também é muito perigoso. É semelhante a um static classem C #, mas ... tudo nele é globalmente acessível sem referência à classe pai e automaticamente estático sem qualquer outra indicação ... exceto que a classe pai é um Módulo ...!
Paul Sasik
6
Desculpe nitpick, mas isso simplesmente não é verdade. Por exemplo, como você escreveria um filtro de exceção em c #? blogs.msdn.com/b/clrteam/archive/2009/08/25/…
@LukeH Para adicionar um filtro de exceção ao C #, podemos criar uma função em VB ou IL e chamá-lo em C #: D
4
@ Anna: Assim, refutando sua afirmação de que "tudo o que você pode fazer no VB.NET pode fazer em C #" .
2
Há algumas coisas que você simplesmente não pode fazer em VB.Net que você pode em c # - veja também: stackoverflow.com/q/2362381/50447
Rowland Shaw
5

Honestamente, uma equipe de desenvolvedores deve usar o mesmo idioma ou, pelo menos, conhecer os mesmos idiomas.

Isso ajudará no treinamento cruzado e no suporte entre vários aplicativos que uma equipe de desenvolvimento produz.

No final, VB vs C # é uma batalha de preferências, mas a equipe deve estar na mesma página da qual usará ou apoiará.

Tony Abrams
fonte
5

O ac # dev deve mudar para o VB.net quando a base de idiomas da equipe é mista?

O desenvolvedor deve usar a linguagem .NET que é o padrão para a equipe. Na IMO, deve haver um idioma usado (a menos que um caso extremamente convincente possa ser apresentado).

Há algum motivo pelo qual eu deveria afastar o pessoal do VB.net?

Acho que a maioria das pessoas aqui prefere C #, mas isso não é tanto uma questão técnica quanto uma decisão política ou de negócios. Decida qual linguagem .NET usar e, em seguida, use-a. Agora, obviamente, há vários fatores a serem considerados:

  • Existe uma base de código existente? Em que idioma a maioria é escrita?
  • Os desenvolvedores do VB.NET podem facilmente pegar c #? Eles querem?
  • Faz sentido financeiramente investir em aceleração / treinamento em C #?
  • Como qualquer mudança de idioma afetaria os resultados existentes?
Randy Levy
fonte
+1 para pensar sobre a equipe, ao invés de preferências individuais
MarkJ
4

De fato, o VB.NET possui alguns recursos que o C # atualmente não possui: literais XML e sintaxe de consulta para usar o método Aggregate no LINQ.

John Saunders
fonte
1
O VB.NET também não possui iteradores (ou seja, a palavra-chave Yield em C #).
Atletway 27/03
2

Eu estava em uma situação muito parecida em 2003 em que você está agora. Eu estava gerenciando uma equipe que estava migrando para o ASP.NET do ASP Classic. A maioria da nossa equipe tinha experiência com o VBScript como linguagem padrão para o ASP, mas cerca de metade da equipe era a favor do C #, apesar de um caminho de migração um pouco mais complexo do ASP / VBScript. Por fim, escolhi o VB.NET, mas, em retrospecto, eu realmente gostaria de ter seguido a rota C #.

No aniversário de cinco anos dessa decisão, escrevi um artigo de blog sobre minha justificativa para tomar a decisão e tentei fornecer o benefício da minha retrospectiva a outros gerentes de desenvolvimento que tentavam fazer a mesma ligação. Aqui está um link para o artigo:

"Retrospectiva de um gerente na decisão C # versus VB.NET"

Para encurtar a história, para aqueles que não querem ler o artigo inteiro: não acho que o projeto tenha sido pior para a escolha do VB.NET em C #, e provavelmente nos poupou muito tempo no curto prazo. O maior problema foi realmente com o recrutamento. Felizmente, contrataria um programador em C # ou VB.NET para trabalhar em qualquer idioma. Eles realmente não são tão diferentes assim. No entanto, merecido ou não, o VB.NET possui um estigma que faz com que um bom número de desenvolvedores evite trabalhos onde eles sabem que trabalharão com ele como o idioma principal.

JohnFx
fonte
Como programador de C #, trabalhei em projetos que usam o VB.NET. Mas, na maioria das vezes, os programadores do VB.NET não sabiam o que estavam fazendo, não tinham formação em ciências da computação e escreveram métodos com centenas de linhas de código. Portanto, eu me inclinei a ignorar qualquer anúncio de emprego que pedisse o VB.NET.
31415 Ian
1

Eu me inclinaria para o C # porque é menos detalhado e, na minha experiência, é muito mais prevalente na internet. Eu também argumentaria que C # ou VB.NET são fáceis e rápidos de aprender, a ponto de serem insignificantes e insignificantes. A estrutura .NET, por outro lado, é enorme e uma criatura em constante evolução. O domínio do .NET leva muitos anos, mas o domínio do C # ou do VB.NET pode demorar alguns meses ou menos.

Nelson Rothermel
fonte
0

Acho que @Anna Karin tem um bom argumento, então você não deve se preocupar com as bibliotecas. Pelo menos, não me lembro de alguém que simplesmente trabalhe com c # e não com vb.net.

Outro ponto importante é que tornará as verificações de código mais difíceis entre os membros da mesma equipe se eles estiverem trabalhando com idiomas diferentes. Eu acho que é uma boa idéia usar alguma linguagem comum, para reduzir o atrito na comunicação.

Tiago Deliberali Santos
fonte
0

Embora eu concorde com a resposta anterior de que o .NET deve ter o mesmo recurso, esse nem sempre é o caso, mas perto o suficiente para que, se você tiver um projeto simples, isso não importe.

O principal motivo que eu daria para mudar para o C # em toda a equipe é que é o idioma em que mais exemplos estão e a maioria dos projetos de código aberto publica código-fonte em C #. Portanto, se sua equipe não conseguir extrair esse recurso, você pode estar se limitando desnecessariamente.

jjrdk
fonte
0

C # e VB.NET são baseados na plataforma .NET; é importante para os desenvolvedores que trabalham no .NET conhecer o .NET, princípios, técnicas, padrões ... Nesse caso, alternar entre idiomas não será um problema - trata-se principalmente de sintaxe. Em uma equipe mista, talvez todos eles tentem aprender os dois idiomas (não é grande coisa), mas isso pode ser importante para a futura colaboração entre os membros da equipe.

Vladimir
fonte
0

Eu diria que a única vantagem de ter todos usando a mesma linguagem é que isso significa que qualquer desenvolvedor pode trabalhar em qualquer parte do código.

Além disso, o VB.NET e o C # diferem apenas pela sintaxe no .NET. E o código escrito nos dois idiomas pode coexistir no mesmo projeto.

Jonathan Wood
fonte
0

Eu iria com c # porque:

  • é mais parecido com Java e C ++ (linguagens frequentemente ensinadas em cursos de CS).
  • existem muitos recursos na Internet em c # do que no VB (pelo que vi por aí).
  • as chances são maiores de encontrar / contratar outros desenvolvedores que conhecem C # melhor que o VB (pelo que vi na minha empresa) para manter o projeto.
Andrei Pana
fonte
0

Minha opinião seria a de permitir o desenvolvimento baseado em contrato com interface, e o desenvolvedor deve poder codificar uma classe no idioma que desejar e provavelmente separar classes de nível baixo / alto em diferentes assemblies. Desde que as classes respeitem a interface solicitada e implementem o requisito, deve haver pouco problema.

dvhh
fonte
0

Eu concordo com muitas das outras respostas aqui. Eu fiz parte de duas equipes que tiveram que tomar essa decisão. Nos dois, eles decidiram inicialmente que os desenvolvedores poderiam escolher, já que os dois idiomas funcionam juntos. No entanto, no primeiro ano, ambos desejaram ter escolhido C # e exigido que todos os novos projetos estivessem em C #.

Beth Whitezel
fonte
0

Razões para usar o C #:

  • Até agora, dois de seus desenvolvedores ficaram felizes e podem envolver os outros dois assim que o aprenderem.
  • Você planeja contratar mais desenvolvedores em algum momento e deseja evitar a multidão de "20 anos de experiência em VB".
  • Você adora chaves.
  • Você ama a vida.

Razões para usar o VB.NET:

  • Os dois desenvolvedores que não conhecem o C # se recusam absolutamente a aprender.
  • "Trilhar pelo caminho de menor resistência" é o lema da sua empresa.
  • Existe uma enorme base de código VB existente que não pode ser atualizada.
  • Você gosta de HP Lovecraft e lamentou a falta de "horrores horríveis" no seu dia-a-dia.
Shog9
fonte