การเปรียบเทียบ C#.net กับ vb.net เพื่อประกอบการตัดสินใจและนำไปสู่การพัฒนา

การเปรียบเทียบ C#.net กับ vb.net เพื่อประกอบการตัดสินใจและนำไปสู่การพัฒนา

หมวดหมู่: พัฒนาเว็บไซต์ฐานข้อมูลVisual C# .netSoftware ReviewWindows and Office

การเลือกระหว่างภาษา C#.Net และ VB.Net
มักเป็นข้อที่หลายคนคิดในช่วงวางแผนก่อนที่จะเริ่ม
ลงทุนลงแรงเพื่อศึกษาและนำมาใช้ในการพัฒนาระบบขึ้นมา

ข้อเสนอแนะอย่างง่ายที่สุดของไมโครซอฟต์ ก็คือว่าเรามีความชำนาญ
มีความคุ้นเคย ชอบพอกับภาษาใดมาก่อน ก็ให้เลือกภาษาที่เป็นแนวเดียวกันนั้น
เนื่องจากทุกภาษาใน .Net จะถูกแปล
เป็นภาษา Microsoft Intermediate Language (MSIL) โดยเฉพาะสองภาษาที่
จะเปรียบเทียบกันนี้ ถ้าเขียนโค้ด VB.Net อย่างถูกต้องดี รหัส MSIL ที่ได้
ก็แทบจะเหมือนกันเลย ดังนั้น performance ของงานที่ได้ ก็จะไม่แตกต่างกัน
นี่เป็นการยกระดับงาน Visual Basic เป็นอย่างมาก แล้วการที่ VB.Net ใช้ 
Base Class Library ของ .Net framework ร่วมกันกับ C# ก็ทำให้ VB.Net
programmer ถือเป็น first-class citizen ไปแล้ว

การเขียนโค้ด VB.Net อย่างถูกต้องดี เช่นมีการใช้ Option Strict On
หรือมีการใช้ DirectCast แทนที่จะใช้ CType เป็นต้น.

รายละเอียดการเปรียบเทียบสองภาษา ในข้อความนี้
รวบรวมประมวลมาจากแหล่งข้อมูลต่างๆ หลายแห่ง 
ซึ่งอาจจะต้องมีการพูดถึงศัพท์หรือเทคนิคลึกๆ บ้างเพื่อ
ให้ได้ความสมบูรณ์นะครับ

ดูข้อดีของ Visual Basic .Net
- รองรับ Optional argument ซึ่งสำคัญมากที่คุณต้องการใช้งานร่วมกับ
ActiveX component หรือการเขียนโค้ดชนกับพวก Office
- ทำตัวไม่ซีเรียสได้ คือยอมรับการทำ late-binding ได้
ถ้าไม่กำหนด Option Strict On การเขียนโค้ดพวกนี้ใช้กับพวก ActiveX
อีกนั่นเอง (ผมแนะนำให้หลีกเลี่ยงการเขียนโค้ดแบบ late-binding ใน .Net)
- รองรับการทำ named indexer (การสร้าง property ที่มี argument)
- มีคำสั่ง VB แบบเดิมๆ เช่น Left, Mid, UCase, ... ให้ใช้ง่ายๆ สำหรับ
ผู้ใช้ VB6 มาก่อน (การเรียกใช้ฟังก์ชันแบบเดิมๆ นี้จะมีผลต่อประสิทธิภาพ
ของโปรแกรม)
- มีประโยค With..End With ให้ใช้ 
- ความเรียบง่าย เช่นการสร้างประโยค Event 
- สามารถกำหนดชื่อเมธอดของการ implements interface ที่ต่างจาก
ที่กำหนดไว้ใน interface ได้ (ผมว่าไม่ค่อยได้ประโยชน์เลย ทำให้ยุ่งยาก
ในการค้นหาเสียมากกว่า)
- มีประโยค Catch...When... ทำให้สามารถทำการ filter exception
ด้วยเงื่อนไขได้ นอกเหนือจากการ filter ด้วยชนิดของ exception เท่านั้น
- Visual Studio .Net จะทำการ compile โค้ดในลักษณะ background
ซึ่งช่วยเป็นข้อดีในโปรเจ็กต์ขนาดเล็ก แต่ถ้าโปรเจ็กต์ขนาดใหญ่มหึมา
จะกลับเป็นข้อเสียอย่างมาก (มีฝรั่งหลายคนบ่นว่าต้องถึงกับต้องยอม
เปลี่ยนจาก VB.Net มาเป็น C# เลย ในโปรเจ็กต์ที่มีไฟล์มีคลาสเป็นพันๆ)

ข้อดีของ C# .Net
- รองรับ XML documentation คล้ายๆ javadoc คือเอาคอมเม้นต์
ในโค้ดมาแปลงเป็นเอกสาร technical manual ได้เลย
แต่ใน VB.Net เวอร์ชั่น 2005 (Whidbey) ก็จะรองรับในคุณสมบัตินี้ด้วย
- สามารถทำ operator overloading ได้ (VB.Net 2005 ก็จะทำได้เช่นกัน)
- รองรับ unsigned datatype (VB.Net 2005 ก็จะทำได้เช่นกัน)
- มีประโยค using เพื่อใช้จัดการกับ resource ที่เป็นแบบ unmanaged
- รองรับ unsafe code


สังเกตได้ว่า อะไรที่ใน C# มี ซึ่งเป็นสิ่งที่ซับซ้อน
ใน VB.Net เวอร์ชันถัดไป ก็จะมีด้วย แต่มักจะถูกนำมาแสดงในรูปแบบ
ที่ง่ายต่อความเข้าใจ แต่อะไรที่ VB.Net มี มักจะไม่ถูกนำไปเพิ่มให้
กับ C# เช่นรูปแบบการสร้าง event ที่เรียบง่าย อย่างประโยค Handles
หรือคีย์เวิร์ด My ที่จะมีใน VB.Net Whidbey (คิดว่าใน C# อาจจะไม่มี)
หรือ Optional argument (ใน C# แก้ปัญหานี้ด้วยการทำ overloading
แต่ก็จะไม่สามารถใช้งานร่วมกับ ActiveX component แบบเดิมได้อยู่ดี)

ถ้าขนาดของโปรเจ็กต์ที่คุณคิดว่าจะต้องทำในอนาคต
ใหญ่มากๆ ก็ควรจะเลือก C# ไปเสียแต่แรกเลย เว้นแต่จะมีวิธีแก้ปัญหา
IDE ที่ช้ามากๆ เมื่อมีไฟล์จำนวนมากของ VB.Net ได้

เขาว่าภาษา VB.Net เป็น 4GL (ภาษา Generation ที่สี่)
แต่ภาษา C# ถูกวางเป็น 3GL กว่าๆ คือสูงกว่า 3GL เช่น C++ แต่ไม่ถึง 4GL

ถ้าเอาความอย่างที่ Microsoft วาง position ไว้
ภาษา VB .Net เป็น task-oriented
ภาษา C# .Net เป็น code-focused

ถ้าเอามาสร้าง application ทางธุรกิจ ภาษา VB.Net จะเป็นตัวเลือกที่ยอดเยี่ยม
อย่างปฏิเสธไม่ได้ เนื่องจากแทนที่โปรแกรมเมอร์จะไม่ต้องคำนึงถึง
เรื่องลึกๆ ที่เรียนกันในวิชาของพวก computer science กันบ่อยๆ
จึงเรียกว่ามี productivity ดี เพราะเอาเวลามาสร้างงานเลย

แต่นั่นก็เป็นอีกเหตุผลหนึ่งว่า ถ้าใช้ C# ศัพท์แสงในเนื้อภาษา
จะเป็นศัพท์แบบที่ใช้ในวงการ computer science 
เช่น abstract, static เป็นต้น ซึ่งจะจำเป็นถ้าต้องมีการใช้เครื่องมือ
อย่างพวก Rational Rose หรือ Modeling tools อื่นๆ 

 

 

 

ที่มา https://www.greatfriends.biz

ไอทีจีเนียส เอ็นจิเนียริ่ง (IT Genius Engineering) ให้บริการด้านไอทีครบวงจร ทั้งงานด้านการอบรม (Training) สัมมนา รับงานเขียนโปรแกรม เว็บไซต์ แอพพลิเคชั่น งานออกแบบกราฟิก และงานด้าน E-Marketing ที่กำลังได้รับความนิยมในปัจจุบัน ทั้ง SEO , PPC , และ Social media marketting

ติดต่อเราเพื่อสอบถามผลิตภัณฑ์ ขอราคา หรือปรึกษาเรื่องไอที ได้เลยค่ะ

Line : @itgenius (มี @ ด้านหน้า) หรือ https://lin.ee/xoFlBFe
Facebook : https://www.facebook.com/itgeniusonline
Tel : 02-570-8449 มือถือ 088-807-9770 และ 092-841-7931
Email : contact@itgenius.co.th
user
โดย Admin ITGenius
เข้าชม 16,692 ครั้ง

คำค้นหา : ภาษา VB.Netสร้าง application ทางธุรกิจดูข้อดีของ Visual Basic .Netภาษา C#.Net