Haruskah ac # dev beralih ke VB.net ketika basis bahasa tim tercampur?

14

Baru-baru ini saya bergabung dengan tim pengembangan baru di mana preferensi bahasa dicampur pada platform .net.

  • Dev 1: Tahu VB.net, tidak tahu c #

  • Dev 2: Tahu VB.net, tidak tahu c #

  • Dev 3: Tahu c # dan VB.net, lebih suka c #

  • Dev 4: Tahu c # dan VB6 (VB.net seharusnya cukup mudah diambil), lebih suka c #

Tampaknya bagi saya bahwa para pemimpin pemikiran dalam ruang .net hampir secara universal. Saya juga berpikir bahwa beberapa alat pihak ke-3 tidak mendukung VB.net tetapi ketika saya mulai mencari ke dalamnya saya tidak menemukan contoh yang bagus.

Saya lebih suka untuk mendapatkan seluruh tim di c # tetapi jika tidak ada alasan yang baik untuk memaksa masalah selain dari preferensi maka saya tidak berpikir itu adalah pilihan yang tepat.

Apakah ada alasan saya harus membuat orang menjauh dari VB.net?

Wilman
sumber
5
Verbositas di dalam VB sendiri akan menuntun Anda ke C # ...
Aaron McIver
13
Kedengarannya bagi saya seperti tim pengembangan Anda tidak memiliki kepemimpinan yang serius. Mengapa manajer Anda tidak menangani masalah ini?
2
Mengapa Anda terhanyut ke VB. Net? Dari diagram Anda di atas, 2 devs dengan keahlian apa pun yang tahu C # dan yang lainnya tidak tahu. Net sama sekali. Tentunya akan lebih baik untuk membawa mereka yang tidak mengenal bahasa dengan kecepatan dengan C # karena dua pengembang lainnya sudah memiliki keterampilan c # untuk membangun?
15
Di bawah tenda mereka mungkin sama, tetapi sintaks VB adalah saudara perempuan yang dipenuhi kutil jelek yang berdiri di samping saudara perempuan # C yang lebih panas dan telah dimandikan. Sintaksnya harus diingat hanya sebagai titik referensi ke darah yang telah tumpah dari banyak pengembang saat mereka menatap versi neraka mereka sendiri. VB harus dikebiri, dibunuh dan dibiarkan di sisi jalan untuk membusuk di musim panas yang hangat. Merangkul sintaks yang lebih indah dan menghindari apa yang ibu alam telah memilih untuk melupakan. Pilihlah dengan bijak.
Moo-Juice
2
Jika saya tidak salah, On Error Resume Next adalah untuk dukungan lawas. Coba Tangkap blok memang ada di VB.Net ... karena .Net.
Tony Abrams

Jawaban:

2

Tidak ada alasan kuat untuk memaksa seseorang mengubah bahasa kecuali ada fitur yang sangat berguna atau menghemat waktu untuk proyek Anda. Keduanya akan dikompilasi ke IL dan berkinerja setara (dengan asumsi yang Option Strictada di VB.NET ... jika tidak, Anda dapat dikenai penalti untuk pengikatan yang terlambat). Segala sesuatu yang lain benar-benar istimewa (tidak menolak sama sekali, tetapi itu bukan metrik objektif).

Saya sarankan melihat daftar pekerjaan di daerah Anda dan melihat bahasa mana yang lebih lazim baik dalam pasokan kerja (yaitu kumpulan tenaga kerja untuk kedua bahasa). Melihat mana yang akan memberi Anda kolam tenaga kerja yang lebih besar atau lebih baik mungkin akan menjadi metrik Anda yang paling menarik.

Adam Robinson
sumber
Saya setuju dengan apa yang Anda katakan tentang daftar pekerjaan lokal. Saya pikir satu hal yang mudah untuk diabaikan adalah potensi bakat, dan efek memilih satu bahasa dari yang lain mungkin ada pada upaya perekrutan Anda di masa depan.
jjr2527
7

Untungnya jawabannya sederhana: tidak ada bahasa "terbaik". Semua bahasa .NET menggunakan, pada akarnya, fungsionalitas dari sekumpulan kelas yang disediakan oleh .NET Framework. Oleh karena itu, semua yang dapat Anda lakukan di VB.NET dapat Anda lakukan dalam C #, dan sebaliknya. Satu-satunya perbedaan antar bahasa hanyalah perbedaan sintaksis.

Pemrogram C ++, Java, dan J ++ akan lebih memilih sintaksis non-omong kosong dari C #. Pemrogram Visual Basic (VB) mungkin lebih suka tetap dengan iblis yang mereka kenal — Visual Basic .NET case-insensitive, pseudo-natural language approach. Jika Anda memiliki pemrogram VB dan mereka adalah pemrogram sungguhan (Lihat Option Strict ON) Anda akan mendapatkan hasil yang sama. VB lebih verbose .... C # adalah ball buster dengan sensitivitas case.

Anna Karin
sumber
Benar, keduanya dapat melakukan 98% yang lain TAPI ada begitu banyak tali untuk digantung di VB. On Error Resume Nextsendiri akan membuat saya berlari menuju C #. The ModuleKonsep juga sangat berbahaya. Ini mirip dengan static classdi C # tetapi ... semua yang ada di dalamnya dapat diakses secara global tanpa referensi ke kelas induk dan secara otomatis statis tanpa indikasi lain ... kecuali bahwa kelas induk adalah Modul ...!
Paul Sasik
6
Maaf nitpick tapi ini tidak benar. Misalnya, bagaimana Anda menulis filter pengecualian di C #? blogs.msdn.com/b/clrteam/archive/2009/08/25/...
@ Lukas Untuk menambahkan filter pengecualian ke C #, kita dapat membangun sebuah fungsi dalam VB atau IL, lalu menyebutnya dalam C #: D
4
@ Anna: Dengan demikian menyangkal pernyataan Anda bahwa "semua yang dapat Anda lakukan di VB.NET dapat Anda lakukan di C #" .
2
Ada beberapa hal yang tidak dapat Anda lakukan di VB.Net yang dapat Anda lakukan di c # - lihat juga: stackoverflow.com/q/2362381/50447
Rowland Shaw
5

Sejujurnya tim Dev harus menggunakan bahasa yang sama atau paling tidak tahu bahasa yang sama.

Ini akan membantu dalam pelatihan silang dan dukungan di antara berbagai aplikasi yang dihasilkan oleh tim pengembang.

Pada akhirnya, VB vs C # adalah pertarungan preferensi, tetapi tim harus berada pada halaman yang sama dengan yang akan mereka gunakan atau dukung.

Tony Abrams
sumber
5

Haruskah ac # dev beralih ke VB.net ketika basis bahasa tim tercampur?

Pengembang harus menggunakan bahasa .NET yang merupakan standar untuk tim. IMO, harus ada satu bahasa yang digunakan (kecuali kasus yang sangat menarik dapat dibuat).

Apakah ada alasan saya harus membuat orang menjauh dari VB.net?

Saya pikir kebanyakan orang di sini lebih suka C # tetapi ini bukan pertanyaan teknis seperti keputusan politik atau bisnis. Tentukan bahasa .NET apa yang akan digunakan dan gunakan. Sekarang jelas ada banyak faktor yang perlu dipertimbangkan:

  • Apakah ada basis kode yang ada? Bahasa apa yang paling banyak dituliskan?
  • Bisakah pengembang VB.NET dengan mudah mengambil C #? Apakah mereka mau?
  • Apakah masuk akal secara finansial untuk berinvestasi dalam peningkatan / pelatihan C #?
  • Bagaimana perubahan bahasa berdampak pada hasil yang ada?
Randy Levy
sumber
+1 untuk memikirkan tim, bukan preferensi individu
MarkJ
4

Faktanya, VB.NET memiliki beberapa fitur yang tidak dimiliki C # saat ini: XML literal, dan sintaks kueri untuk menggunakan metode Agregat di LINQ.

John Saunders
sumber
1
VB.NET juga tidak memiliki iterator (yaitu, kata kunci hasil dalam C #)
atconway
2

Saya berada dalam situasi yang sangat mirip di tahun 2003 yang sekarang Anda alami. Saya mengelola tim yang pindah ke ASP.NET dari ASP Classic. Sebagian besar tim kami memiliki pengalaman dengan VBScript sebagai bahasa defacto untuk ASP, tetapi sekitar setengah dari tim menyukai C # meskipun jalur migrasi sedikit lebih kompleks dari ASP / VBScript. Pada akhirnya saya memilih VB.NET, tetapi kalau dipikir-pikir saya benar-benar berharap saya telah menempuh rute C #.

Pada ulang tahun ke 5 dari keputusan itu saya menulis artikel blog tentang pemikiran saya untuk membuat keputusan dan mencoba untuk memberikan manfaat dari pandangan saya ke manajer pengembangan lain yang mencoba membuat panggilan yang sama. Berikut tautan ke artikel:

"Retrospektif Seorang Manajer tentang Keputusan C # versus VB.NET"

Singkatnya, bagi mereka yang tidak ingin membaca seluruh artikel: Saya tidak berpikir proyek ini lebih buruk karena memilih VB.NET daripada C #, dan mungkin menghemat banyak waktu dalam jangka pendek. Masalah terbesar sebenarnya dengan perekrutan. Saya dengan senang hati akan menyewa programmer C # atau VB.NET untuk bekerja dalam bahasa apa pun. Mereka sebenarnya tidak jauh berbeda. Namun, apakah pantas atau tidak, VB.NET memiliki stigma yang menyebabkan sejumlah pengembang menghindari pekerjaan di mana mereka tahu mereka akan bekerja dengannya sebagai bahasa utama.

JohnFx
sumber
Sebagai seorang programmer C # saya telah mengerjakan proyek yang menggunakan VB.NET. Tetapi lebih sering daripada tidak programmer VB.NET tidak tahu apa yang mereka lakukan, tidak memiliki gelar Comp Sci dan menulis metode dengan 100-baris baris kode. Karena itu saya cenderung mengabaikan iklan pekerjaan apa pun yang meminta VB.NET.
Ian
1

Saya akan condong ke arah C # karena kurang verbose dan dalam pengalaman saya jauh lebih lazim di internet. Saya juga berpendapat bahwa C # atau VB.NET mudah dan cepat untuk dipelajari, ke titik di mana itu dapat diabaikan dan tidak signifikan. Kerangka NET., Di sisi lain sangat besar dan makhluk yang terus berkembang. Menguasai .NET membutuhkan waktu bertahun-tahun, tetapi menguasai C # atau VB.NET bisa memakan waktu beberapa bulan atau kurang.

Nelson Rothermel
sumber
0

Saya pikir @Anna Karin memiliki poin yang bagus, jadi Anda tidak perlu khawatir tentang perpustakaan. Setidaknya, saya tidak dapat mengingat siapa pun yang bekerja dengan c # dan tidak dengan vb.net.

Poin penting lainnya adalah bahwa hal itu akan membuat pemeriksaan kode lebih sulit antara anggota tim yang sama jika mereka bekerja dengan bahasa yang berbeda. Saya pikir adalah ide terbaik menggunakan beberapa bahasa umum, untuk mengurangi gesekan dalam komunikasi.

Tiago Deliberali Santos
sumber
0

Sementara saya setuju dengan jawaban sebelumnya bahwa .NET harus fitur yang sama bijaksana, ini tidak selalu terjadi, tetapi cukup dekat bahwa jika Anda memiliki proyek sederhana itu seharusnya tidak masalah.

Alasan utama yang akan saya berikan untuk beralih ke C # di seluruh tim adalah bahasa yang paling banyak digunakan dalam contoh dan proyek-proyek open source mempublikasikan kode sumber dalam C #. Jadi, jika tim Anda tidak dapat menarik sumber daya seperti itu, Anda mungkin perlu membatasi diri sendiri.

jjrdk
sumber
0

C # dan VB.NET didasarkan pada platform .NET; penting bagi pengembang yang bekerja di .NET untuk mengetahui .NET, prinsip, teknik, pola ... Dalam hal beralih antar bahasa tidak akan menjadi masalah - ini terutama tentang sintaksis. Dalam tim campuran mungkin mereka semua harus mencoba mempelajari kedua bahasa (ini bukan masalah besar), tetapi bisa penting untuk kolaborasi di masa depan antara anggota tim.

Vladimir
sumber
0

Saya akan mengatakan satu keuntungan dari memiliki semua orang menggunakan bahasa yang sama adalah bahwa itu berarti bahwa setiap pengembang dapat bekerja pada bagian mana pun dari kode.

Di luar itu, VB.NET dan C # berbeda hanya dengan sintaks di bawah .NET. Dan kode yang ditulis dalam kedua bahasa dapat hidup berdampingan dalam proyek yang sama.

Jonathan Wood
sumber
0

Saya akan menggunakan C # karena:

  • ini lebih dekat dengan Java dan C ++ (bahasa sangat sering diajarkan dalam kursus CS).
  • ada banyak sumber daya di Internet dalam C # daripada di VB (dari apa yang saya lihat di sana).
  • kemungkinan lebih tinggi untuk menemukan / mempekerjakan pengembang lain yang tahu C # lebih baik daripada VB (dari apa yang saya lihat di perusahaan saya) untuk mempertahankan proyek.
Andrei Pana
sumber
0

Pendapat saya akan memungkinkan pengembangan berbasis kontrak dengan antarmuka, dan pengembang harus dapat membuat kode kelas dalam bahasa apa pun yang diinginkannya, dan mungkin memisahkan kelas tingkat rendah / tinggi dalam majelis yang berbeda. Selama kelas-kelas menghormati antarmuka yang diminta dan mengimplementasikan persyaratan, seharusnya ada sedikit masalah.

dvhh
sumber
0

Saya setuju dengan banyak jawaban lain di sini. Saya telah menjadi bagian dari dua tim yang harus membuat keputusan ini. Pada keduanya mereka awalnya memutuskan bahwa pengembang dapat memilih karena kedua bahasa bekerja bersama. Namun dalam tahun pertama pada keduanya mereka berharap mereka baru saja memilih C # dan memasukkan persyaratan baru bahwa semua proyek baru berada di C #.

Beth Whitezel
sumber
0

Alasan menggunakan C #:

  • Itu membuat dua pengembang Anda sangat senang sejauh ini, dan mungkin akan menerima dua pengembang lainnya begitu mereka mempelajarinya.
  • Anda berencana untuk mempekerjakan lebih banyak pengembang di beberapa titik, dan ingin menghindari kerumunan "20 tahun pengalaman VB".
  • Anda suka kawat gigi keriting.
  • Kamu mencintai hidup.

Alasan menggunakan VB.NET:

  • Dua dev yang tidak tahu C # benar-benar menolak untuk mempelajarinya.
  • "Berantakan di sepanjang jalan yang paling tidak resistan" adalah moto perusahaan Anda.
  • Ada basis kode VB besar yang tidak dapat diperbarui.
  • Anda menggunakan tendangan HP Lovecraft, dan menyesalkan kurangnya "kengerian eldritch" dalam kehidupan Anda sehari-hari.
Shog9
sumber