จริง ๆ ไม่ค่อยอยากอัพเรื่อง Programming เท่าไหร่ เพราะสำหรับใน Exteen เรื่องแนวนี้มักขายไม่ออก แต่คนมันอยากเขียน ช่วยไม่ได้ ต้องยอมรับสภาพ

หลังจากเริ่มเล่น C# แบบหันกลับไปมอง VB(.net) เป็นระยะ ๆ ก็พบความต่างของทั้งสองมากขึ้นเรื่อย ๆ นอกจากตัวภาษาแล้ว IDE ที่หน้าตาเหมือนกันเป๊ะนั่นยังแอบซ่อนความต่างไว้ลึก ๆ (จริง ๆ ตื้นมาก) ส่วนของ Code Editor นี่ไม่พูดถึงแล้ว วันนี้ผมมาเพื่อแงะ Project Properties โดยที่กล่าวถึงทั้งหมดมาจาก VB 2005 Express และ VC# 2005 Express นะครับ (2008 ยังไม่ได้เอามาเล่น)

Project Properties

จริง ๆ ไม่รู้ผมเรียกมันถูกรึเปล่า เพราะปกติมันจะอยู่ในเมนู Project ในไอเท็มที่มีชื่อเดียวกับชื่อ Project แล้วตามด้วยคำว่า Properties ซึ่งเมนูนี้มันเอาไว้ปรับแต่งหลาย ๆ อย่างใน Project ของเรา รายละเอียดอันนี้ต้องลองเข้าไปดูจะรู้เอง

แรก ๆ ผมก็นึกว่าตรงส่วนนี้ของ VB 2005 และ VC# 2005 จะเหมือนกัน ที่ไหนได้มันต่างกันครับ แถมเป็นตัวบ่งบอกเอกลักษณ์ของแต่ละภาษาได้ดีเลยล่ะ

หน้า Application - ตรงนี้ไว้ใช้กำหนด ชื่อ, ไอค่อน, Startup Object และ Assembly Information (พวกชื่อบริษัท เลขเวอร์ชั่น บลา ๆ ๆ) ซึ่งใน C# ก็มีแค่นั้นล่ะ แต่ของ VB ดันมีของพวกนี้เพิ่มเข้ามา (ดูภาพด้านล่าง)



มันคือ application framework properties นี่ล่ะครับ ดูจากตัวหนังสือในภาพก็คงรู้ว่ามันมีไว้ทำอะไร ซึ่งของพวกนี้นั้นใน VC# เราต้องเขียนเอง (หรือไปหา Class ชาวบ้านมาใช้) แต่ VB เตรียมไว้ให้เราแล้ว แค่คลิ้กเดียวเท่านั้น ยกตัวอย่างเช่น Make single instance application ที่ใช้บังคับให้เปิดโปรแกรมได้ชุดเดียวนั่น ส่วนของ C# ต้องเขียนกันเอง (เท่าที่หาดูมีอันนึงใช้วิธีเรียก Class ของ VB มาใช้...) วิธีง่าย ๆ (แต่ยังไม่ได้ลอง) ก็มีแบบนี้
    Process aProcess = Process.GetCurrentProcess();
string aProcName = aProcess.ProcessName;

if (Process.GetProcessesByName(aProcName).Length > 1)
{
MessageBox.Show(
"The application is already running!!","Test",
MessageBoxButtons.OK,MessageBoxIcon.Stop);
Application.ExitThread();
}
จากความต่างจุดนี้ก็เห็นได้ชัดแล้วว่า VB ถูกวางไว้ให้เป็นเครื่องมือที่เน้นการสร้าง Application อย่างด่วนจริง ๆ


หน้า Compile/Build -
ที่ต้องแบ่งเป็น 2 ชื่อนี่ก็เพราะว่าเจ้าหน้านี้ใน VB ดันเรียก Compile แต่ใน C# ดันเรียก Build (ทั้ง ๆ ที่ทั้งคู่มีเมนู Build เหมือนกัน) ตรงนี้ของ VB กับ C# นี่ต่างกันแบบคนละเรื่องเลย (สมชื่อ) แต่ตรงนี้คนเขียน VB ควรจะเข้ามาเพราะเป็นการปรับความเข้มงวดของภาษา เช่น Option explicit (บังคับให้ประกาศตัวแปรก่อนใช้) Option strict (บังคับให้แปลงขนิดของตัวแปรทุกครั้ง) และเปิดปิดการแจ้งเตือนอื่น ๆ ส่วน C# นั้นต้องขอยอมรับว่าผมมึนกับตัวเลือกของมันมาก ๆ โดยรวมก็คล้าย ๆ กันคือกำหนดการแจ้งเตือนต่าง ๆ แต่มีที่พิเศษเพิ่มมาก็คือ...



Optimize code นี่ล่ะ จุดนี้ทำให้เห็นได้ชัดว่า C# ถูกกำหนดมาให้เน้นเรื่องประสิทธิภาพจริง ๆ .
 


หน้า References - หน้านี้ต้องบอกว่า VB กินขาดครับ เพราะใน VB หน้านี้จะเป็นตัวจัดการ References เบ็ดเสร็จในหน้าเดียวเลยทีเดียว ที่พิเศษสุด ๆ ก็คือปุ่ม Unused References ... ที่ใช้แสดง References ที่ยังไม่ได้ถูกใช้ใน Project ของเรา ให้เลือกเอาออกได้อย่างง่ายดาย สำหรับ C# หน้านี้จะให้คุณได้แค่กำหนด References Path เท่านั้น ที่เป็นเช่นนี้คงเพราะว่า VC# โชว์ References เป็นปกติใน Solution Explorer อยู่แล้วนั่นเอง (VB ปกติจะซ่อนไว้)

 


ก็หมดแล้วล่ะครับ อาจตกหล่นอะไรไปบ้างก็ช่างเถอะ แต่ดูแล้วจะเห็นว่า VB นั้นง่ายกว่า C# อย่างเห็นได้ชัด หลายอย่างมีการจัดการให้เสร็จสรรพไม่ต้องไปหาที่ไหน แต่นั่นทำให้ VB มีโค้ดซ่อนหูซ่อนตาเราอยู่ค่อนข้างเยอะทีเดียว เนื่องจาก VB เน้นการสร้าง Application มากกว่าจะให้สนใจว่าอะไรอยู่ข้างใน (แต่สนสักหน่อยก็ดีนะเพื่อประสิทธิภาพ)

ส่วน C# นี่มันค่อนข้างเปิดเผย ดูแล้วจริงใจดี และยังสอนให้เราเข้มงวดกับการเขียนโปรแกรมมากขึ้น แต่โดยส่วนตัวผมไม่ค่อยชอบปีกกาเท่่าไหร่เพราะเหตุผลง่าย ๆ คือเวลาพิมพ์มันต้องกด Shift น่ะสิ ซ้ำยังเป็น case sensitive อีกทำให้เวลาเจออะไรที่มีตัวพิมพ์ใหญ่อยู่ในชื่อเราต้องกด Shift เพื่อพิมพ์มันซ้ำอีก (VB จะปรับ case ให้ถูกต้องโดยอัตโนมัติ ไม่ว่าเราจะพิมพ์ยังไง)

หลังจากลองเขียน Code สั้น ๆ ทั้ง VB และ C# ดูก็พบว่า C# ต้องใช้เวลานานกว่าถึง 3 เท่า แถมมักจะรันครั้งแรกไม่ผ่านอีกต่างหาก (มักจะรันผ่านตอนครั้งที่ 3) ส่วนตัวก็ยังยันคำเดิมว่ายังรัก VB มากกว่า แม้ความนิยมมันจะลดลงเรื่อง ๆ ก็เถอะ

แถม : Google Trends - VB vs C#


edit @ 2007/09/03 15:44:05
edit @ 2007/09/03 15:53:38
edit @ 2007/09/03 23:25:41
edit @ 2007/09/06 01:42:22

Comment



smilebig smileopen-mounthed smileconfused smilesad smileangry smiletonguequestionembarrassedsurprised smilewinkdouble winkcry

code editor C# ดีกว่าหน่อย เพราะแค่พิมพ์ตัวอักษรเดียวก็ขึ้น list มาโชว์หมด ทั้งชื่อตัวแปร ชื่อคลาส snippet

vb เขียน code สั้น ๆ คงดีกว่า
แต่ไอ้ความที่ชอบแอบทำอะไรไว้ ทำให้เกิด bug ง่ายกว่า แถมยัง debug ยากกว่าเนี่ยสิ

#1 By T!D on 2007-09-03 17:38

ขายไม่ออกจิงๆด้วย เพราะเขียนภาษานี้ไม่เป็นเรยไม่เคยลองด้วยง่ะ
ตอนนี้เพิ่งจะลองภาษาซีดูเอง(ต่างกันมากมาย)
แต่ก้อพยายามอ่านแล้วนะเนี่ยแต่ก้อยังม่ะเข้าใจ 5555+
ไม่ค่อยชอบ case insensitive เท่าไหร่ เหมือนสอนให้คนมักง่ายอ่า (เคยเจอแบบ ที่นึงมีตัวเล็กตัวใหญ่ ที่นึงเล็กหมด ที่นึงใหญ่หมด ... ไม่ใช่โค๊ด VB หรอกนะ 4GL น่ะ) แต่ก็นะถ้่าทำงานผ่าน terminal แล้ว case insensitive น่าใช้กว่า แฮะๆ

ยังไงก็ชอบปีกกา ถึงแม้ว่าบางคนจะว่าเกะกะก็เถอะ

#3 By นายตาหวาน on 2007-09-04 00:09

NinkungZ View my profile


Favourites


View My Stats