VB.NET mi, C# mı?

SiteBuilders‘ın teknik mail grubunda aslında sürekli bir yerlerde tartışılan “VB.NET mi, C# mı?” konusu açıldı.

Konuya yolladığım cevabın burada da bulunması hem arşiv hem de gruba üye olmayanların da okuyabilmesi açısından iyi olur diye düşündüm:

VB.NET ‘te “late binding” olayi daha rahat gerceklestirilebilir. C#’ta ise “unassigned variable” hatalariyla bolca karsilasirsiniz. Ancak bu tabi ki handle edilebilir bir durum.

VB.NET 1.0 ve 1.1 operator overloading yani “+,-,/,*” gibi operatorlerin kendi olusturdugunuz class icin nasil bir davranis gosterecegini ayarlayabilmenize malesef olanak vermiyor. C# 1.0 ve 1.1 ise bu konuya destek vermekte. Sanirim VB.NET ‘in C#’a yenildigi en önemli konulardan bir tanesi buydu. Zaten cok büyük VB.NET cözümlerinin icerisinde, bir tane C# projesi var ise, bu mutlaka operator overloading ile ilgilidir.Unutmadan eklemeliyim ki, .NET Framework 2.0 ile birlikte, VB.NET 2.0 operator overloading’e artik destek veriyor.

C#’in en büyük avantajlarindan bir tanesi de kodun icerisine gömülebilen ve daha sonra ilgili araclar kullanilarak dökümantasyonun comment’lara göre direkt olarak olusturulabilmesini saglayan XML Comment yapisi. Bunu VB.NET’te 3rd party araclarla yapmak elbette ki mümkün fakat IDE’nin buna direkt bir destegi yok. 

Ozan Bey’in de ekledigi gibi, her 2 dil de MSIL (Microsoft Intermediate Language) koduna cevirilip, öyle derlenir. Cok ufak performans farklari olsa da, bu farklar milisaniyelerle olculur ve her zaman C# daha hizli degildir. VB.NET’in sahip oldugu “WithEvents” keyword’u, VB.NET ile event hook isleminin daha rahat yapilabilmesini saglar. C#’ta bunun icin ekstra bir satir kod eklemek gerek. Ancak bunu bir fark olarak görmeyebilirsiniz de. 

C# ile “unsafe” kod üzerinde calisabilirken, VB.NET ile “unsafe” kod islemleri yapamazsiniz. Geriye kalan her türlü konu, .NET Framework’un özelligi. C# ve ya VB.NET bu konuda daha güclü denilebilecek baska bir konu yok. Bu noktada hangi dilin secilecegi, yukarida belirlenen farklar haricinde sadece “syntax” farkindan dolayi farklilik gösterir. Developer hangisine yakinsa ve ya sirket hangisinde standardizasyon saglamak isterse, o dil secilir. 

7 Responses

  1. ertan says:

    VB ile C# arasındaki fark sadece bi syntax meselesi değildir. (bu arada amacım tartışmak değil kendi fikirlerimi söylemektir) VB’de yapılıpda C#’da olmayan bişey yoktur. C#’da ne vardır peki ?

    1. ECMA standardındadır. yani iki gün sonra microsoft WithEvents’i kaldirim WithMagicalEvents koydum diyemez.
    2. VB’deki kod emit gibi işlemler yüzünden IL kodunda sizin yazmadığınız şeyler olmaz.
    3. .NET’in ana dili C#dır.
    4. C#’da yazan birisi VB kodunu anlar, ama VB’de yazan birisi ascii kodları gördüğünü sanar. (bkz: !,^,%,== ve hatta {} gibi.. )
    5. VB’deki late binding yalandır dolandır.
    6. Farzı mahal yeni bir özellik eklendiğinde bu dil ilk olarak C#’da kullanılır. (bkz: generics) Sonradan VB’ye bir şekilde yamanır.

    kendi fikirlerim bu kadar.

  2. Sky_Lab says:

    s.a

    Ben VB ve C# kullancısı olarak Csharp ve Visual Basici aynı kefeye koymanız bile saçma geliyor…VB tamamen temele dayalı bir Programlama Dili…Büyük Projeler Bekleyin…

    Eğer Bir Programlama Dili ile İstediğimi Yapmak İstiyorum , Sınır Tanımam Diyorsanız Size Cevabım

    C#

    Selametle…(f)

  3. b-yaz says:

    yaklaşık bir sene kadar vb.nette orta ölçekli projeler gerçekleştirdim. açıkçası c#ta yapabildiğiniz herşeyi vb.net yapma imkanı veriyor, küçümsenecek bir dil değil. ancak vb.nette kod yazması çok zevkli gelmedi bana. bu da demek oluyorki zevk meselesi :)
    ama ben her şekilde c# derim…

  4. tgorgu says:

    vb .net 2003 le bi kaç yıl web tabanlı projeler geliştirdim.
    C# pa bi bakayım dedim. C# 2005 ile, bir tanıdık için perakende satış ve takip projesi yapmam sadece 1 haftamı aldı.
    VB.net bilen C# biliyor demektir.
    C# bilende VB.net biliyor demektir. Sadece basit syntax farkları var, ve javascript çok kullandı iseniz, bu syntax farklarıda kolay geliyor..

  5. Fuat says:

    Merhabalar
    Ben Şu ana kadar ASP dilinde bir çok projeye imza attım. Hepsi de arkada kalan gündelik işler için pek ziyaret edilmeyen ancak çok büyük çaplı sitelerdi.

    Ama geçenlerde Visual Studio Yükleyip ASP.net e göz atayım dedim. ASP de yaklaşık 20 dk da yaptığım kadar bir bölümü ASP.net + Visual Studio ile 20 sn gibi bir sürede yaptım. ASP den ASP.net e geçiyorum ama hangi dili kullanmam konusunda kararsızdım. tgorgu said arkadaşımızın dediği gibi syntax farklılıkları var galiba sadece. En iyisi VB.net Den şaşmamak. En Azından Microsoft un ekolü VB.net. Umarım öğrenirim.

  6. mehmet says:

    C# mı Vb.net mi aslında karşılaştırma bile saçma ikiside microsoft ürünü olan şeyler bazı noktalarda ufak tefek farklar olsa da asıl köken .net kavramına vardığı için aynı şeyler peki herkez söylüyor bu ufak fark nedir? hemen bir tane örnek vermek istiyorum. isnumeric fonksiyonu c# göre methodu vb.net üzerinde olan bi fonksiyon peki c# çılar kullanamıyormu evet kullanıyor dışarıdan referans ala
    rak kullanılıyor.
    bu fonksiyon üzerinden geçti baya bi ama sanırım yanlış hatırlamıyorsam
    dim SayiMi as boolean
    SayiMi=isnumeric(değişken)
    kullanılabilir iken C#.net de sınıftan nesne türetmek ve o şekilde kullanmak gerekiyor ben vb.net den geçtim c# çok da iyi yaptım nedeni gördüğüm birçok kod bloklarını rahatlıkla anlayabiliyorum temel olarak pascal c basic delphi gibi dersleri görme şansım olduğu için ama C dilinin ve türevleri sayesindedir bu ikincisi c# başlayan herkez hiç bir şekilde montelenmiş saçma bir yaklaşım göremez tamamen sınıf kavramı ve %100 nesne tabanlı programlama amacıyla yazılmış bir dildir. Öğrenmesi Vb.net den çok am çok daha kolaydır ” ==,&& ||” gibi karekterler insanların acayibine gidiyor ama o karekterler bu işi sevmemize sebeb oluyor.

  7. Hasan says:

    Yahu C,C++ Gibi dillere zamanında başlamış bir yere gelmiş insanların .net platformunda da kolayca alıskanlıklarından vazgeçmesinler diye çıkarılmış bir dil zaten ilk çıkan dil C# sonra vb.net çıkıyor.

    Yeni Bir sürüm niye çıkar ?
    Eski Olan artık bazı durumlarda yetersiz kalıyor.Yeni Çıkarılan programlama dili ile bunları giderelim mi dediler :) hiç sanmıyorum. Yahu biz kod yazmıyoruz ki bizim yaptığımız iş bir nevi puzzle zaten framework içinde bütün kodlar bizde uygun kodu uygun yere yazıyoruz veya kontrolünü sağlıyoruz hepsi bu.
    Matematik Bilen Biri otomatik olarak vb.net ve sql de kolaylaca işlerini halledebilir hale geliyorlar.
    Matematikde Eşittir (=) Demek
    Sql De Eşittir (=) Demek
    Vb.net ‘de Eşitttir (=) Demek
    C# Da Eşittir (==) Demek

    İngilizce: banana
    Fransızca: banane
    İspanyolca: banana
    Felemenkçe:banaan
    Türkçe: MUZ işte bu c# dır :):)

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.