Takım dili tabanı karıştırıldığında ac # dev'in VB.net'e geçmesi gerekir mi?


14

Geçenlerde .net platformunda dil tercihlerinin karıştırıldığı yeni bir geliştirme ekibine katıldım.

  • Dev 1: VB.net'i biliyor, c # bilmiyor

  • Dev 2: VB.net'i biliyor, c # bilmiyor

  • Dev 3: C # ve VB.net'i biliyor, c # tercih ediyor

  • Dev 4: C # ve VB6'yı biliyor (VB.net'i almak oldukça kolay olmalı), c #'ı tercih ediyor

Bana öyle geliyor ki .net alanındaki düşünce liderleri neredeyse evrensel olarak c # devs. Ayrıca bazı üçüncü taraf araçların VB.net'i desteklemediğini düşündüm, ancak içine bakmaya başladığımda iyi bir örnek bulamadım.

Tüm ekibi c # 'dan almayı tercih ederim, ancak sorunu tercih dışında kenara itmek için iyi bir neden yoksa, doğru seçim olduğunu düşünmüyorum.

İnsanları VB.net'ten uzaklaştırmamın herhangi bir nedeni var mı?


5
Sadece VB içindeki ayrıntılar sizi C # 'a götürecektir ...
Aaron McIver

13
Geliştirme ekibinizin ciddi bir liderliği yokmuş gibi geliyor bana. Yöneticiniz bu sorunla neden ilgilenmedi?

2
Neden VB .Net'e doğru sürükleniyorsun? Yukarıdaki diyagramdan herhangi bir beceri ile 2 geliştirici hem C # biliyor ve diğerleri hiç .Net bilmiyor. Kuşkusuz, diğer iki geliştiricinin üzerinde geliştirilecek c # becerilerine sahip olduğu için, ne dili bilenleri C # ile hızlandırmak en iyisidir?

15
Kaputun altında aynı olabilirler, ancak VB sözdizimi, daha sıcak, iyi yıkanmış C # kız kardeşinin yanında duran çirkin siğil ile enfekte kız kardeşidir. Sözdizimi, yalnızca kendi cehennem versiyonlarına bakarken birçok geliştiricinin gözlerinden dökülen kana bir referans noktası olarak hatırlanmalıdır. Sıcak yaz sıcağında çürümesi için VB kısırlaştırılmalı, öldürülmeli ve yolun kenarında bırakılmalıdır. Daha güzel sözdizimini kucaklayın ve doğanın unutmayı seçtiği şeylerden kaçın. Akıllıca seçim.
Moo-Juice

2
Yanılmıyorsam, Sonraki Hata Özgeçmişinde eski destek içindir. .Bet olduğu için VB.Net'te Catch blokları var ...
Tony Abrams

Yanıtlar:


2

Birisi projeleriniz için özellikle yararlı veya zaman kazandıran bir özelliğe sahip olmadığı sürece birisini dili değiştirmeye zorlamak için gerçekten zorlayıcı bir neden yoktur. Her ikisi de IL'ye derlenecek ve eşdeğer performans gösterecektir (VB.NET'te açık olduğu varsayılarak Option Strict... aksi takdirde geç bağlama için cezalara maruz kalabilirsiniz). Diğer her şey gerçekten tercih edicidir (bunu hiç reddetmemek, ancak nesnel bir metrik değildir).

Bölgenizdeki iş ilanlarına bakmanızı ve hem iş arzında hangi dilin daha yaygın olduğunu görmenizi öneririm (yani her iki dil için çalışma havuzu). Hangisinin size daha büyük veya daha iyi bir iş havuzu sağlayacağını görmek, muhtemelen en ilgi çekici metriğiniz olacaktır.


Yerel iş ilanları hakkında söylediklerinize katılıyorum. Göz ardı etmesi kolay bir şey, potansiyel yetenek havuzu ve bir dili seçmenin diğerine göre etkisinin gelecekteki işe alma çabalarınız üzerinde olabileceğini düşünüyorum.
jjr2527

7

Neyse ki cevap basit: "en iyi" dil yok. Tüm .NET dilleri, köklerinde, .NET Framework tarafından sağlanan sınıf kümesindeki işlevleri kullanır. Bu nedenle, VB.NET'te yapabileceğiniz her şey C # ve tersi yapabilirsiniz. Diller arasındaki tek fark sadece sözdizimseldir.

C ++, Java ve J ++ programcıları C # 'ın anlamsız, kısa süreli sözdizimini tercih edecektir. Visual Basic (VB) programcıları tanıdıkları şeytanla yapışmayı tercih edebilir - Visual Basic .NET'in büyük / küçük harfe duyarlı olmayan, sahte doğal dil yaklaşımı. VB programcılarınız varsa ve bunlar gerçek programcılarsa (Bkz. Seçenek Katı AÇIK) aynı sonuçları alırsınız. VB daha ayrıntılı .... C # büyük / küçük harf duyarlılığı olan bir top kırıcıdır.


Doğru, her ikisi de% 98 yapabilir, ancak diğeri VB'de kendini asmak için çok fazla ip var. On Error Resume NextYalnız beni C # 'a doğru koşacaktı. ModuleKavram da çok tehlikelidir. static classC # ' a benzer ancak ... içindeki her şeye, üst sınıfa başvuru yapılmaksızın ve başka herhangi bir gösterge olmadan otomatik olarak statik olarak erişilebilir ... ancak ana sınıfın bir Modül olması hariç ...!
Paul Sasik

6
Nitpick için üzgünüm ama bu doğru değil. Örneğin, C # 'da bir istisna filtresi nasıl yazardınız? blogs.msdn.com/b/clrteam/archive/2009/08/25/...

@LukeH C #'a istisna filtresi eklemek için VB veya IL'de bir işlev oluşturabilir, sonra C #: D olarak adlandırabiliriz

4
@Anna: Böylece " VB.NET'te yapabileceğiniz her şeyi C # 'da yapabilirsiniz" ifadesini çürütmek .

2
VB.Net'te c # ile yapabileceğiniz birkaç şey var - ayrıca bkz: stackoverflow.com/q/2362381/50447
Rowland Shaw

5

Dürüst olmak gerekirse, Dev'in bir ekibi aynı dili kullanmalı veya en azından aynı dilleri bilmelidir.

Bu, bir geliştirme ekibinin ürettiği çeşitli uygulamalar arasında çapraz eğitime ve desteğe yardımcı olacaktır.

Sonunda VB vs C # bir tercihler savaşıdır, ancak takım hangi sayfayı kullanacakları veya destekleyecekleri ile aynı sayfada olmalıdır.


5

Takım dili tabanı karıştırıldığında ac # dev'in VB.net'e geçmesi gerekir mi?

Geliştirici, ekip için standart olan .NET dilini kullanmalıdır. IMO, kullanılan bir dil olmalıdır (aşırı derecede zorlayıcı bir durum ortaya çıkmadıkça).

İnsanları VB.net'ten uzaklaştırmamın herhangi bir nedeni var mı?

Sanırım buradaki çoğu insan C # 'ı tercih ediyor, ancak bu politik veya ticari bir karar kadar teknik bir soru değil. Hangi .NET dilinin kullanılacağına karar verin ve kullanın. Şimdi açık bir şekilde dikkate alınması gereken bir dizi faktör var:

  • Mevcut bir kod tabanı var mı? Çoğunluğu hangi dilde yazılıyor?
  • VB.NET geliştiricileri kolayca C # alabilir miyim? Onlar istiyorlar mı?
  • Finansal olarak C # artış / eğitim yatırım yapmak mantıklı mı?
  • Herhangi bir dil değişimi mevcut çıktıları nasıl etkiler?

Bireysel tercihlerden ziyade takımı düşünmek için +1
MarkJ

4

Aslında, VB.NET şu anda C # sahip olmayan birkaç özelliğe sahiptir: XML değişmezleri ve LINQ'da Toplama yöntemini kullanmak için sorgu sözdizimi.


1
VB.NET'in yineleyicileri de yoktur (yani C # içindeki Yield anahtar sözcüğü).
Mart'ta atconway


2

2003 yılında çok benzer bir durumdaydım. ASP Classic'ten ASP.NET'e taşınan bir ekibi yönetiyordum. Ekibimizin çoğu ASP için defacto dili olarak VBScript ile deneyime sahipti, ancak ekibin yaklaşık yarısı ASP / VBScript'ten biraz daha karmaşık bir göç yoluna rağmen C #'ı tercih etti. Nihayetinde VB.NET'i seçtim, ama geçmişe baktığımda gerçekten C # yoluna gitmiş olsaydım.

Bu kararın 5 yıl dönümünde, karar verme gerekçem hakkında bir blog makalesi yazdım ve aynı çağrıyı yapmaya çalışan diğer kalkınma yöneticilerine görmemden faydalanmaya çalıştım. İşte makaleye bir bağlantı:

"VB.NET Kararına Karşı C # Yöneticisinin Retrospektifi"

Uzun makale kısa, tüm makaleyi okumak istemeyenler için: Ben C # VB.NET seçmek için projenin daha kötü olduğunu düşünmüyorum, ve muhtemelen kısa vadede bize çok zaman kazandırdı. En büyük sorun gerçekten işe alım ile ilgiliydi. Her iki dilde çalışmak için mutlu bir C # veya VB.NET programcısı işe. Gerçekten o kadar da farklı değiller. Bununla birlikte, haklı olsun ya da olmasın, VB.NET, çok sayıda geliştiricinin birincil dil olarak çalışacaklarını bildikleri işlerden kaçınmasına neden olan bir damgalamaya sahiptir.


Bir C # programcısı olarak VB.NET kullanan projeler üzerinde çalıştım. Ancak çoğu zaman VB.NET programcıları ne yaptıklarını bilmiyorlardı, Comp Sci dereceleri yoktu ve 100'lü kod satırıyla yöntemler yazıyordu. Bu nedenle VB.NET isteyen herhangi bir iş ilanını göz ardı ettim.
Ian

1

C # 'e yaslanıyorum çünkü daha az ayrıntılı ve tecrübelerime göre internette çok daha yaygın. Ayrıca, C # veya VB.NET'in, ihmal edilebilir ve önemsiz olduğu noktaya kadar kolay ve hızlı bir şekilde öğrenildiğini iddia ediyorum. Öte yandan .NET çerçevesi çok büyük ve sürekli gelişen bir yaratıktır. Mastering NET yıllar sürer, ama mastering C # veya VB.NET olabilir veya daha az bir kaç ay sürebilir.


0

Bence @Anna Karin iyi bir noktaya sahip, bu yüzden kütüphaneler için endişelenmenize gerek yok. En azından, sadece c # ile çalışan ve vb.net ile çalışmayan birini hatırlayamıyorum.

Bir başka önemli nokta, farklı dillerle çalışıyorsa aynı ekibin üyesi arasında kod kontrollerini daha zor hale getirmesidir. Bence iletişimdeki sürtünmeyi azaltmak için bazı commom dillerini kullanmak en iyi fikirdir.


0

Önceki yanıt ile aynı özellik akıllıca olması gerektiğini kabul ederken, bu her zaman böyle değil, ama basit bir projeniz varsa önemli olmamalıdır yeterince yakın.

Ekip boyunca C # 'a geçmek için vereceğim temel neden, çoğu örneğin içinde bulunduğu dil ve çoğu açık kaynak projesinin C #' da kaynak kodu yayınlamasıdır. Ekibiniz böyle bir kaynağı çekemiyorsa, kendinizi gereksiz yere sınırlamış olabilirsiniz.


0

C # ve VB.NET .NET platformunu temel alır; .NET'te çalışan geliştiriciler için .NET, ilkeler, teknikler, kalıpları bilmek önemlidir ... Bu durumda diller arasında geçiş yapmak sorun olmayacak - esas olarak sözdizimi ile ilgilidir. Karışık bir takımda, belki de her ikisi de her iki dili de öğrenmeye çalışmalıdır (büyük bir anlaşma değildir), ancak ekibin üyeleri arasındaki gelecekteki işbirliği için önemli olabilir.


0

Herkesin aynı dili kullanmasının bir avantajı, herhangi bir geliştiricinin kodun herhangi bir kısmında çalışabileceği anlamına geleceğini söyleyebilirim.

Bunun ötesinde, VB.NET ve C # yalnızca .NET altındaki sözdizimine göre farklılık gösterir. Ve her iki dilde yazılmış kod da aynı projede bir arada olabilir.


0

C # ile gitmek istiyorum çünkü:

  • Java ve C ++ (CS derslerinde çok sık öğretilen diller) daha yakındır.
  • İnternette C # 'da (orada gördüklerimden) çok fazla kaynak var.
  • C # bilen diğer geliştiricileri bulmak / kiralamak, projeyi sürdürmek için VB'den (şirketimde gördüklerimden) daha yüksek.

0

Benim düşüncem, arayüz ile sözleşmeye dayalı geliştirmeyi mümkün kılmak ve geliştiricinin bir sınıfı istediği dilde kodlayabilmesi ve muhtemelen farklı / derlemelerdeki düşük / yüksek seviyeli sınıfları ayırabilmesi olacaktır. Sınıflar istenen arayüze saygı duydukları ve gereksinimi uyguladıkları sürece çok az sorun olmalıdır.


0

Buradaki diğer cevapların çoğuna katılıyorum. Bu kararı vermek zorunda olan iki ekibin bir parçasıydım. Her ikisinde de, başlangıçta iki dil birlikte çalıştığı için geliştiricilerin seçebileceğine karar verdiler. Ancak her ikisinde de ilk yıl içinde sadece C # seçmiş ve tüm yeni projelerin C # olması için yeni bir gereklilik getirmişlerdir.


0

C # kullanmak için nedenler:

  • Şimdiye kadar geliştiricilerinizden ikisini mutlu etti ve öğrendikten sonra diğer ikisini de güzelleştirebilir .
  • Bir noktada daha fazla geliştirici tutmayı planlıyorsunuz ve "20 yıllık VB deneyimi" kalabalığından kaçınmak istiyorsunuz.
  • Kıvırcık parantezleri seviyorsun.
  • Hayatı seviyorsun.

VB.NET'i kullanma nedenleri:

  • C # bilmeyen iki geliştirici kesinlikle öğrenmeyi reddediyor.
  • "En az direnç yolu boyunca karmakarışık" şirket sloganınızdır.
  • Güncellenemeyen çok büyük bir VB kod tabanı var.
  • Bir HP Lovecraft vuruşundasınız ve günlük yaşamınızda "eldritch dehşet" eksikliğine ağıt yakıyorsunuz.
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.