Se un c # dev passa a VB.net quando la lingua del team viene mescolata?

13

Recentemente ho aderito a un nuovo team di sviluppo in cui le preferenze linguistiche sono mescolate sulla piattaforma .net.

  • Dev 1: Conosce VB.net, non sa c #

  • Dev 2: Conosce VB.net, non sa c #

  • Dev 3: sa c # e VB.net, preferisce c #

  • Dev 4: sa c # e VB6 (VB.net dovrebbe essere abbastanza facile da raccogliere), preferisce c #

Mi sembra che i leader del pensiero nello spazio .net siano c # devs quasi universalmente. Ho anche pensato che alcuni strumenti di terze parti non supportassero VB.net ma quando ho iniziato a esaminarlo non ho trovato alcun buon esempio.

Preferirei avere l'intera squadra su c # ma se non c'è una buona ragione per forzare il problema oltre le preferenze, allora non penso che sia la scelta giusta.

Ci sono dei motivi per cui dovrei portare la gente lontano da VB.net?

    
posta Wilman 31.07.2015 - 14:24
fonte

16 risposte

2

Non c'è una ragione davvero convincente per costringere qualcuno a cambiare lingua a meno che non si abbia una funzione che sarà particolarmente utile o che fa risparmiare tempo per i propri progetti. Compileranno entrambi fino a IL ed eseguiranno in modo equivalente (supponendo che Option Strict sia attivo in VB.NET ... altrimenti si possono incorrere in penalità per l'associazione tardiva). Tutto il resto è davvero preferenziale (non ignorarlo affatto, ma non è una metrica oggettiva).

Suggerirei di consultare gli elenchi di lavoro nella tua zona e vedere quale lingua è più prevalente sia nell'offerta di lavoro (vale a dire la riserva di lavoro per entrambe le lingue). Vedere quale ti fornirà una riserva di lavoro più grande o migliore sarà probabilmente la tua metrica più convincente.

    
risposta data 11.01.2011 - 17:31
fonte
7

Fortunatamente la risposta è semplice: non esiste una lingua "migliore". Tutti i linguaggi .NET utilizzano, alla radice, funzionalità dell'insieme di classi fornite da .NET Framework. Pertanto, tutto ciò che puoi fare in VB.NET puoi farlo in C # e vice-versa. Le uniche differenze tra le lingue sono meramente sintattiche.

I programmatori C ++, Java e J ++ preferiranno la sintassi concisa e senza senso di C #. I programmatori di Visual Basic (VB) potrebbero preferire rimanere fedeli al diavolo che conoscono: l'approccio linguistico pseudo-naturale di Visual Basic .NET. Se hai programmatori VB e sono reali programmatori (Vedi Option Strict ON) otterrai gli stessi risultati. VB è di più verbose .... C # è un ballbull con sensibilità alle maiuscole e minuscole.

    
risposta data 11.01.2011 - 17:29
fonte
5

Onestamente una squadra di Dev dovrebbe usare la stessa lingua o almeno conoscere le stesse lingue.

Ciò sarà di aiuto nel cross-training e nel supporto tra le varie applicazioni prodotte da un team di sviluppo.

Alla fine VB vs C # è tutta una battaglia di preferenze, ma il team dovrebbe trovarsi nella stessa pagina in cui verrà utilizzato o supportato.

    
risposta data 11.01.2011 - 17:34
fonte
5

Should a c# dev switch to VB.net when the team language base is mixed?

Lo sviluppatore dovrebbe utilizzare il linguaggio .NET che è lo standard per il team. IMO, dovrebbe esserci una lingua usata (a meno che non si possa fare un caso estremamente convincente).

Are there any reasons I should lead folks away from VB.net?

Penso che la maggior parte delle persone qui preferisca C # ma non si tratta tanto di una questione tecnica quanto di una decisione politica o commerciale. Decidi quale linguaggio .NET usare e poi usalo. Ora ovviamente ci sono un sacco di fattori da considerare:

  • Esiste una base di codice esistente? In quale lingua è scritta la maggior parte di essa?
  • Gli sviluppatori di VB.NET possono prendere facilmente C #? Vogliono?
  • Ha senso investire in C # ramp-up / training?
  • In che modo qualsiasi cambiamento linguistico influisce sui risultati esistenti?
risposta data 11.01.2011 - 18:02
fonte
4

Infatti, VB.NET ha alcune funzionalità che C # non ha al momento: letterali XML e sintassi di query per l'utilizzo del metodo Aggregate in LINQ.

    
risposta data 11.01.2011 - 17:39
fonte
3

Potresti controllare questi tre articoli che mettono a confronto C # e VB.NET:

Sembrano tutti fornire argomenti e confronti molto logici tra i due. Personalmente voto per C # (la mia azienda ha scelto C # per i nostri progetti ASP.NET quando siamo passati dal classico asp).

    
risposta data 27.03.2012 - 08:33
fonte
2

Ero nel 2003 in una situazione molto simile a quella in cui ti trovi ora. Gestivo un team che si stava spostando su ASP.NET da ASP Classic. La maggior parte del nostro team aveva esperienza con VBScript come linguaggio defacto per ASP, ma circa la metà del team preferiva C # nonostante un percorso di migrazione leggermente più complesso da ASP / VBScript. Alla fine ho scelto VB.NET, ma in retrospettiva mi piacerebbe davvero aver seguito il percorso C #.

Nel quinto anniversario di questa decisione ho scritto un articolo sul mio razionale per prendere una decisione e ho cercato di fornire il beneficio del mio senno di poi ad altri responsabili dello sviluppo che cercavano di fare quella stessa chiamata. Ecco un link all'articolo:

"Retrospettiva di un manager sul C # contro Decisione VB.NET "

Per farla breve, per coloro che non vogliono leggere l'intero articolo: non penso che il progetto sia stato peggio per aver scelto VB.NET su C #, e probabilmente ci ha risparmiato un sacco di tempo a breve correre. Il più grande problema era in realtà con il reclutamento. Sarei felice di assumere un programmatore C # o VB.NET per lavorare in entrambe le lingue. In realtà non sono così sostanzialmente diversi. Tuttavia, che sia meritato o meno, VB.NET ha uno stigma che causa un buon numero di sviluppatori di evitare lavori in cui sanno che lavoreranno con esso come lingua principale.

    
risposta data 11.01.2011 - 20:39
fonte
1

Mi inclino a C # perché è meno prolisso e nella mia esperienza è molto più diffuso su internet. Vorrei anche sostenere che C # o VB.NET sono facili e veloci da imparare, al punto da essere trascurabili e insignificanti. Il framework .NET, d'altra parte, è enorme e una creatura in costante evoluzione. La masterizzazione di .NET richiede molti anni, ma la padronanza di C # o VB.NET potrebbe richiedere alcuni mesi o meno.

    
risposta data 11.01.2011 - 17:39
fonte
0

Penso che @Anna Karin abbia un buon punto, quindi non dovresti preoccuparti delle biblioteche. Almeno, non riesco a ricordare nessuno che funziona solo con c # e non con vb.net.

Un altro punto importante è che renderà i controlli del codice più difficili tra i membri della stessa squadra se stanno lavorando con lingue diverse. Penso che sia una buona idea usare un linguaggio comune, per ridurre l'attrito nella comunicazione.

    
risposta data 11.01.2011 - 17:32
fonte
0

Anche se sono d'accordo con la precedente risposta che .NET dovrebbe avere la stessa funzionalità, questo non è sempre il caso, ma abbastanza vicino che se hai un progetto semplice non dovrebbe avere importanza.

Il motivo principale che vorrei dare per passare a C # attraverso il team è che è la lingua nella quale si trovano molti esempi e molti progetti open source pubblicano il codice sorgente in C #. Quindi se la tua squadra non è in grado di accedere a una risorsa del genere potresti limitarti inutilmente.

    
risposta data 11.01.2011 - 17:32
fonte
0

C # e VB.NET sono basati su piattaforma .NET; è importante per gli sviluppatori che lavorano in .NET per conoscere .NET, principi, tecniche, schemi ... In tal caso, il passaggio da una lingua all'altra non sarà un problema: si tratta principalmente di sintassi. In un team misto, forse tutti dovrebbero provare ad imparare entrambe le lingue (non è un grosso problema), ma può essere importante per la futura collaborazione tra i membri del team.

    
risposta data 11.01.2011 - 17:33
fonte
0

Direi che l'unico vantaggio di avere tutti che usano la stessa lingua è che significherebbe che qualsiasi sviluppatore potrebbe lavorare su qualsiasi parte del codice.

Oltre a ciò, VB.NET e C # differiscono solo per la sintassi sotto .NET. E il codice scritto in entrambe le lingue può coesistere nello stesso progetto.

    
risposta data 11.01.2011 - 17:34
fonte
0

Vorrei andare con C # perché:

  • è più vicino a Java e C ++ (lingue molto spesso insegnate nei corsi CS).
  • ci sono molte risorse su Internet in C # rispetto a VB (da quello che ho visto là fuori).
  • è più alto trovare / assumere altri sviluppatori che conoscono C # meglio di VB (da quello che ho visto nella mia azienda) per mantenere il progetto.
risposta data 11.01.2011 - 17:39
fonte
0

La mia opinione sarebbe quella di abilitare lo sviluppo basato su contratto con l'interfaccia, e lo sviluppatore dovrebbe essere in grado di codificare una classe in qualsiasi lingua desideri e probabilmente separare classi di basso / alto livello in diversi assembly. Finché le classi rispettano l'interfaccia richiesta e implementano il requisito, dovrebbe esserci un piccolo problema.

    
risposta data 11.01.2011 - 17:39
fonte
0

Sono d'accordo con molte altre risposte qui. Ho fatto parte di due squadre che hanno dovuto prendere questa decisione. In entrambi hanno inizialmente deciso che gli sviluppatori potevano scegliere poiché le due lingue interagiscono tra loro. Tuttavia, nel primo anno, entrambi desideravano aver scelto C # e inserire un nuovo requisito per tutti i nuovi progetti in C #.

    
risposta data 11.01.2011 - 19:15
fonte
0

Motivi per utilizzare C #:

  • Ha reso felici due dei tuoi sviluppatori finora, e potrebbe benissimo engladden gli altri due una volta appresi.
  • Hai in programma di assumere altri sviluppatori a un certo punto e vuoi evitare il "ventennio di esperienza VB".
  • Ti piacciono le parentesi graffe.
  • Ami la vita.

Motivi per utilizzare VB.NET:

  • I due sviluppatori che non conoscono C # si rifiutano assolutamente di impararlo.
  • "Passeggiare lungo il percorso di minor resistenza" è il motto della tua azienda.
  • Esiste un'enorme base di codice VB che non può essere aggiornata.
  • Sei su un H.P. Lovecraft calcia e lamenta la mancanza di "orrori orribili" nella tua vita quotidiana.
risposta data 11.01.2011 - 19:27
fonte

Leggi altre domande sui tag