ac # dev ควรเปลี่ยนเป็น VB.net เมื่อฐานภาษาของทีมผสมกันหรือไม่


14

ฉันเพิ่งเข้าร่วมทีมพัฒนาใหม่ที่มีการตั้งค่าภาษาผสมกันบนแพลตฟอร์ม. net

  • Dev 1: รู้ว่า VB.net ไม่รู้ว่า c #

  • Dev 2: รู้ว่า VB.net ไม่รู้ว่า c #

  • Dev 3: รู้ c # และ VB.net ต้องการ c #

  • Dev 4: รู้ c # และ VB6 (VB.net น่าจะง่ายต่อการรับ), ชอบ c #

สำหรับฉันแล้วดูเหมือนว่าผู้นำทางความคิดใน. net จะเป็น c # devs เกือบทุกระดับ ฉันคิดด้วยว่าเครื่องมือของบุคคลที่สามบางตัวไม่รองรับ VB.net แต่เมื่อฉันเริ่มมองหามันฉันไม่พบตัวอย่างที่ดีเลย

ฉันต้องการรับทั้งทีมใน c # แต่ถ้าไม่มีเหตุผลที่ดีที่จะบังคับปัญหานอกเหนือจากการตั้งค่าแล้วฉันไม่คิดว่าเป็นตัวเลือกที่เหมาะสม

มีเหตุผลใดบ้างที่ฉันควรพาคนออกจาก VB.net


5
ฟุ่มเฟื่อยภายใน VB เพียงอย่างเดียวควรจะนำคุณไปสู่ C # ...
แอรอน McIver

13
ฟังดูฉันว่าทีมพัฒนาของคุณขาดผู้นำที่จริงจัง ทำไมผู้จัดการของคุณถึงไม่จัดการกับปัญหานี้?

2
ทำไมคุณลอยไปสู่ ​​VB. Net? จากไดอะแกรมของคุณที่อยู่เหนือ devs 2 ด้วยทักษะใด ๆ ทั้งรู้ C # และอื่น ๆ ไม่รู้จัก. สุทธิเลย แน่นอนว่ามันจะเป็นการดีที่สุดที่จะนำผู้ที่ไม่รู้ภาษามาพูดด้วย C # อย่างที่นักพัฒนาอื่น ๆ สองคนมีทักษะในการสร้าง c # อยู่แล้ว

15
ภายใต้ประทุนพวกเขาอาจจะเหมือนกัน แต่ไวยากรณ์ VB เป็นน้องสาวที่เป็นหูดที่มีหูดที่น่าเกลียดยืนอยู่ถัดจากน้องสาว C # ที่อบอุ่นและอบอุ่นของเธอ มันควรจะจำได้ว่าเป็นรูปแบบของการอ้างอิงถึงเลือดที่ไหลออกมาจากสายตาของนักพัฒนาหลายคนเมื่อพวกเขาจ้องมองนรกรุ่นของตัวเอง VB ควรทำหมันถูกฆ่าและทิ้งไว้ข้างถนนเพื่อเน่าในฤดูร้อนที่อบอุ่น โอบกอดไวยากรณ์ที่สวยงามและหลีกเลี่ยงสิ่งที่ธรรมชาติของแม่เลือกที่จะลืม เลือกอย่างชาญฉลาด
Moo-Juice

2
หากฉันไม่เข้าใจผิด On On Error Resume Next มีไว้สำหรับการสนับสนุนแบบดั้งเดิม ลองจับบล็อกมีอยู่ใน VB.Net ... เนื่องจากเป็น. Net
Tony Abrams

คำตอบ:


2

ไม่มีเหตุผลที่น่าสนใจอย่างแท้จริงที่จะบังคับให้บางคนเปลี่ยนภาษาเว้นแต่จะมีคุณลักษณะที่จะมีประโยชน์เป็นพิเศษหรือประหยัดเวลาสำหรับโครงการของคุณ พวกเขาทั้งสองจะรวบรวมไปที่ IL และดำเนินการอย่างเท่าเทียมกัน (สมมติว่าOption Strictมีการเปิดใน VB.NET ... มิฉะนั้นคุณสามารถได้รับโทษสำหรับการผูกล่าช้า) ทุกสิ่งทุกอย่างเป็นสิ่งที่พิเศษกว่าอย่างแท้จริง (ไม่ใช่เพื่อยกเลิกสิ่งนั้นเลย แต่ก็ไม่ใช่ตัวชี้วัดวัตถุประสงค์)

ฉันขอแนะนำให้ดูรายการงานในพื้นที่ของคุณและดูว่าภาษาใดที่แพร่หลายมากขึ้นทั้งในการจัดหางาน (เช่นกลุ่มแรงงานสำหรับทั้งสองภาษา) การดูว่าอันไหนที่จะทำให้คุณมีแหล่งแรงงานที่ใหญ่กว่าหรือดีกว่าน่าจะเป็นเมตริกที่น่าสนใจที่สุดของคุณ


ฉันเห็นด้วยกับสิ่งที่คุณพูดเกี่ยวกับรายชื่องานในท้องถิ่น ฉันคิดว่าสิ่งหนึ่งที่มองข้ามได้ง่ายคือศักยภาพที่มีความสามารถและผลกระทบของการเลือกภาษาหนึ่งในอีกภาษาหนึ่งอาจมีต่อการจ้างงานในอนาคตของคุณ
jjr2527

7

โชคดีที่คำตอบนั้นง่าย: ไม่มีภาษา "ดีที่สุด" ภาษา. NET ทั้งหมดใช้ที่รูทของพวกเขาการทำงานจากชุดคลาสที่จัดเตรียมโดย. NET Framework ดังนั้นทุกสิ่งที่คุณสามารถทำได้ใน VB.NET คุณสามารถทำได้ใน C # และในทางกลับกัน ความแตกต่างเพียงอย่างเดียวระหว่างภาษาเป็นเพียงการสร้างประโยค

โปรแกรมเมอร์ C ++, Java และ J ++ จะชอบไวยากรณ์ที่ไม่ไร้สาระ terse ของ C # โปรแกรมเมอร์ Visual Basic (VB) อาจต้องการติดกับปีศาจที่พวกเขารู้ - Visual Basic .NET ของ case-insensitive, pseudo-natural language approach หากคุณมีโปรแกรมเมอร์ VB และเป็นโปรแกรมเมอร์จริง (ดูตัวเลือกเข้มงวด) คุณจะได้รับผลลัพธ์เดียวกัน VB เป็น verbose มากขึ้น .... C # เป็นมือปราบลูกที่มีความไวกรณี


จริงทั้งคู่สามารถทำ 98% ที่คนอื่น ๆ สามารถทำได้ แต่มีเชือกมากมายที่จะใช้ใน VB On Error Resume Nextเพียงอย่างเดียวจะส่งฉันวิ่งไปทาง C # Moduleแนวคิดยังเป็นอันตรายมาก มันคล้ายกับstatic classใน C # แต่ ... ทุกอย่างในนั้นสามารถเข้าถึงได้ทั่วโลกโดยไม่มีการอ้างอิงถึงระดับผู้ปกครองและคงที่โดยอัตโนมัติโดยไม่มีข้อบ่งชี้อื่น ๆ ... ยกเว้นว่าผู้ปกครองระดับเป็นโมดูล ... !
Paul Sasik

6
ขออภัยที่ nitpick แต่สิ่งนี้ไม่เป็นความจริง ตัวอย่างเช่นคุณจะเขียนตัวกรองข้อยกเว้นใน C # ได้อย่างไร blogs.msdn.com/b/clrteam/archive/2009/08/25/…

@LukeH หากต้องการเพิ่มตัวกรองข้อยกเว้นใน C # เราสามารถสร้างฟังก์ชั่นใน VB หรือ IL จากนั้นเรียกมันใน C #: D

4
@Anna: ดังนั้นหักล้างคำสั่งของคุณที่"ทุกสิ่งที่คุณสามารถทำได้ใน VB.NET ที่คุณสามารถทำได้ใน C #"

2
มีบางสิ่งที่คุณไม่สามารถทำได้ใน VB.Net ที่คุณสามารถทำได้ใน c # - ดูเพิ่มเติมได้ที่: stackoverflow.com/q/2362381/50447
Rowland Shaw

5

จริงๆแล้วทีมงานของ Dev ควรใช้ภาษาเดียวกันหรืออย่างน้อยก็รู้ภาษาเดียวกัน

สิ่งนี้จะช่วยในการฝึกอบรมข้ามสายงานและการสนับสนุนในแอปพลิเคชันต่างๆที่ทีมพัฒนาสร้างขึ้น

ในตอนท้าย VB vs C # คือการต่อสู้ของการตั้งค่าทั้งหมด แต่ทีมควรจะอยู่ในหน้าเดียวกับที่พวกเขากำลังจะใช้หรือสนับสนุน


5

ac # dev ควรเปลี่ยนเป็น VB.net เมื่อฐานภาษาของทีมผสมกันหรือไม่

นักพัฒนาควรใช้ภาษา. NET ที่เป็นมาตรฐานสำหรับทีม IMO ควรมีหนึ่งภาษาที่ใช้ (ยกเว้นกรณีที่น่าสนใจอย่างยิ่งสามารถทำได้)

มีเหตุผลใดบ้างที่ฉันควรพาคนออกจาก VB.net

ฉันคิดว่าคนส่วนใหญ่ที่นี่ชอบ C # แต่นี่ไม่ใช่คำถามทางเทคนิคที่เป็นการตัดสินใจทางการเมืองหรือธุรกิจ ตัดสินใจเลือกภาษา. NET ที่จะใช้จากนั้นใช้ ตอนนี้เห็นได้ชัดว่ามีหลายปัจจัยที่ควรพิจารณา:

  • มี codebase อยู่หรือไม่ ภาษาส่วนใหญ่เขียนเป็นภาษาอะไร?
  • นักพัฒนา VB.NET สามารถหยิบ C # ได้อย่างง่ายดายหรือไม่? พวกเขาต้องการหรือไม่
  • การลงทุนใน C # ramp-up / training เหมาะสมหรือไม่?
  • การสลับภาษาใด ๆ จะส่งผลกระทบต่อสิ่งที่มีอยู่แล้วได้อย่างไร

+1 สำหรับการคิดเกี่ยวกับทีมมากกว่าความชอบส่วนตัว
MarkJ

4

ในความเป็นจริง VB.NET มีคุณสมบัติบางอย่างที่ C # ไม่มีในปัจจุบัน: ตัวอักษร XML และไวยากรณ์แบบสอบถามสำหรับการใช้วิธีการรวมใน LINQ


1
VB.NET ไม่มีตัววนซ้ำ (เช่นคำสำคัญ Yield ใน C #)
atconway

3

คุณอาจลองดูบทความทั้งสามนี้ที่เปรียบเทียบ C # และ VB.NET:

พวกเขาทั้งหมดดูเหมือนจะให้ข้อโต้แย้งที่สมเหตุสมผลและการเปรียบเทียบระหว่างคนทั้งสอง ส่วนตัวฉันลงคะแนนให้ C # (บริษัท ของฉันเลือก C # สำหรับโครงการ ASP.NET ของเราเมื่อเราเปลี่ยนจาก asp asp แบบดั้งเดิม)


2

ฉันอยู่ในสถานการณ์ที่คล้ายกันมากในปี 2003 ที่คุณอยู่ในขณะนี้ ฉันจัดการทีมที่ย้ายไปยัง ASP.NET จาก ASP Classic ทีมของเราส่วนใหญ่มีประสบการณ์กับ VBScript ในฐานะภาษา defacto สำหรับ ASP แต่ประมาณครึ่งหนึ่งของทีมชื่นชอบ C # แม้จะมีเส้นทางการย้ายที่ซับซ้อนกว่าเล็กน้อยจาก ASP / VBScript ท้ายที่สุดฉันเลือก VB.NET แต่ในการหวนกลับฉันอยากได้เส้นทาง C #

ในวันครบรอบ 5 ปีของการตัดสินใจครั้งนั้นฉันได้เขียนบทความในบล็อกเกี่ยวกับเหตุผลของฉันสำหรับการตัดสินใจและพยายามให้ประโยชน์จากการเข้าใจถึงปัญหาหลังเหตุการณ์ของฉันกับผู้จัดการฝ่ายพัฒนาคนอื่น ๆ ที่พยายามโทรแบบเดียวกัน นี่คือลิงค์ไปยังบทความ:

"A Retrospective ของผู้จัดการในการตัดสินใจ C # กับ VB.NET"

เรื่องสั้นสั้น ๆ สำหรับผู้ที่ไม่ต้องการอ่านบทความทั้งหมด: ฉันไม่คิดว่าโครงการนี้แย่ไปกว่าการเลือก VB.NET ผ่าน C # และอาจช่วยให้เราประหยัดเวลาได้มากในระยะสั้น ปัญหาที่ใหญ่ที่สุดคือการสรรหา ฉันยินดีจ้างโปรแกรมเมอร์ C # หรือ VB.NET เพื่อทำงานเป็นสองภาษา พวกเขาไม่ได้แตกต่างกันอย่างมีนัยสำคัญ อย่างไรก็ตามไม่ว่าจะสมควรหรือไม่ก็ตาม VB.NET มีจุดประสงค์ที่ทำให้นักพัฒนาจำนวนมากหลีกเลี่ยงงานที่พวกเขารู้ว่าพวกเขาจะทำงานด้วยเป็นภาษาหลัก


ในฐานะโปรแกรมเมอร์ C # ฉันได้ทำงานในโครงการที่ใช้ VB.NET แต่บ่อยครั้งที่โปรแกรมเมอร์ VB.NET ไม่รู้ว่าพวกเขากำลังทำอะไรไม่ได้มี Comp Sci degrees และเขียนวิธีการที่มีโค้ด 100 บรรทัด ดังนั้นฉันจึงไม่สนใจโฆษณาตำแหน่งงานใด ๆ ที่ร้องขอ VB.NET
เอียน

1

ฉันจะเอนเอียงไปทาง C # เพราะมันละเอียดน้อยกว่าและจากประสบการณ์ของฉันก็แพร่หลายมากขึ้นในอินเทอร์เน็ต ฉันจะยืนยันว่า C # หรือ VB.NET นั้นง่ายและรวดเร็วในการเรียนรู้จนถึงจุดที่เล็กน้อยและไม่มีนัยสำคัญ ในทางกลับกัน. NET Framework นั้นมีขนาดใหญ่และเป็นสิ่งมีชีวิตที่มีวิวัฒนาการอย่างต่อเนื่อง Mastering .NET ใช้เวลาหลายปี แต่การใช้ C # หรือ VB.NET อาจใช้เวลาไม่กี่เดือนหรือน้อยกว่านั้น


0

ฉันคิดว่า @Anna Karin มีจุดดีดังนั้นคุณไม่ควรกังวลเกี่ยวกับห้องสมุด อย่างน้อยฉันก็ไม่สามารถจำคนที่เพิ่งทำงานกับ c # และไม่ได้อยู่กับ vb.net

จุดสำคัญอีกอย่างหนึ่งก็คือการเปลี่ยนรหัสจะตรวจสอบได้ยากขึ้นระหว่างสมาชิกในทีมเดียวกันหากทำงานกับภาษาที่แตกต่างกัน ฉันคิดว่าเป็นความคิดที่ดีที่สุดใช้ภาษา commom เพื่อลดแรงเสียดทานในการสื่อสาร


0

ในขณะที่ฉันเห็นด้วยกับคำตอบก่อนหน้านี้ที่. NET ควรเป็นคุณสมบัติเดียวกันที่ชาญฉลาด แต่มันก็ไม่ได้เป็นเช่นนั้นเสมอไป แต่ใกล้พอที่ถ้าคุณมีโครงการง่าย ๆ มันก็ไม่สำคัญ

เหตุผลหลักที่ฉันจะให้เปลี่ยนเป็น C # ในทีมคือภาษาเป็นตัวอย่างส่วนใหญ่อยู่ในและโครงการโอเพนซอร์สส่วนใหญ่เผยแพร่ซอร์สโค้ดใน C # ดังนั้นหากทีมของคุณไม่สามารถดึงทรัพยากรดังกล่าวคุณอาจ จำกัด ตัวเองโดยไม่จำเป็น


0

C # และ VB.NET ใช้แพลตฟอร์ม. NET มันเป็นสิ่งสำคัญสำหรับนักพัฒนาที่ทำงานใน. NET ต้องรู้. NET, หลักการ, เทคนิค, รูปแบบ ... ในกรณีนั้นการสลับระหว่างภาษาจะไม่เป็นปัญหา - ส่วนใหญ่เกี่ยวกับไวยากรณ์ ในทีมผสมบางทีพวกเขาทั้งหมดควรพยายามเรียนรู้ทั้งสองภาษา (ไม่ใช่เรื่องใหญ่) แต่มันอาจสำคัญสำหรับการทำงานร่วมกันในอนาคตระหว่างสมาชิกของทีม


0

ฉันจะบอกว่าข้อดีอย่างหนึ่งของการให้ทุกคนใช้ภาษาเดียวกันก็คือหมายความว่านักพัฒนาซอฟต์แวร์ทุกคนสามารถทำงานกับส่วนใดส่วนหนึ่งของรหัสได้

ยิ่งไปกว่านั้น VB.NET และ C # แตกต่างกันเฉพาะไวยากรณ์ภายใต้. NET และรหัสที่เขียนด้วยภาษาทั้งสองสามารถอยู่ร่วมกันในโครงการเดียวกันได้ดี


0

ฉันจะไปกับ C # เพราะ:

  • มันใกล้กับ Java และ C ++ มากขึ้น (ภาษาที่ใช้บ่อยในการสอนหลักสูตร CS)
  • มีทรัพยากรมากมายบนอินเทอร์เน็ตใน C # มากกว่าใน VB (จากสิ่งที่ฉันเห็นมา)
  • โอกาสสูงกว่าในการค้นหา / จ้างนักพัฒนาอื่น ๆ ที่รู้จัก C # ดีกว่า VB (จากสิ่งที่ฉันเห็นใน บริษัท ของฉัน) เพื่อดูแลโครงการ

0

ความคิดเห็นของฉันคือการเปิดใช้งานการพัฒนาตามสัญญาพร้อมอินเทอร์เฟซและผู้พัฒนาควรสามารถเขียนรหัสชั้นเรียนในภาษาใดก็ได้ที่เขาต้องการและอาจแยกชั้นต่ำ / สูงในชั้นเรียนที่แตกต่างกัน ตราบใดที่คลาสนั้นเคารพอินเทอร์เฟซที่ร้องขอและดำเนินการตามข้อกำหนดควรมีปัญหาเล็กน้อย


0

ฉันเห็นด้วยกับคำตอบอื่น ๆ อีกมากมายที่นี่ ฉันเป็นส่วนหนึ่งของสองทีมที่ต้องทำการตัดสินใจครั้งนี้ ในตอนแรกพวกเขาตัดสินใจว่าผู้พัฒนาสามารถเลือกได้เนื่องจากทั้งสองภาษาทำงานร่วมกัน อย่างไรก็ตามในปีแรกของทั้งคู่พวกเขาต้องการเพียงเลือก C # และวางข้อกำหนดใหม่ที่โครงการใหม่ทั้งหมดจะอยู่ใน C #


0

เหตุผลในการใช้ C #:

  • มันทำให้นักพัฒนาของคุณสองคนมีความสุขมาจนถึงตอนนี้และอาจทำให้อีกสองคนโกรธเมื่อพวกเขาเรียนรู้
  • คุณวางแผนที่จะจ้างนักพัฒนามากขึ้นในบางจุดและต้องการหลีกเลี่ยงฝูงชน "20 ปีของประสบการณ์ VB"
  • คุณรักวงเล็บปีกกา
  • คุณรักชีวิต

เหตุผลในการใช้ VB.NET:

  • ผู้พัฒนาทั้งสองที่ไม่รู้ว่า C # ปฏิเสธที่จะเรียนรู้อย่างแน่นอน
  • "การหลบหลีกตามแนวต้านน้อยที่สุด" เป็นคำขวัญของ บริษัท ของคุณ
  • มี codebase VB ขนาดใหญ่ที่มีอยู่ซึ่งไม่สามารถอัปเดตได้
  • คุณกำลังเตะ HP Lovecraft และคร่ำครวญถึงการขาด "ความน่าสะพรึงกลัว eldritch" ในชีวิตประจำวันของคุณ
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.