.NET Platformunda yazılım geliştririken VB.NET mi C# mı?

10.09.2006

Okuyucu : 4.713
Günlük Okuyucu : 7,7

.NET platformunda yazılım geliştirinler arasında klasik geyiklerden biridir heralde VB.NET ile mi yazalım yoksa C# ile mi? ya da C# mı iyi VB.NET mi?

İkinci klasik durum ise yeni başlayacak birinin klasik sorusudur bu C# mı VB.NET ile mi kod yazayım?

Coding Horror buna çok güzel bir örnek vermiş Coca Cola mı Pepsi mi? Sanırım başlık yeterince açıklayıcı VB.NET ile C# arasında seçim yapmak Coca Cola ile Pepsi arasında seçim yapmak gibi bir şey.

Genel olarak .NET geliştiricileri hem C# hem de VB.NET ile kod yazabilirler ve düzenli olarak da yazmaları gerekir. Şahsen benim karşılaştığım genel iki neden,

  • Bir dil ile yazılım geliştirirken diğer dilden bir DLL kullanmam ve modifiye etmem gerekmesi,
  • Hali hazırda geliştirilen bir yazılıma veya legacy bir yazılıma yeni ek yazılması. Eğer yazılım sizin normal geliştirdiğiniz dilde değilse ona başka dilde yazılmış bir ek yapmanız pek hoş karşılanmayacaktır.

İki basit konu daha var,

  • VB Microsoft' un eski çocuğu ve bariz bir şekilde onu hiç bir zaman bırakmayacak,
  • C# özellikle yazılım toplulukları ve Java, C++ tan .NET' e geçen bir çok kişinin kullandığı dil. Dolayısıyla iki dilde bol bol kaynak ve tam destek var.

Son olarak yeni başlayan birinin kendine yakın dili seçmesi en mantıklı hareket olacaktır. Örnek olarak eğer C, C++, Java, PHP geliştiriciyseniz C# muhtemelen size daha yakın gelecektir. Eğer ki Visual Basic, Basic, ASP üzerinde daha önce çalıştıysanız VB.NET daha kolay gelecektir.

Eğer ki sıfırdan konuya giren biriyseniz VB.NET in okunabilirliği C# a göre daha iyi. Öte yandan C# sizi bir çok diğer dile daha fazla yaklaştırabilir ki bu da daha sonrası için ciddi bir avantaj olacaktır.

Yorumlar

RSS Bu makalenin yorumlarını RSS ile takip et!

aynı geyiklere sizin de girdiğinizi görüyorum.

bu konuda, geyiklere girmeden söylenecek şey şunlardır:

bir yazılım evindeyseniz, o yazılım evinin kullanageldiği dili kullanacaksınızdır, başka yolu yok. vb.net ile yazarsınız ve eve gelince ağlaya ağlaya c# kodlarsınız, keşke dersiniz, sümüğünüzü çekersiniz...

yeni başlayacaksanız, bu işi bakkaldan kola seçmeyle karıştırmamalısınız. tamamen kendinizi, dilin size verebileceklerini düşünmelisiniz.

.net dilleri, her ne kadar ortak bir dile dönüştürülüyor vs. ve dil bağımsızlığı oley diye pazarlanıyorsa da, tüm diller aynı yapıları desteklemiyor. yani hepsi sonuçta kola diyemezsiniz. c#'ta "using" bloğu varken mesela, vb.net'te yoktur, simule edersiniz, canınız sıkılır. felan filan.

er kişi, önündeki dilleri iyi tanımalıdır. "üzerime yakışmış mı" diye reyon görevlisine poz vermekten daha istifadeli bir davranıştır bu. ihtiyaçlarını da iyi bilmelidir. dersiniz ki yeni yetme adam, daha kod yazmamış, ihtiyaçlarını nereden bilecek? bilecek işte. makale okuyacak, kitap devirecek. biraz daha az kola içecek ama bunları yapacak.

seçeceği dilin endüstrideki durumunu gözetecek. herkes c# ile yazıyorsa ve er kişi de kodlamayı geçimi için yapıyorsa ebleh ebleh vb.net öğrenmeyecek. zevk için yapıyorsa ne öğrenirse öğrensin, burada onu konuşmayalım müsadenizle.

hâsılı, mesele, ihtiyaçlarda ve dış çevrenin parametrelerinde düğümleniyor.

"ben yeni başlayanlara şunu öneriyorum" geyiği ile bitirelim:
en az iki dil öğrenin. birisi sevdiğiniz, diğeri ekmek yediğiniz dil olsun. eğer ikisi de aynı dil olacaksa, ne mutlu size. şimdi bir şişe kolayı hakettiniz.

ahmet yerli [ # | 10.09.2006 ]

dersiniz ki yeni yetme adam, daha kod yazmamış, ihtiyaçlarını nereden bilecek?

İhtiyaçları using kullanmak ya da kullanmamak mı? Nasıl ihtiyaçlar ?

en az iki dil öğrenin. birisi sevdiğiniz, diğeri ekmek yediğiniz dil olsun. eğer ikisi de aynı dil olacaksa, ne mutlu size. şimdi bir şişe kolayı hakettiniz.

Bu önerinin yüksek değeri ise şu ilanların bir altında yatan gerçek olsa gerek,
İyi derecede ASP ve PHP bilen eleman arıyoruz

Ya da bu öneriye dayanarak PHP mi ASP? diyen birine Ne kasıyon canım öğren ikisini de olsun bitsin... diyebiliriz. Eminim çok yardımcı olacaktır.

Ferruh Mavituna [ # | 10.09.2006 ]

c#'ta "using" bloğu varken mesela, vb.net'te de vardır :)

microsoftun c# üstüne eğildiği bir gerçek. C# geliştirmeye daha açık bir dil. ayrıca benim için c# ın anonim metodlara destek vermesi vb.net i kullanılmaz yapıyor bana göre :P

vb.net yeni özellik eklendikçe çirkinleşiyor. Genericslerde List(of T) yapısı c#da (c++ daki template ve javadaki generics e benzer) List<T> kullanırsınız ki of T den daha güzel bir görünüm verir... Ayrıca C ve Javaya yakınlık Ferruh Beyin de dediği gibi java ve c++ gibi dillere daha çabuk alışmamıza yardımcı olur

Tuna Toksöz [ # | 10.09.2006 ]

Bence kişinin ihtiyacını belirleyen etmen, kişinin kendini rahat hissetmesidir.
Nasıl bir zamanlar VB vardı ve şimdi VB.NET varsa şimdi C# varken ve ilerde de C## (Csharper) olacaktır. Diller geçici, önemli olan programlamanın çekirdek bilgisini kavramak, programlamayı bilmek, değil mi?
VB.NET, C#.NET, C++.NET, J#.NET hepsi de .NET Framework'ü kullanan birer araç. Mühendisler "hadi yeni bir dil oluşturalım" diye bir masa etrafında toplanıyor. Söz dizimi, anahtar kelimeleri,.. belirlemeye sıra gelince de biri "select case olsun" diğeri "switch case olsun", ..., biri "önce tip tanımı sonra değişken olsun", diğeri önce değişken sonra tip tanımı olsun", ... diye tartışıyorlar, kavga ediyorlar. Bir yapboz oluşturup elimize veriyorlar, uğraş dur, oyuncak oluyoruz. Aslında onların oyuncağı da biziz, bu tartışmaları izleyince gülüp eğleniyorlardır herhalde... O dil bu dil derken konunun özünden uzaklaşıyoruz, .NET ile 7-8 tık ve programın hazır hale geldiği bir noktaya gidiyoruz. .NET Framework'ü programlayanlar programcı; ama gidişatı göremeyen ve programcı olmak için çalışmak yerine MSin piyasaya sürdüğü, her şeyi daha da paketleyen framework ve VS lerle 7-8 tıkla program "oluşturmakla", program kullanmayı öğrenmekle ve bunları yapabildiğini gösteren sertifika sahibi kişileri tercih eden yöneticilerle programcılıktan uzaklaşılıyor.
Sonuçta hepsi compiler ile makine koduna çevrilen .NET Framework'ü kullanan "makyajlı kod"dan başka bir şey değil.

C# mı VB.NET mi, ASP mi PHP mi sorusunun yanıtını şöyle özetlesek nasıl olur?
switch(dil)
{
case "C#.NET": Console.WriteLine("Ben C# biliyorum. Sadece C# kodu yazabilirim");
case VB.NET: Console.WriteLine("Ben VB.NET biliyorum. Sadece VB.NET kodu yazabilirim");
case ASP: Console.WriteLine("Ben ASP biliyorum. Sadece ASP kodu yazabilirim");
case PHP: Console.WriteLine("Ben PHP biliyorum. Sadece PHP kodu yazabilirim");
default: Console.WriteLine("Ben programlamayı biliyorum. Tek ihtiyacım esnek bir bakış açısına sahip, diplomalı veya x'i veya y dilini bilme açısından sertitifikalı olmayı önemsemeyen yönetici ve görev veren pm");
}

alya [ # | 11.09.2006 ]

Aslında Tuna Toksöz beyinde değindiği gibi iki dil desteği arasında Using çok güzel bir örnektir. Lakin Framework 2 de VB.NET e de 'using' eklendi ve aynı C# taki gibi gibi kullanılabiliyor. Eğer bir programcı olarak C# using kullanmak için seçtiyseniz VB.NET e geri dönebilirsiniz :) Bu işin dalgası tabii ama sonuçta iki dilde aynı şekilde gelişmekte.

Ferruh Mavituna [ # | 11.09.2006 ]

düzeltme yapıyorum
iki dil arasındaki benim için önemli farklardan biri anonim metodlar... vb.net özellik ekledikçe çirkinleşse de ihtiyaçları karşılama konusunda c#dan sadece az bir farkla geride :)

Tuna Toksöz [ # | 11.09.2006 ]

Öyle yada böyle .net projeleri geliştirirken, kullanılan dilin çok fazla önemi olmadığını düşünüyorum. Nihayetinde bir dilin yapamayıpta diğer bir dilin yapabildiği çok fazla farklılık yok. Ha keza Delphi 2006 halen .net 1.1 destekli, onu ayırıyorum. .net 2.0 desteğiyle gelen dillerin farklılığı syntaxtan öte gidemiyor.

VB.NET mi C# mı?

Farketmez hocam. Gerçekten farketmez. Ben bir nesne olsun kalıtım olsun çok biçimlilik olsun kapsülleme olsun kısacası oop' u bilemedikden, uml, tasarım desenleri, enterprise library (application blocklar), n-tier, remoting bilemedikten sonra vb.net kullanmışım c# kullanmışım çok önemi yok.

Volkan KARAKAYA [ # | 13.09.2006 ]

aslında ortak kanaat belli ikisinin arasında ufak tefek farklar görünse bile neye hizmet ettikleri önemli ve kullanılacak dile ne kadar hakim olunduğu daha önemli..

vedat taylan [ # | 23.09.2006 ]

yaa beyler iy i guzel konusuyosunuz ama bi sorunum war ben pamukkale uni 1. sınıf bilg mühendisliginde okuyorum we bize direk c sharpe ogretmee basladilar :( ama ben .net platformunuda ogrenmek istiyorum insallah dogru kullanmisimdir terimleri ama bunari nerden en iyi sekilde ogrene bilirim we bolumde cok da iyi olmayan arklar we cok yawas ilerlioruz :( buda bei uzuyo biras aceleciyim tamam ama bana biras kaynak onerisinde bulunsanız bende yararlansam bi 10 sene sora bende genclere rehberlik yapabilsem helpmeee :P

doruk dalcam [ # | 01.10.2006 ]

Herkese Selam.
Bizim okulda hocamız birinci sınıfta, ilk derse girdiğinde şöyle bişi demişti. "Arkadaşlar bugün ders yapmak istemiyorum. Bugün sadece tanışmak istiyorum. (tanışma faslı bitti......) Arkadaşlar; öncelikle kod editörümüzü açmadan önce şu sizlere tavsiyemdir; bir kaç dili yarım yamalak öğrenmektense, bir dili iyi öğrenin ve uzmanlaşın" demişti ama ben C++ ve VB her ikisinide öğrenme peşindeydim.
Sonuç: Bugün ya C++ yada VB'ye ikisinden birine yönelmediğim için çok pişmanım? Tek dilde uzmanlaşmak en akıllıcasıymış. Yukarıda bir arkadaşımız derki, bir yazılım evi C#'da yazılım geliştiriyorsa ve siz'de VB.Net biliyorsanız sümük çekersiniz. O yazılım evi Bir İşletim Sistemi yazamıyacağına göre C şart değildir. O yazılım evi eline VB.Net uzmanı geçirdiğinde emin olun kaçırmayacaktır. (yanlış anlamayın ben C# yazıyorum) hiç bir programcı sümük çekmez, üretirler. C#'la VB.NET arasında büyük farklılıklar yoktur.

Ümit KALYONCU [ # | 27.10.2006 ]

ben visual basicde hesap makinesi yapmaya çalışıyorum ama windows xp deki gibi olcak yapamadım ya yardım edermisiniz bu programı staj gördüğüm yerde verdiler yardımlarını bekliyorum teşekkürler şimdiden)))))))))))))))))

duygu [ # | 08.12.2006 ]

11. duygu [ # | 23 gün, 3 sa, ]
ben visual basicde hesap makinesi yapmaya çalışıyorum ama windows xp deki gibi olcak yapamadım ya yardım edermisiniz bu programı staj gördüğüm yerde verdiler yardımlarını bekliyorum teşekkürler şimdiden)))))))))))))))))

Alakaya maydonoz örneği. Bu arkadaşın sayesinde hangi dili tercih etmem erektiğini anladım.

alpi [ # | 31.12.2006 ]

Uzun yillardir ASP ile çalisiyorum. Artik ben de ufak ufak .NET teknolojilerine yaklamaya basladim. Herkes .NET gelistirirken C# kullaniyor ben de kullanayim dedim. Ve çok büyük bir hata yaptigimin farkindayim. Gerçekten de yalnizca ASP bilen (vb script) biri için C# ile kod gelistirmek çok zor. Anlamak imkansiz :)

Eger bu güne kadar microsoft teknolojilerini kullandiysaniz devam edin. Aksinde iseniz Bu tarafa geçmeyin.

Abdullah DAGLI (abdagli) [ # | 27.03.2007 ]

Bende kendime sik sik bu soruyu soruyorum C# mi yoksa VB.NET mi bide kafamda 3. bir Secenek var buda J# >> Platformdan bagimsiz calismak istiyorum.Ama Vb.NEt inde dersini aliyorum önce VB.NET sonrada C# ögrenmek istiyorum. sizce ne yapmam lazim ? C# mi VB.NET mi J# mi ? Bu ask üçgeninde kaldim :D :D

uzm@n JR [ # | 24.04.2007 ]

Yukarida "ahmet yerli" arkadasimizin söylediklerine katiliyorum.Mesela bir yazilim evi herhangi bir projeye basladi.Ve projede kullanilan dil c#.Ama siz vb.net biliyorsunuz.Yazilim evi sahibine ben vb.net biliyorum diyeceksiniz.Oda size farketmez bizim proje c# ama yarisinida vb.net ile yapariz demicektir tabiki.Bencede sektörün kullandigi dili farkedip ona yakinlasmak daha mantikli.Tabiki bu isi hobi amaçli yapmiyorsaniz.Ayrica bir arkadasimizda asp bilen biri için c# ögrenmek çok zor olur demis.Bende asp ile hasir nesir olmus ve ondan baska bir dil ile çalismamis biriyim.Ama sizinde farkedeceginiz gibi c# ile vb.net arasinda yazim bakimindan çok ufak farklar var.
Örnek :
Degisken tanimlama VB.Net ile :
Dim degisken As Object
Degisken tanimlama C# ile :
Object degisken;

Bunun gibi ufak tefek bazi farklar var.Yani bir c# blogu vb.net bloguna kolaylikla çevrilebiliyor.Bu yüzden asp bilen biride rahatça c# ögrenebilir.Tabi vb.net kadar kolay olamayacagi kesin.Kalin saglicakla!

sakirsensoy.com [ # | 30.01.2008 ]

Bende Vb.net' e geçis yapmayi düsünüyordum, ama sonra vazgeçtim. Nedeni açik kod kaynakli yazilimlarina yönelmeyi düsünüyorum. Sizce dogru bir karar mi?

rasim [ # | 01.02.2008 ]

Tanidik bazi isimleri bu tartismada görmek çok güzel. Yil kaçti hatirlamiyorum ama yillardir, "IT'nin Kiyisindan" isimli bir yazida yazdigi gibi bu 'programlamacilik' isini kabuk anlaminda uzun yillardir uzmanca yapan bir acemiyim.
O zamanlar Basic mi C mi vardi sanirim, sonralari epey biseyler daha kiyaslanarak tartisma sürdü, ASP mi PHP mi tartisildi yine bir süre, simdilerde ise görüyorum- ve bende kendime soruyorum ki- vb.net mi c# mi sorusu var.
Yillardir sektör ha bire ürettiyse demek cevap ne olursa olsun birileri biseyler üremis. Bir dili tercih etmis ve yine üretmis.
Uzun süredir görüsemedigim DarkyDark nickli bir arkadasim, 'teorik olarak herhangi bir dilde yazilim üretecek' kadar mantiga hakim oldugunu belirtmisti. Elbette olayin özü budur. Ama olaya son derece nesnel bir açidan bakarak, ihtiyaç-çözüm dogrultusunda bakmak ve gerisini 'rahat hissedilen ortamla yazmak' olarak açiklamak, biz sorusuna cevap arayanlari aramaya iten güdüyü yalanlamak olur bence.
Daha akilci, daha kolay, daha pratik, daha islevsel, daha keskin, daha anlasilir, daha hatasiz, daha etkili, daha sade, daha kompleks, daha hiyerarsik, ve bunun gibi bir sürü dahayi ariyoruz ögrenmek istedigimiz dilde. Peki neden?
Bu kadar güçlü ve ögrenmesi uygulamasi kolay bir dille ne yapacagiz?
Programlamanin kendimiz için mi yoksa yapmak istediklerimiz için mi bir araç oldugu tartisilmali.
Yazabildiklerimizle ve ürettigimiz programlarla ögünecek miyiz, yoksa sadece hayatimizi kazanmak için bir araç mi bunlar?
Eger gelecekte konusma diline çok yakin program arayüzleri, frame workler çikarsa ne yapacagiz. Siz konusup mantiklari aktaracaksiniz gerisini yazilim yapacak ve derleyecek. Ya sonra, tekrar basa dönüyoruz neden?
Benim ....mi yoksa ..... sorumun simdi temelinde daha net, duru bir merak yatiyor.
Uzun vadede baska dile geçmegeregi duymadan yatirimlarimi(zaman, para, enerji) bana olanaklar ve kolayliklar olarak çevirecek bir dil ariyorum, sizce bunu en çok hangisi karsilar (%1 fark bile benim için tercih sebebidir). Yazilim zorluklarini beynime ve ögrenebilme yetenegime birakin.
Ben kendi açimdan sorunun cevabini buldum: C grubunun (oldukça degistirilmis olsa da) veliahti ve sadece mantik olarak takipçisi olsa da C#'i tercih edecegim. Yillarin hatta on yillarin visual basic scriptçisi olarak söylüyorum bunu.
Pratik olarak hepimiz yeni dile tamamen adapte olmada en çok 1 yil harcariz. Ama bu git-geller bize daha çok zaman kaybettiriyor ve ciddi bir projede yer alma olasiligimizi yani gerçekten üretme olasiligimizi azaltiyor.
Benim sintaks olarak zor olsada kullanim kolayligi açisindan javascriptten hareketle bu sintaks grubuna inanilmaz bir kanim kaynadi. Oysa ciddi olarak deneyene kadar çok soguk ve uzak gelirdi (muhtemelen tüm vbscriptçiler gibi).
Hadi ama asla Lisp kadar olamazdi degil mi?
Evet vb.net'te belki ilerde ara-ara, yeniden, ama suan C#'a geçiyorum.
Tesekkürler okudugunuz için.
Iyi çalismalar
Çaglar ORHAN

caglaror [ # | 32 gün, 33 dk ]

Yorum Ekle





Kullanılabilir Taglar : [<blockquote>] [<strong>] [<em>]

.NET Platformunda yazılım geliştririken VB.NET mi C# mı? ile İlişkili Olabilecek Yazılar - Haberler

WPF - Windows Presentation Framework Nedir?
Windows Port Knocking Deamon
.NET ile Object Pool
.NET Kaynak Kodlarını Download Etme
Post Build Event

Diğer Yazılar

Neredeyim ?

Ferruh.Mavituna » Haberler » .NET Platformunda yazılım geliştririken VB.NET mi C# mı?

Ferruh Mavituna
© 2002-2007, Ferruh Mavituna

Sabit IP Adresi : 81.22.99.133, SSL Erişimi, Hakkında