Niedawno dołączyłem do nowego zespołu programistów, w którym preferencje językowe są mieszane na platformie .net.
Dev 1: Zna VB.net, nie zna c #
Dev 2: Zna VB.net, nie zna c #
Dev 3: Zna c # i VB.net, preferuje c #
Dev 4: Zna c # i VB6 (VB.net powinno być dość łatwe do pobrania), preferuje c #
Wydaje mi się, że liderami myśli w przestrzeni .net są c # devs prawie uniwersalnie. Pomyślałem również, że niektóre narzędzia innych firm nie obsługują VB.net, ale kiedy zacząłem je przeglądać, nie znalazłem dobrych przykładów.
Wolałbym ustawić cały zespół na c #, ale jeśli nie ma żadnego dobrego powodu, aby odepchnąć problem od preferencji, nie sądzę, że jest to właściwy wybór.
Czy są jakieś powody, dla których powinienem odwieść ludzi od VB.net?
Odpowiedzi:
Nie ma naprawdę ważnego powodu, aby zmusić kogoś do zmiany języka, chyba że ktoś ma funkcję, która będzie szczególnie przydatna lub pozwoli zaoszczędzić czas dla twojego projektu (projektów). Oba zostaną skompilowane do IL i będą działać równorzędnie (zakładając, że
Option Strict
jest włączony w VB.NET ... w przeciwnym razie możesz ponieść kary za opóźnione wiązanie). Wszystko inne naprawdę jest preferencyjne (wcale nie odrzucając tego, ale nie jest to obiektywna miara).Proponuję przejrzeć oferty pracy w Twojej okolicy i zobaczyć, który język jest bardziej rozpowszechniony zarówno w podaży pracy (tj. Pula siły roboczej dla obu języków). Przekonanie się, który z nich zapewni ci większą lub lepszą pulę siły roboczej, będzie prawdopodobnie najbardziej przekonującym wskaźnikiem.
źródło
Na szczęście odpowiedź jest prosta: nie ma „najlepszego” języka. Wszystkie języki .NET używają w swoim katalogu głównym funkcjonalności z zestawu klas udostępnianego przez .NET Framework. Dlatego wszystko, co możesz zrobić w VB.NET, możesz zrobić w C # i vice-a-versa. Jedyne różnice między językami są jedynie składniowe.
Programiści C ++, Java i J ++ wolą nonsensowną, zwięzłą składnię C #. Programiści Visual Basic (VB) mogą preferować trzymanie się diabła, którego znają - oparte na języku Visual Basic .NET, bez rozróżniania wielkości liter, pseudo-naturalne podejście językowe. Jeśli masz programistów VB i są oni prawdziwymi programistami (patrz Opcja Strict ON), otrzymasz te same wyniki. VB jest bardziej gadatliwy ... C # to kula z rozróżnianiem wielkości liter.
źródło
On Error Resume Next
sam wysłałby mnie w kierunku C #.Module
Koncepcja jest również bardzo niebezpieczne. Jest podobny dostatic class
C #, ale ... wszystko w nim jest globalnie dostępne bez odniesienia do klasy nadrzędnej i automatycznie statyczne bez żadnych innych wskazań ... z wyjątkiem tego, że klasa nadrzędna jest modułem ...!Szczerze mówiąc zespół deweloperów powinien używać tego samego języka lub przynajmniej znać te same języki.
Pomoże to w przekwalifikowaniu i wsparciu różnych aplikacji tworzonych przez zespół programistów.
Ostatecznie VB kontra C # to bitwa preferencji, ale zespół powinien znajdować się na tej samej stronie, z której będzie korzystać lub wspierać.
źródło
Deweloper powinien używać języka .NET, który jest standardem dla zespołu. IMO powinien używać jednego języka (chyba że można zrobić wyjątkowo przekonujący przypadek).
Myślę, że większość ludzi woli C #, ale nie jest to tak techniczne pytanie, jak decyzja polityczna lub biznesowa. Zdecyduj, jakiego języka .NET użyć, a następnie go użyć. Teraz oczywiście należy wziąć pod uwagę szereg czynników:
źródło
W rzeczywistości VB.NET ma kilka funkcji, których C # obecnie nie ma: literały XML i składnia zapytań do używania metody agregacji w LINQ.
źródło
Możesz sprawdzić te trzy artykuły, które porównują C # i VB.NET:
Wszystkie wydają się przedstawiać bardzo logiczne argumenty i porównania między nimi. Osobiście głosuję na C # (moja firma wybrała C # dla naszych projektów ASP.NET, kiedy przeszliśmy z klasycznego asp).
źródło
Byłem w bardzo podobnej sytuacji w 2003 roku, w której teraz jesteście. Zarządzałem zespołem, który przeniósł się do ASP.NET z ASP Classic. Większość naszego zespołu miała doświadczenie z VBScript jako językiem defacto dla ASP, ale około połowa zespołu faworyzowała C # pomimo nieco bardziej złożonej ścieżki migracji z ASP / VBScript. Ostatecznie wybrałem VB.NET, ale z perspektywy czasu naprawdę żałuję, że nie wybrałem trasy C #.
W piątą rocznicę tej decyzji napisałem artykuł na blogu na temat mojego uzasadnienia podjęcia tej decyzji i starałem się przekazać moją perspektywę innym menedżerom ds. Rozwoju, którzy próbują wykonać to samo wezwanie. Oto link do artykułu:
„Retrospektywa menedżera na temat C # a decyzja VB.NET”
Krótko mówiąc, dla tych, którzy nie chcą czytać całego artykułu: nie sądzę, że projekt miał gorszą sytuację, gdy wybrałem VB.NET zamiast C # i prawdopodobnie zaoszczędził nam wiele czasu w krótkim okresie. Największy problem dotyczył rekrutacji. Z przyjemnością wynająłbym programistę C # lub VB.NET do pracy w dowolnym języku. Naprawdę nie różnią się tak bardzo. Jednak niezależnie od tego, czy na to zasłużył, czy nie, VB.NET ma piętno, które powoduje, że spora liczba programistów unika zadań, o których wie, że będą pracować z nim jako językiem podstawowym.
źródło
Skłoniłbym się do C #, ponieważ jest mniej gadatliwy, a z mojego doświadczenia wynika, że jest znacznie bardziej rozpowszechniony w Internecie. Chciałbym również argumentować, że C # lub VB.NET są łatwe i szybkie w nauce, do tego stopnia, że jest znikome i nieistotne. Z kolei platforma .NET jest ogromnym i ciągle ewoluującym stworzeniem. Opanowanie .NET zajmuje wiele lat, ale opanowanie C # lub VB.NET może potrwać kilka miesięcy lub krócej.
źródło
Myślę, że @Anna Karin ma rację, więc nie powinieneś się martwić bibliotekami. Przynajmniej nie pamiętam nikogo, kto po prostu działa z c #, a nie z vb.net.
Inną ważną kwestią jest to, że utrudni to sprawdzanie kodu między członkami tego samego zespołu, jeśli pracują w różnych językach. Myślę, że najlepszym pomysłem jest użycie jakiegoś wspólnego języka, aby zmniejszyć tarcie w komunikacji.
źródło
Chociaż zgadzam się z poprzednią odpowiedzią, że .NET powinien mieć tę samą funkcjonalność, nie zawsze tak jest, ale wystarczająco blisko, jeśli masz prosty projekt, nie powinno to mieć znaczenia.
Głównym powodem, dla którego chciałbym przejść na C # w całym zespole, jest to, że jest to język, w którym jest większość przykładów, a większość projektów open source publikuje kod źródłowy w C #. Więc jeśli twój zespół nie jest w stanie przyciągnąć takiego zasobu, możesz się niepotrzebnie ograniczać.
źródło
C # i VB.NET są oparte na platformie .NET; ważne jest, aby programiści pracujący w .NET znali .NET, zasady, techniki, wzorce ... W takim przypadku przełączanie między językami nie będzie stanowiło problemu - chodzi głównie o składnię. W mieszanym zespole może wszyscy powinni spróbować nauczyć się obu języków (to nie jest wielka sprawa), ale może to być ważne dla przyszłej współpracy między członkami zespołu.
źródło
Powiedziałbym, że jedną zaletą posiadania tego samego języka jest to, że oznaczałoby to, że każdy programista może pracować na dowolnej części kodu.
Poza tym VB.NET i C # różnią się tylko składnią w .NET. A kod napisany w obu językach może dobrze współistnieć w tym samym projekcie.
źródło
Wybrałbym C #, ponieważ:
źródło
Moim zdaniem byłoby to możliwe dzięki rozwojowi opartemu na kontraktach z interfejsem, a programista powinien być w stanie kodować klasę w dowolnym języku i prawdopodobnie oddzielać klasy niskiego / wysokiego poziomu w różnych zestawach. Tak długo, jak klasy respektują żądany interfejs i implementują wymaganie, nie powinno być problemu.
źródło
Zgadzam się z wieloma innymi odpowiedziami tutaj. Byłem częścią dwóch zespołów, które musiały podjąć tę decyzję. W obu początkowo zdecydowali, że programiści mogą wybrać, ponieważ oba języki współpracują ze sobą. Jednak w ciągu pierwszego roku oboje chcieli, aby właśnie wybrali C # i nałożyli nowy wymóg, aby wszystkie nowe projekty były w C #.
źródło
Powody, dla których warto użyć C #:
Powody korzystania z VB.NET:
źródło