Mengapa VB begitu populer? [Tutup]

28

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

Namun, saya masih melihat (sepertinya) sebagian besar aplikasi web komersial dari "toko MS" dibangun di VB. Saya bisa berdiri di atas ini, tetapi 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?
aaaidan
sumber
4
Bagaimana Anda tahu apa situs web komersial Microsoft dibangun dengan?
samjudson
30
"Mengapa VB / VB.net begitu sering digunakan hari ini," Ini agak seperti bertanya, "Mengapa bagal / truk begitu sering digunakan hari ini dalam transportasi?"
Daniel Daranas
2
Hanya untuk anak cucu, saya berdiri (malu-malu) dikoreksi. VB memiliki komunitas pengguna yang sangat loyal, yang mengatakan banyak hal buruk.
5
pertanyaan ini harus dihapus.
25
Jangan hapus pertanyaan ini. Ini buruk dan berprasangka dan subyektif tetapi cukup sering terjadi dan dapat berfungsi sebagai referensi.
Konrad Rudolph

Jawaban:

47

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

Rick J
sumber
4
Wow. Hanya. Wow. Itu hanya membuat hari saya benar-benar luar biasa.
1
omg wow ... omg wow.
2
Saya tidak akan pernah melihat CSI dengan cara yang sama lagi.
Robert Harvey
3
Perbesar ....... ok tingkatkan.
42

Saya pikir itu tergantung dari mana Anda berasal. Ketika memulai sebagai programmer, saya pikir VB mungkin lebih mudah dibaca daripada C # misalnya, karena ia lebih mengandalkan kata-kata daripada simbol, yang membuatnya lebih oleh 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 titik dengan C #). Sekarang saya memiliki beberapa tahun C # di belakang saya dan saya kadang-kadang menemukan bahwa kode VB.NET membutuhkan waktu lebih lama bagi saya untuk "mendekode" daripada kode C #. Mungkin karena lebih mengandalkan kata-kata daripada simbol untuk beberapa konstruksi ...

Fredrik Mörk
sumber
5
Anda juga menggambarkan situasi saya dengan tepat.
6
Sama di sini - kode VB.NET penuh dengan "noise" ketika Anda melihatnya dari perspektif sintaksis C-style. Tidak ada pelanggaran untuk pengembang VB. Persis seperti yang Anda rasakan saat Anda beralih dari C # ke VB.
2
setuju, saya tidak tahan VB.NET - sintaksnya seperti cerita ... dan ya saya harus menggunakannya terus-menerus selama berbulan-bulan, itu membuat saya gila, saya suka sintaksis C #.
Dal
2
Programmer C # bukan orang biasa?
rightfold
@ rightfold Tidak. Pemrogram VB.net juga tidak normal. Pemrogram VB.net lebih hebat daripada orang biasa dan untuk C # ... tidak ada komentar. = D VB.net ATURAN !!!!!!!
Penguin Anonim
27

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

Saya mengembangkan VB dan C # secara teratur, sebagian besar menghasilkan uang saya melibatkan C #. Secara pribadi, saya lebih suka VB untuk sebagian besar (tapi tidak semua ... lambdas!) Bekerja. Saya benar-benar tidak bisa menyebutkan kelebihan sulit apa pun selain dari yang diuraikan oleh Jon. Sebenarnya, Herfried telah mengumpulkan beberapa di situsnya (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 paling bodoh)?

Ada begitu banyak hal yang benar-benar membuat saya sedih dan marah. VB bukan orang 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 telah menjadi terbiasa dengannya. Selain itu, ini 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 Mynamespace, saya tidak suka itu karena XML literal, saya tidak suka itu karena pengetikan yang lemah, saya tidak suka itu karena parameter opsional, atau karena jauh lebih baik switchpernyataan. Tidak, saya lebih suka karena sintaksisnya.


Yang mengatakan, saya harus mengakui bahwa VB menjadi semakin terbebani oleh sintaksnya. Hype terbaru tampaknya menjadi pertanyaan Linq yang dipisah-pisahkan dengan fungsi lambda dan saya dengan mudah mengakui bahwa ini membuat banyak hal lebih sederhana. Sayangnya, sintaks VB untuk lambdas terlalu rumit untuk bersaing dengan C #. Perhatikan saja bagaimana panggilan yang Parallel.Forterlihat kembung di VB - dibandingkan dengan C #, yang terlihat alami. IMHO, tim desain VB telah mengambil arah yang salah di sini, lebih memilih konsistensi konservatif daripada keterbacaan.


Untuk menjawab tuduhan subyektif Anda:

Bagi saya, Visual Basic tampak kikuk, 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 rawan kesalahan daripada apa pun yang ada di VB. Bahkan, sintaks VB 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, rawan kesalahan) 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.

Konrad Rudolph
sumber
4
Blake: ya, poin penuh untuk Ruby. Akhirnya bahasa melakukannya dengan benar. Python juga mendapat nilai tinggi dengan saya. Namun, saya sebagian tidak puas dengan semua sintaks yang ada.
Konrad Rudolph
2
Ruby sucks: P ... sekarang saya memiliki itu keluar dari ... alasan sebenarnya untuk perbedaan sintaks majoy antara kata kunci berdasarkan kawat gigi turun ke mudahnya menulis parser. Saya dulu penggemar VB (BASIC pada umumnya) yang besar, tetapi karena saya telah pindah ke C # Saya merasa jauh lebih mudah dan lebih cepat untuk bekerja masuk
Matthew Whited
4
Mengapa kawat gigi? Karena secara visual membatasi satu blok kode, jika digunakan dengan benar. Ya, saya menyadari lekukan di VB melakukan ini juga, tetapi kawat gigi melakukan ini dengan kejelasan IMO yang lebih besar. Titik koma membuat segalanya lebih mudah untuk kompiler (tanyakan saja kepada tim kompiler VB tentang ini) Saya menemukan casting di C # sangat intuitif dan kompak. Dan ada adalah deklarasi kata kunci variabel:var
Robert Harvey
1
@Robert Harvey: 1) VB menggunakan kata kunci untuk menunjukkan blok, bukan indentasi. Sangat jelas. 2) Tentang casting, C ++ dengan tepat memilih untuk menghentikan casting gaya-C sejak lama karena terlalu tidak menarik secara visual ( bukan hal yang baik; pemain harus menonjol, karena memperkenalkan semantik yang berubah dan potensi kelemahan dari penggunaan tipe). 3) Tidak. Maksud saya petunjuk sintaksis sebelum setiap deklarasi. var int xdatang ke pikiran. Semua pernyataan dan blok lain diperkenalkan oleh kata kunci khusus, mengapa tidak deklarasi variabel dan metode? Fie. Tidak konsisten dan jelek.
Konrad Rudolph
4
@ Konrad: Saya akui butuh waktu untuk membiasakan diri dulu. Bagian dari perbedaan filosofis mungkin bahwa saya tidak lagi menganggap bahasa pemrograman saya sebagai varian bahasa Inggris, seperti yang saya lakukan ketika saya dulu memprogram di VB. Pindah ke C # telah membuat bahasa pemrograman yang saya gunakan agak lebih simbolis (dan ringkas), tanpa terlalu buram. Simbolisme itu telah memungkinkan saya kebebasan mental untuk berpikir lebih konseptual tentang hal-hal seperti orientasi objek, pesan yang lewat dan lambda.
Robert Harvey
15

Bagi saya, Visual Basic tampak kikuk, 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 kapitalisasi dan tanda baca, dan tidak ada cara bagaimana mengatur pikiran mereka secara spasial dan mental.

Ini bukan hanya karena Visual Basic 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 yang mengerikan dalam bahasa lain. Ketika ditulis dengan benar, akan sangat masuk akal bahkan jika 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 Nextdatang ke pikiran sebagai cara yang tidak begitu baik untuk mengatasi kekurangan kurangnya pengecualian di VB pada masa pra .NET.)

coobird
sumber
13

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.
  • Ada apa dengan ini static? C ++ mendukung ini juga.
  • VB10 memperkenalkan kelanjutan garis implisit (Anda bahkan tidak perlu semicola redundan seperti C #)
  • Fungsi cor yang berbeda ada di C ++ dan C # juga. C #'s (object)(expr)-Cast-Syntax dan object as typebahkan 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 Event di VB jauh lebih elegan daripada di C #. Anda dapat memperkenalkan dan menangani acara dengan satu kata kunci ( WithEvents) tanpa harus menginisialisasi delegasi, projek eventhandler dll. Ini membuat pemrograman GUI di 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 baik operator ketat dan shortcut-boolean.
  • Anda tidak memeriksa kesalahan sintaks pada waktu kompilasi kecuali jika Anda menjalankan VB seperti script-bahasa.
  • End Iflebih bermanfaat daripada adil }. 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 IDE yang lebih baik sedangkan algoritma misalnya dapat diekspresikan lebih baik dalam C # karena sintaksisnya lebih sadar.

Sisanya hanyalah 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: -----------------------------------------

Untuk argumen VB akan rawan kesalahan. Saat Anda menggunakannya Option Strict Onseketat C # tetapi tidak mengizinkan 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++;
}
Dario
sumber
1
C # akan memberikan kesalahan kompilasi untuk tidak menginisialisasi countZeros (dalam lingkup lokal) dan untuk menetapkan nilai ke data [i] dalam pernyataan if. Aku tahu kau direferensikan c / c ++ dalam komentar Anda, tapi saya percaya OP itu membandingkan VB ke C # :)
1
Menurut pendapat saya, VB10 mengalahkan C # 10 waktu besar!
Shimmy
Saya suka semua bahasa: LISP, C, VB, PHP, apa saja.
systemovich
+1 dan saya akan menambahkan bahwa pernyataan Switch VB tidak berguna seperti C #.
Joel Brown
12

Secara historis lingkungan pengembangan VB adalah cara 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.

Dommer
sumber
2
+1 afaics VB6 dan khususnya VS IDE memberikan (sangat) penghalang rendah untuk masuk yang menciptakan generasi coders baru, dengan semua masalah dan kemungkinan di dalamnya
7

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 membutuhkan aplikasi tertulis yang dapat, misalnya melacak waktu karyawan yang dihabiskan untuk proyek, Anda memiliki beberapa opsi:

  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 keluar 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 - tidak hanya tombol, label, dan kotak teks tetapi kotak peralatan 'kontrol OLE' penuh dari komponen yang dapat digunakan kembali seperti Grid pintar, lembar Excel, atau instance IE. Penyambungan dilakukan di belakang layar - semuanya seperti objek dan Anda hanya mengklik dua kali untuk menambahkan event handler. Ini sangat sulit di Visual C ++. Sebagai anggota tim dukungan 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. Hampir tidak pernah 'bagaimana saya 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 menanamkan Kontrol OLE (ActiveX) ke MFC atau Win32 adalah seni hitam, meskipun sedikit lebih mudah di ATL. Menyambungkan hal-hal sederhana seperti mengubah ukuran acara atau menggambar pemilik cukup menyakitkan, apalagi 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 Penyihir, hierarki kelas MFC yang komprehensif dan 90 hari. / Saluran dukungan 2-insiden gratis.

IIRC, pembuat paket aplikasi yang dikirimkan dengan VB dapat mengemas aplikasi Anda, runtime VB dan kontrol umum terbaru DLL dan memberi Anda pemasang EXE mandiri yang dapat Anda pasang di CD dan sampai ke pelanggan. Tidak satu pun dari ini 'msvcrtXX.dll dan mfcxx.dll mana yang telah Anda instal?', Yang menjangkiti 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 bahwa Visual Studio .NET memiliki editor bentuk seperti VB untuk bahasa COOL C # yang baru.

Bahasa Java / C / C ++ yang baru ditambah dengan perancang UI yang dinikmati oleh orang-orang VB selama ini memberikan jalur migrasi baru untuk orang-orang C ++ yang sekarang dilakukan 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 belajar bahasa baru di lingkungan yang akrab.


Alasan bahwa VB adalah produk yang sangat komprehensif kemungkinan ada hubungannya dengan asal-usul Microsoft, dengan Basic menjadi produk pengembang andalan mereka, tetapi saya tidak memiliki kutipan saat ini.

JBRWilkinson
sumber
6

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

Brian Rasmussen
sumber
6

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 belajar bahasa baru.

iburlakov
sumber
6

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 studio visual, saya memilih VB daripada C #. Saya curiga beberapa programmer memilih C # hanya untuk "terlihat serius" dengan sintaksisnya yang seperti java, tetapi ayolah, fitur yang sama ada di sana ... biarkan mata Anda beristirahat.

vincent
sumber
4

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 editor tidak ambil sampai Anda mencoba untuk mengkompilasi program.

Powerlord
sumber
Kompilasi latar belakang itulah yang membuat pengeditan proyek VB besar di VS2005 sangat lambat. Bagaimanapun, itulah gunanya ReSharper;)
Lucas
Ini bukan hanya kompilasi latar belakang, format-otomatis dan alat pembersihan kode memperbaiki banyak hal sebelum Anda bahkan pindah blok untuk memicu kompilasi. Ini adalah penghemat waktu yang sangat besar dalam vb dibandingkan dengan c #
Bill
4

Banyak popularitas VB berasal dari masa ketika perkakas VB jauh lebih ramah daripada bahasa lain yang tersedia. VB "klasik" menawarkan cara mudah untuk membangun aplikasi Windows tanpa harus mempelajari nyali API Win32 atau repot dengan manajemen memori manual. Hambatan masuk 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 lain adalah bahwa kode VB 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 yang paling mudah untuk melompat kembali ke saat meninjau kode yang saya tulis bertahun-tahun yang lalu. Sintaks lebih verbose, yang sering membuatnya lebih mudah untuk membaca kode, dan Visual Studio selalu melakukan pekerjaan yang baik memformat kode VB untuk membersihkan pemformatan saat Anda mengetik sehingga kode secara konsisten diformat (terlepas dari kecerobohan penulis).

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

gbc
sumber
3

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).

Marc Gravell
sumber
3

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.

Blake Pettersson
sumber
Dan, dalam hal ini, "dinamis" - memberikan C # sesuatu yang sebanding dengan VB yang mengikat / pengiriman yang ada.
Marc Gravell
1
Keuntungan yang disebut ini selalu bermasalah bagi saya - bacaan saya yaitu C # memiliki kelebihan yang merupakan cara yang lebih aman untuk mencapai hasil praktis yang sama.
2
Kelemahan dari kelebihan adalah mereka lebih sulit dan membingungkan untuk dipertahankan ketika Anda hanya ingin menetapkan beberapa nilai default. Anda bisa berakhir dengan rantai kompleks kelebihan beban yang mengkompilasi ke panggilan metode bersarang alih-alih langsung diselesaikan ke metode oleh kompiler.
Matthew Whited
3

VB / VB.NET termasuk dalam kategori RAD (Rapid Application Development). Anda dapat mengembangkan aplikasi hanya dengan kontrol drag-drop dari kotak peralatan dan lebih sedikit kode.

NinethSense
sumber
Anda bisa mengatakan hal yang sama tentang kombo ASP.net + C #, bukan?
Ya, sebagian besar bahasa berbasis Visual Studio lakukan.
Nah, pada usia VB (bukan. Net) tidak ada C # dll. Jadi VB adalah satu-satunya hal yang HEBAT saat itu. Kemudian pengguna VB bermigrasi ke VB.NET. VB <> VB.NET tetap.
3

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

Saya merasa bahwa VB.NET tidak terlalu 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.

PhpFlashGuy
sumber
Saya setuju bahwa VB.net tidak sepopuler VB klasik. Beberapa devs yang tidak bisa memigrasi basis kode mereka ke VB.net mungkin malah membelot ke C #.
JBRWilkinson
3

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

chugh97
sumber
3

Untuk beberapa nama:

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

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

Eric
sumber
2

Saya bekerja di lingkungan tempat kami menggunakan keduanya. Kami telah beralih ke C # untuk ASP dan VB klasik. Menurut pendapat saya tidak ada kesepakatan antara bahasa. Untuk sebagian besar proyek, Anda dapat melakukan pekerjaan yang sama dengan kedua bahasa. Sekarang saya membagikan pandangan Anda tentang rawan kesalahan dan saya juga menemukan VB menjadi 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 berkembang cepat), tapi saya pikir ketika orang menyadari bahwa C # sama cepatnya berkembang, VB akan menghilang. Alasan lain saya pikir itu akan hilang 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.

miccet
sumber
2

Saya pribadi suka cara acara dilampirkan di vb.net dengan kata kunci 'handle' ... 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)

Petar Kabashki
sumber
Saya lebih suka berlangganan ke acara sendiri, tidak semua hal ajaib di belakang layar yang berlangsung dengan "Menangani" dan desainer VS.
Lucas
2

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

  1. Yang paling penting adalah bahwa VB.NET tidak memiliki Yieldkata kunci, tetapi VB.NET akan segera hadir dengan kerangka kerja async baru.
  2. Tidak ada unsafekata kunci. 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 dicapai dengan menggunakan XML sintaks literal: 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 dengan menggunakan <%= myVar %>sintaks yang bagus.
  4. Tidak ada variabel yang disetarakan dengan dynamic. Variabel dinamis telah ada di VB sejak lama Option Compare Off, tetapi itu adalah file scoped, jadi itu tidak sebagus dynamickarena dynamicmembatasi ruang lingkup hanya variabel yang dinyatakan seperti itu.
  5. VB tidak memiliki sintaks lambda yang 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. SelectKlausa yang sering tidak perlu bisa dihilangkan dari permintaan Linq.
  4. Kata Nothingkunci jauh lebih bermanfaat daripada nullmengatur segala sesuatu (bahkan tipe nilai) Nothingdan Anda mendapatkan default. Tidak perlu defaultkata kunci.
  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 menggunakan MVC3 dengan Razor menggunakan VB.NET dan setelah Anda mengatasi prasangka (kebanyakan tidak berdasar), sebenarnya ini adalah 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 sebagian besar orang yang membenci belum benar-benar dikodekan dalam VB.NET modern untuk waktu yang lama.

mattmc3
sumber
Bagi saya, VB.NET terlalu bertele-tele. Anda harus secara manual mencetak banyak kode boilerplate, dan ReSharper sebenarnya tidak membantu. Saya telah mengkode dalam C # / VB.NET di paraller selama 3 tahun.
Hedin
VB memang verbose horizontal karena kata kunci yang lebih panjang. Meskipun Anda tidak sering mengetiknya, karena IDE menempatkannya untuk Anda. Tapi IMHO C # sering vertikal karena kawat gigi keriting. Beberapa kelebihan VB lainnya: hindari memperdebatkan gaya brace karena hanya ada satu gaya di VB; (Lidah masuk ke pipi) hindari mengembangkan jari kelingking kanan yang berlebih karena mengetik titik koma dan brace boilerplate.
MarkJ
1
@ MarkJ: Saya merasa menarik cara C # pendukungnya mengkritik AndAlso[tidak menahan bahwa ketika diucapkan itu lebih pendek dari "double-ampersand"] tetapi mengabaikan fakta bahwa If-Then/Else/EndIfdibutuhkan tiga baris ditambah pernyataan terkontrol, sedangkan C # setara akan membutuhkan setidaknya empat dan mungkin enam, tergantung pada konvensi penjepit, kecuali satu menulis } else {sebagai satu baris.
supercat