it-swarm-id.com

Mengapa VB begitu populer?

Bagi saya, Visual Basic tampak canggung, jelek, rawan kesalahan, dan sulit dibaca. Saya akan membiarkan orang lain jelaskanmengapa . Walaupun VB.net jelas merupakan lompatan besar untuk bahasa dalam hal fitur, saya masih tidak mengerti mengapa ada orang yang memilih untuk kode dalam VB lebih, katakanlah, C #.

Namun, saya masih melihat (sepertinya) sebagian besar aplikasi web komersial dari "toko MS" dibangun di VB. Saya bisa berdiri dengan benar pada ini, tapi VB tampaknya masih lebih populer daripada yang pantas.

Adakah yang bisa membantu menjawab (atau semua) pertanyaan ini:

  • Apakah saya kehilangan sesuatu dengan VB? Apakah lebih mudah dipelajari, atau "lebih ramah" daripada C #? Apakah ada fitur yang tidak saya ketahui?
  • Mengapa VB/VB.net begitu sering digunakan saat ini, terutama dalam proyek web?
28
aaaidan

VB dapat digunakan untuk membuat GUI (diucapkan lengket) untuk melacak alamat IP. Ini sering digunakan dalam penyelesaian kejahatan .

47
Rick J

Saya pikir itu tergantung dari mana Anda berasal. Ketika memulai sebagai programmer, saya berpikir bahwa VB mungkin lebih mudah untuk dibaca daripada C # misalnya, karena ia lebih mengandalkan kata-kata daripada simbol, yang membuatnya lebih mudah untuk menerima orang-orang biasa.

Saya adalah seorang programmer VB selama bertahun-tahun dan ketika .NET datang saya masih bekerja di VB.NET selama beberapa tahun pertama (tidak benar-benar melihat poin dengan C #). Sekarang saya punya beberapa tahun C # di belakang saya dan saya kadang-kadang menemukan bahwa kode VB.NET membutuhkan waktu lebih lama bagi saya untuk "memecahkan kode" daripada kode C #. Mungkin karena lebih mengandalkan kata-kata daripada simbol untuk beberapa konstruksi ...

42
Fredrik Mörk

Di bawah ini saya baru saja menyalin jawaban saya ke utas lain :

Saya berkembang dalam VB dan C # secara teratur, sebagian besar penghasil uang saya melibatkan C #. Secara pribadi, saya lebih suka VB untuk sebagian besar (tetapi tidak semua ... lambdas!) berfungsi. Saya benar-benar tidak dapat menyebutkan keuntungan keras selain dari yang diuraikan oleh Jon. Sebenarnya, Herfried telah mengumpulkan beberapa di situs webnya (dalam bahasa Jerman! ) tetapi mereka agak teknis.

Hal yang benar-benar mengganggu saya tentang semua bahasa yang berhubungan dengan C adalah sintaks yang bodoh. Ini murni budaya tetapi sebagai seseorang yang melakukan sebagian besar pekerjaan profesionalnya di C++, dan cukup mahir dalam hal itu, saya masih benar-benar membenci sintaksis. Dan bukan hanya kebiasaan kecil C++ yang lucu. Tidak, seluruh paket. Mengapa kawat gigi? Mengapa titik koma (mungkin keputusan paling bodoh dalam semua sejarah pemrograman)? Mengapa sintaks pemeran C-style yang bodoh? Mengapa tidak ada kata kunci untuk deklarasi variabel (sebenarnya, ini adalah keputusan yang paling bodoh)?

Ada begitu banyak hal yang benar-benar membuat saya sedih dan marah. VB bukan suci, bahasanya memiliki kelemahan besar. Tapi tidak ada apa-apanya dibandingkan dengan apa yang saya katakan di atas.

Saya menyadari bahwa sebagian besar dari pernyataan ini membutuhkan pembenaran tetapi saya mengemukakan bahwa ini hanya karena kita sudah terbiasa dengannya. Selain itu, di sini bukan tempat yang tepat. Cukuplah untuk mengatakan bahwa sintaksis C #, sementara menjadi keunggulan utamanya atas VB, juga merupakan kerugian utama.

Saya tidak suka VB karena namespace My, saya tidak suka karena XML literal, saya tidak suka karena pengetikan yang lemah, saya tidak lebih suka karena parameter opsional, atau karena pernyataan switch yang jauh lebih baik. Tidak, saya lebih suka karena sintaksisnya.


Yang mengatakan, saya harus mengakui bahwa VB menjadi lebih dan lebih dibebani oleh sintaksnya. Hype terbaru tampaknya menjadi pertanyaan Linq yang diparetrik dengan fungsi lambda dan saya siap mengakui bahwa ini membuat banyak hal Sayangnya, sintaks VB untuk lambdas terlalu rumit untuk bersaing dengan C #. Hanya pertimbangkan bagaimana panggilan yang terlalu besar untuk Parallel.For terlihat seperti di VB - dibandingkan dengan C #, yang terlihat alami. IMHO, tim desain VB telah ke arah yang salah di sini, lebih menyukai konservatif) konsistensi terhadap keterbacaan.


Untuk menjawab tuduhan subyektif Anda:

Bagi saya, Visual Basic tampak canggung, jelek, rawan kesalahan, dan sulit dibaca.

Anda tentu berhak berpikir demikian, tetapi seperti yang dikatakan Marc di bawah ini, Anda akan merasa sulit untuk memperdebatkannya secara objektif. Saya pasti dapat mengutip sejumlah elemen sintaks C yang secara objektif lebih banyak rawan kesalahan dari apa pun yang ada di VB. Faktanya, VB sintaksis telah dikembangkan untuk mencegah posisi seperti itu secara eksplisit.

"Kikuk, jelek ... dan sulit dibaca" adalah semua kualifikasi yang dapat ditandai pada hampir semua bahasa yang Anda tidak kenal. Sederhananya: keburukan adalah konsekuensi langsung dari ketidaktahuan Anda terhadap bahasa.

Mengenal bahasa dengan baik berarti mengenali pola dalam kode. Kode yang ditulis dengan baik akan berdasarkan praktek terlihat elegan, sedangkan kode yang buruk (lambat, cenderung rawan) akan tampak jelek. Sesederhana itu.


Satu komentar terakhir: Artikel-artikel yang dikutip oleh Anda mengandung beberapa ketidakakuratan dan informasi yang ketinggalan zaman. Sebagai satu-satunya pembenaran untuk diskusi yang sangat subyektif dan emosional mereka tidak cocok.

27
Konrad Rudolph

Bagi saya, Visual Basic tampak canggung, jelek, rawan kesalahan, dan sulit dibaca.

Bagi saya, bahasa Inggris nampak kikuk, jelek, rawan kesalahan, dan sulit dibaca, terutama ditulis oleh orang-orang yang memiliki tata bahasa yang buruk, pengejaan yang buruk, pengabaian yang sembrono untuk huruf besar dan tanda baca, dan tidak ada cara bagaimana mengatur pikiran mereka secara spasial dan mental.

Bukan hanya Visual Basic yang sulit dibaca atau ceroboh karena sintaks bahasa, tetapi biasanya demikian karena programmer tidak benar-benar pandai mengekspresikan pikiran sendiri:

If blah = 10 Then If stuff = "foo" Then t = 1 + k: s = 42: dostuff21

Benar, itu mengerikan. Tetapi tidak terlalu sulit untuk menulis kode mengerikan dalam bahasa lain. Ketika ditulis dengan benar, akan sangat masuk akal meskipun kode ditulis dalam VB:

If SelectedType = 10 And UserName = "Foo" Then
    CurrentUsers = CurrentUsers + 1
    UserConnectionID = 42
    PerformUserOperation
End If

Setidaknya itu lebih mudah dibaca dan dimengerti. Itu masih DASAR. Itu benar-benar turun ke kemampuan programmer untuk secara jelas mengekspresikan niatnya dengan memformat kode dengan cara yang mudah dibaca, menggunakan pengidentifikasi yang baik, dan memperhatikan penulisan kode yang dapat dimengerti.

Yang mengatakan, saya belum pernah menyentuh Visual Basic sejak hari-hari VB3, (maka contoh dengan sintaks "lama") tetapi hanya karena bahasa dapat disalahgunakan tidak berarti bahwa itu tidak dapat digunakan dengan benar untuk menulis kode yang cukup kuat . Tentu, mungkin ada beberapa kekurangan, tetapi pendekatan yang dirancang untuk mengatasi masalah-masalah itu juga menunjukkan keterampilan satu programmer dari yang lain.

(Penyemprotan tanpa pandang bulu On Error Resume Next terlintas dalam pikiran sebagai cara yang tidak terlalu baik untuk mengatasi kekurangan kurangnya pengecualian di VB kembali di masa pra .NET.)

15
coobird

Sebagian besar argumen Anda terhadap VB hanya berlaku untuk VB-Classic (tautan kedua) atau berdasarkan argumen yang samar atau usang)

  • Bahkan di VBC, Anda tidak akan menggunakan GoSub ... Kembali dll.
  • Apa yang salah dengan static? C++ mendukung ini juga.
  • VB10 memperkenalkan kelanjutan garis implisit (Anda bahkan tidak perlu semicola redundan seperti C #)
  • Berbagai fungsi pemeran ada di C++ dan C # juga. C # 's (object)(expr)- Cast-Syntax dan object as type bahkan lebih membingungkan dan tidak konsisten.
  • Apa yang buruk tentang with? Anda dapat membuat struktur pohon bersarang dengan cara yang sangat intuitif yang tidak mungkin dilakukan di C #.
  • Penanganan Acara di VB jauh lebih elegan daripada di C #. Anda dapat memperkenalkan dan menangani acara dengan satu kata kunci (WithEvents) tanpa harus menginisialisasi delegasi, eventhandler-procs dll. Ini membuat pemrograman GUI dalam VB jauh lebih nyaman dan Anda tidak perlu membuat kode acara oleh perancang .
  • Parameter opsional diperkenalkan ke C # baru - Karenanya mereka tampaknya baik.
  • VB.NET memiliki keduanya operator boolean yang ketat dan pintas.
  • Anda lakukan memeriksa kesalahan sintaks pada waktu kompilasi kecuali Anda menjalankan VB seperti bahasa skrip.
  • End If lebih bermanfaat daripada hanya }. Ketika memiliki struktur sintaksis yang kompleks semua kurung kurawal hanya membingungkan sedangkan beton End ... membantu Anda dalam menentukan blok mana yang belum ditutup.
  • XML Literals - Script XML sekarang menjadi bagian dari kode, sepenuhnya didukung oleh intellisense.

Semua dalam semua, hanya ada beberapa perbedaan obyektif antara VB.NET dan C # terlepas dari sintaksis. EG: Perancangan GUI jauh lebih efisien dalam VB karena sistem acara yang lebih baik dan lebih baik IDE sedangkan algoritma misalnya dapat diekspresikan lebih baik dalam C # karena sintaksis lebih sadar.

Sisanya hanya pertanyaan tentang gaya pribadi Anda. Pemrogram C-Style merasa nyaman dengan C #, VB (atau mungkin Pascal?) - Pemrogram gaya menggunakan VB.

Tetapi VB-Syntax yang berbasis kata dan lebih eksplisit mungkin lebih mudah dibaca untuk pemula daripada semua simbol dalam C. Bandingkan:

If (a < 15) Xor (b = 2) And Not Condition Then

untuk

if ((a < 15) ^ (b == 2) && !Condition())

Ini tidak berarti satu bahasa lebih baik dari yang lain.

Edit: -----------------------------------------

Ke argumen VB akan rentan kesalahan. Ketika Anda menggunakan Option Strict On seketat C # tetapi tidak memungkinkan kami melakukan kesalahan seperti itu:

// VB would initialize with zero (C/C++ doesn't)
int countZeros;
// No confusion with loop bounds with For x = 1 To Length
for (int i = 1; i <= length; i++) {
    // Never confusing == with = 
    if (data[i] = 0) 
        countZeros++;
}
13
Dario

Secara historis lingkungan pengembangan VB adalah cara yang cepat dan efektif untuk membangun jenis aplikasi tertentu (misalnya aplikasi GUI). Itu membuatnya menjadi pilihan yang sangat populer. Saya pikir VB adalah bahasa yang paling banyak digunakan selama masa kejayaannya (mis. VB6).

Dengan basis terpasang semacam itu, tidak mengherankan masih banyak pekerjaan yang terjadi di dalamnya.

12
dommer

Semuanya dimulai sebelum C # ada

Kembali ~ 1999, kami memiliki Visual Studio 5/6. Jika Anda adalah Vendor Perangkat Lunak Independen atau perusahaan yang menggunakan Windows dan memerlukan aplikasi tertulis yang dapat, mis. melacak waktu yang dihabiskan karyawan untuk proyek, Anda memiliki beberapa pilihan:

  1. Formulir dalam Visual Basic.
  2. MFC, ATL atau Win32 dalam Visual C++.
  3. Formulir di Access 97/2000.
  4. Situs web ASP.
  5. Applet jawa.

Pada saat itu, kami berada tepat sebelum gelembung Dot-Com pecah, jadi siapa pun yang mahir dengan (4) atau (5) pergi untuk menegosiasikan opsi saham pada dot-com apa pun yang menarik bagi mereka.

(3) memiliki masalah dengan penguncian dan skalabilitas keseluruhan, tetapi saya melihat banyak solusi yang digerakkan oleh akses yang akan Shell-out untuk menjalankan fungsi dukungan yang diperlukan.

Sehingga meninggalkan kita dengan VB dan VC++:

Editor Formulir di VB, pada saat itu, sangat baik untuk produktivitas. Anda dapat menyeret-lepas komponen Anda - bukan hanya tombol, label, dan kotak teks tetapi kotak peralatan 'kontrol OLE' yang dapat digunakan kembali sepenuhnya. komponen seperti Grid pintar, lembar Excel atau instance IE. Penyambungan dilakukan di belakang layar - semuanya seperti objek dan Anda hanya mengklik dua kali hal-hal untuk menambahkan event handler. Ini sangat jauh lebih sulit dalam Visual C++. Sebagai anggota tim pendukung pengembang Visual Studio pada saat itu, saya dapat mengingat bagaimana panggilan dukungan Visual Basic sebagian besar tentang komponen mana yang terbaik untuk digunakan atau bagaimana mengoptimalkan aplikasi mereka dengan cara tertentu. tidak pernah 'bagaimana cara membuat aplikasi dengan fitur antarmuka pengguna X, Y dan Z'.

Membangun UI yang kaya dalam Visual C++ adalah tantangan yang berbeda. Meskipun ada dukungan editor Visual untuk dialog dan formulir SDI/MDI, itu cukup terbatas. Dukungan untuk menyematkan OLE Kontrol (ActiveX) ke MFC atau Win32 adalah seni hitam, meskipun sedikit lebih mudah dalam ATL. Menyambungkan hal-hal sederhana seperti mengubah ukuran acara atau menggambar pemilik cukup menyakitkan, biarkan sendiri Poin Koneksi yang diperlukan untuk acara khusus dalam komponen.

Ya, VC++ memiliki kecepatan eksekusi, kemampuan debug, dan opsi kerangka kerja/pustaka/UI yang fleksibel, tetapi dukungan IDE tidak dapat mencakup semua landasan tersebut sehingga menangani operasi yang paling umum dengan hal-hal seperti Wizards , hierarki kelas MFC yang komprehensif dan jalur dukungan 90 hari/2-insiden gratis.

IIRC, pembuat paket aplikasi yang dikirim dengan VB dapat mengemas aplikasi Anda, runtime VB dan DLL kontrol umum terbaru dan menyediakan Anda pemasang EXE mandiri yang Anda miliki bisa memakai CD dan mendapatkan pelanggan. Tidak ada ini 'yang msvcrtXX.dll dan mfcxx.dll yang Anda instal?', yang mengganggu para pengembang MFC.

Jadi, untuk alasan waktu ke pasar dan antarmuka pengguna yang kaya, VB mendapat pengikut yang sangat besar.

Ketika Visual J ++ dan Visual Interdev mencapai VS6, jelas bahwa Visual Basic IDE telah memenangkan beberapa pertempuran atas Visual C++ satu, yang merupakan IMHO adil. Tidak mengherankan sama sekali bahwa Visual Studio .NET memiliki editor formulir seperti VB untuk bahasa C # baru [~ # ~] keren [~ # ~] .

Bahasa Java/C/C++ baru yang digabungkan dengan perancang UI dinikmati oleh VB orang selama ini memberikan jalur migrasi baru untuk orang-orang C++ yang sekarang selesai dengan MFC/ATL/Win32. Untuk VB 3/4/5/6 orang yang tidak menyukai kurangnya kompatibilitas mundur 100% di VB.net, ini menawarkan kesempatan untuk mempelajari bahasa baru dalam lingkungan yang akrab.


Alasan bahwa VB adalah produk yang komprehensif mungkin ada hubungannya dengan asal-usul Microsoft, dengan Basic menjadi produk pengembang andalan mereka, tapi saya tidak tahu. t memiliki kutipan saat ini.

7
JBRWilkinson

Namun, bahasa apa pun yang jelek mungkin menjadi alasan untuk tetap menggunakannya biasanya sangat mahal: sangat mahal untuk menggunakan basis kode yang sangat besar dan fakta bahwa pengembang sudah tahu bahasa tersebut, membuatnya lebih murah untuk digunakan daripada bahasa lain.

6
Brian Rasmussen

VB.NET lebih mudah dipelajari, Anda benar, dan secara keseluruhan lebih mudah daripada C #, menurut saya. Ini adalah poin pertama mengapa VB sangat populer. Satu lagi, dan poin terbesar, saya pikir, adalah bahwa ada banyak pengembang yang bekerja dengan VB 6 dan versi lama dari bahasa ini dan lebih mudah bagi mereka untuk mengembangkan aplikasi dengan VB.net daripada untuk belajar bahasa baru.

6
iburlakov

Seperti yang dikatakan orang lain, penilaian estetika Anda atas sintaksis bahasa sangat bergantung pada apa yang Anda ketahui sebelumnya. Selama lebih dari satu dekade, sepertinya ini telah menjadi kontes mirip-C, dengan kurung kurawal untuk "blok", "->" untuk tipuan (Perl, php), tanda kurung untuk argumen panggilan fungsi, // untuk komentar, dan titik koma di setiap ujung baris. Beberapa orang bahkan berpikir bahwa berkat 'penée unik' ini, jika Anda tahu bahasa, Anda tahu semuanya, yang memang konyol. Tapi ini menanamkan ide di antara orang-orang C++/Jawa bahwa satu-satunya estetika sintaksis yang tepat dan yang lainnya sedang mencoba untuk mengkloning COBOL.

Beberapa tahun yang lalu saya beralih ke Ruby, dan sekarang python, dan saya tidak tahan lagi dengan tanda titik koma yang jelek, kurung kurawal, dan karakter sampah yang tidak berarti lainnya. Kode sumber dimaksudkan untuk dibaca oleh manusia. Ketika saya mencoba visual studio, saya memilih VB lebih dari C #. Saya menduga beberapa programmer memilih C # hanya untuk "terlihat serius" dengan sintaks mirip Java-nya, tapi ayolah, yang paling fitur yang sama ada ... memberi mata Anda istirahat.

6
vincent

Nah, jika Anda berbicara tentang .NET, ada satu yang sangat mudah yang dapat saya pikirkan:

Editor VB.NET di Visual Studio jauh lebih baik dalam menangkap kesalahan sintaksis daripada C #.

Sementara editor C # mendapat peningkatan besar dalam VS2008 SP1, masih ada beberapa kesalahan sintaksis yang tidak disadari editor sampai Anda mencoba untuk mengkompilasi program.

4
Powerlord

Banyak VB popularitas berasal pada saat perkakas VB jauh lebih ramah daripada bahasa lain yang tersedia. "Klasik" VB menawarkan cara mudah untuk membangun Windows aplikasi tanpa harus mempelajari nyali Win32 API atau repot-repot dengan manajemen memori manual.Rintangi untuk entri untuk programmer pemula jauh lebih rendah dengan VB daripada C++, jadi banyak orang memotong gigi mereka dengan VB.

Saat ini, saya pikir VB satu keunggulan dibandingkan C # adalah keakraban bagi mereka yang telah bekerja dengan VB selama bertahun-tahun. Keuntungan lainnya adalah VB kode mudah dibaca karena kecenderungan untuk menggunakan kata kunci alih-alih simbol tanda baca. Sebagai seseorang yang bekerja di VB, Java, C, C #, dan Python, saya menemukan bahwa VB = adalah bahasa termudah untuk melompat kembali ke saat meninjau kode yang saya tulis bertahun-tahun lalu. Sintaksnya lebih verbose, yang sering membuatnya lebih mudah untuk membaca kode, dan Visual Studio selalu melakukan pekerjaan yang baik dalam memformat VB kode untuk membersihkan pemformatan saat Anda mengetik sehingga kode diformat secara konsisten (terlepas dari kecerobohan penulis).

Sebagai catatan, saya menemukan Python menjadi sangat mudah dibaca & ditinjau untuk alasan yang sama. Dalam Python, pemformatan kode ditegakkan oleh penerjemah alih-alih IDE, tetapi hasil akhirnya adalah sama. Python juga mendukung kata kunci untuk tanda baca, meskipun bisa dibilang kurang dari VB.

4
gbc

Untuk beberapa nama:

  • kemudahan penggunaan
  • nama yang dikenal (dasar adalah salah satu bahasa pemrograman komputer populer pertama)
  • jangan meremehkan pemasaran Microsoft
3
Toon Krijthe

Akan sulit untuk berpendapat bahwa itu lebih atau kurang "rawan kesalahan" daripada bahasa lain. Saya juga meragukan poin re "sebagian besar web MS komersial"; dari apa yang saya lihat, C # sejauh ini memimpin untuk pengembangan .NET (dengan .NET menjadi alat utama dalam tumpukan MS untuk hal-hal yang bukan driver perangkat dll).

3
Marc Gravell

VB sangat verbose dan mudah digunakan jika dibandingkan dengan C # yang sensitif huruf. Untuk seorang programmer pemula itu adalah titik awal terbaik.

3
chugh97

Satu keuntungan yang dimiliki VB.NET dibandingkan C # (yang akan hilang dengan C # 4), adalah parameter default dan bernama, hal yang sangat baik untuk dimiliki saat menggunakan VSTO.

3
Blake Pettersson

VB/VB.NET termasuk kategori RAD (Pengembangan Aplikasi Cepat). Anda dapat mengembangkan aplikasi hanya dengan kontrol drag-drop dari kotak peralatan dan lebih sedikit kode.

3
NinethSense

Yah, saya pikir Anda harus membedakan antara klasik VB dan VB.NET.

Saya merasa bahwa VB.NET tidak sangat populer, tetapi Visual Basic "Classic" masih is1 Alasannya adalah SANGAT mudah untuk membuat aplikasi Windows. Bandingkan ini dengan aplikasi Windows di C++/Mfc, yang merupakan satu-satunya alternatif saat ini.

Untuk alasan yang sama, Delphi sangat populer sekali waktu.

3
PhpFlashGuy

Saya pikir bagian dari alasannya adalah karena programmer lama asp masuk ke. NET seperti yang saya lakukan sangat akrab dengan VB sudah karena VB skrip adalah bahasa = ASP klasik digunakan untuk sebagian besar. Saya merasa kurang memakan waktu menulis dalam VB dalam .NET karena saya sudah tahu cara berbicara VB. VB juga kurang cengeng daripada C #. Saya bisa membaca/menulis di keduanya tetapi saya lebih suka VB karena mudah berteman dengan jika Anda seorang programmer baru.

3
Eric

Saya bekerja di lingkungan tempat kami menggunakan keduanya. Kami telah beralih ke C # mendukung klasik ASP dan VB. Menurut pendapat saya tidak ada deal breaker antara bahasa. Untuk sebagian besar proyek Anda dapat melakukan pekerjaan yang sama dengan kedua bahasa. Sekarang saya lakukan bagikan pandangan Anda tentang rawan kesalahan dan saya juga menemukan VB akan berantakan (tanpa alasan).

Seperti yang disebutkan orang lain, VB sangat sederhana dan secara historis Anda dapat membangun proyek dengan sangat cepat. Ini hidup dalam pengembangan web (yang dikembangkan dengan cepat), tetapi saya pikir ketika orang menyadari bahwa C # hanyalah secepat dikembangkan, VB akan memudar. Alasan lain saya pikir itu akan memudar adalah bahwa semua yang Anda kode dalam (CSS, JavaScript) ketika membuat aplikasi web lebih mirip C # daripada VB, jadi masuk akal untuk menggunakan C #, bahkan untuk pemula.

2
miccet

Saya pribadi suka cara acara dilampirkan di vb.net dengan kata kunci 'handle' ... The IDE/Visual Studio/juga lebih responsif ketika berhadapan dengan VB dan menangani secara otomatis sebagian besar end-ifs dan sejenisnya ... C # tentu saja jauh lebih ringkas dan bersih (IMHO, saya telah bekerja dengan keduanya sedikit)

2
Petar Kabashki

Pada kerangka 4.0, hanya ada segelintir hal VB kurang dibandingkan dengan C #, dan sebaliknya juga benar. Yaitu:

  1. Yang paling penting adalah bahwa VB.NET tidak memiliki kata kunci Yield, tetapi akan segera hadir untuk VB.NET dengan kerangka kerja async baru.
  2. Tidak ada kata kunci unsafe. Saya tidak pernah merasa perlu, tetapi pasti ada beberapa orang yang memilikinya.
  3. Tidak ada string multi-line. String multi-garis dicapai dengan menggunakan operator + (atau legacy &) lintas jalur. Atau, mereka dapat diselesaikan dengan menggunakan sintaks literal XML: Dim s = <s>My string... multiple lines...</s>.Value. Ini tidak cantik, tetapi jika Anda tidak pilih-pilih dan benar-benar ingin string multi-line berfungsi. Dan, Anda dapat melakukan interpolasi string dengannya menggunakan sintaks <%= myVar %> Yang bagus.
  4. Tidak ada variabel yang disetel setara dengan dynamic. Variabel dinamis telah ada di VB untuk waktu yang lama dengan Option Compare Off, Tetapi itu adalah cakupan file, jadi itu tidak sebagus dynamickarena dynamic membatasi ruang lingkup hanya variabel yang dideklarasikan seperti itu.
  5. VB tidak memiliki sintaks lambda singkat. Lambdas ada di sana, tetapi Anda harus menggunakan Function(x) atau Sub(x).

Beberapa fitur VB.NET memiliki C # yang tidak:

  1. Literal XML, yang berguna untuk semua hal, bukan hanya XML.
  2. Ketidaksensitifan huruf dalam suatu bahasa adalah meow kucing. Tidak banyak bahasa lain yang mengizinkannya, tetapi apa bedanya dalam kecepatan pengkodean untuk tidak perlu menekan tombol shift ketika Anda mengetik dan kode Anda hanya memformat otomatis seperti yang Anda inginkan.
  3. Klausa Select yang seringkali tidak perlu dapat dihilangkan dari permintaan Linq.
  4. Nothing kata kunci jauh lebih berguna daripada null di mana semuanya (bahkan tipe nilai) dapat diatur ke Nothing dan Anda mendapatkan default. Tidak perlu kata kunci default.
  5. VB.NET terus-menerus dikompilasi dalam Visual Studio sehingga Anda segera melihat kesalahan. Tidak memukul CTRL-SHIFT-B sepanjang hari seperti di C #.

Toko saya mengerjakan MVC3 dengan Razor menggunakan VB.NET dan setelah Anda mengatasi prasangka (kebanyakan tidak berdasar), sebenarnya bahasa yang sangat bagus untuk digunakan. Itu tidak benar-benar lebih bertele-tele daripada C # seperti banyak klaim (kecuali dalam kasus lambdas), dan itu cukup banyak fitur-untuk-fitur yang paralel dengan C #. Saya telah menemukan bahwa kebanyakan orang yang membenci belum benar-benar dikodekan dalam VB.NET modern untuk waktu yang lama.

2
mattmc3