ไมโครซอฟท์อธิบายยุทธศาสตร์การพัฒนาภาษาโปรแกรม .NET ทั้งสามตัว ได้แก่ C#, Visual Basic และ F#
ที่ผ่านมา ไมโครซอฟท์ใช้นโยบายให้ความสำคัญกับ C# และ Visual Basic เท่ากัน มีฟีเจอร์ใหม่ทัดเทียมกัน แต่รอบนี้ ไมโครซอฟท์บอกว่า C# ถือเป็นภาษาโปรแกรมกระแสหลัก จับตลาดกว้างกว่า ในขณะที่ Visual Basic เน้นการใช้งานสำหรับภาคธุรกิจ การสร้างแอพพลิเคชันบนวินโดวส์ และเป็นภาษาฝึกหัดสำหรับคนเริ่มเขียนโปรแกรม ส่งผลให้ต่อจากนี้ไป C# จะถูกให้ความสำคัญมากเป็นอันดับหนึ่ง ในขณะที่ VB 15 จะได้ฟีเจอร์ใหม่บางอย่าง แต่ไม่ใช่ทั้งหมดเท่ากับ C# 7.0 ได้
ส่วน F# เป็นภาษาใหม่ที่ยังมีความสามารถหรือประสบการณ์ใช้งานไม่ทัดเทียม C# กับ VB แต่ก็มีจุดเด่นที่ชุมชนเข้มแข็ง ใช้งานได้หลากหลาย เป้าหมายของไมโครซอฟท์ใน F# 4.1 จะพัฒนาเครื่องมือสำหรับ F# ให้ดีขึ้น ทำงานร่วมกับ Visual Studio และ .NET Core/Standard ได้ดีขึ้น
ที่มา - .NET Blog, ภาพจาก @MartinWoodward
Comments
ให้เหลือC#ก็พอละมั้งขี้เกียจเรียนรู้
ผมก็ตายสิ VB.NET ผมถนัดที่สุดและยังเรียนไม่ถึงไหน ยังอยากรู้อีกเยอะ
แล้วถ้าตัดเหลือ C# อย่างเดียว ผมก็แย่สิ ขนาดแค่ C++ บน Turbo C ผมยังได้แค่เกรด 2
ขอแชร์ประสบการณ์ครับ
ผมเริ่มต้นด้วย VB6 จนมาเป็น VB.NET ระหว่างทางก็ฝึกพื้น C JAVA Python มาบ้าง
จนกระทั่งเริ่มมีความคิดอยากเปลี่ยนมาเป็น C# บ้าง เพราะเวลาหาข้อมูลทีไร เจอแต่ C# มากกว่า VB
พอเปลี่ยนมาเป็น C# แล้วรู้สึกว่าไม่ยากอะไรนัก มันคือ C+JAVA นี่เอง
แต่สิ่งที่อยากมากสำหรับผม คือการเปลี่ยนจาก Win32App เป็น UWP
ตัวผมเองก็พอเข้าใจ XAML อยู่บ้าง แต่ต้องมาทำงานที่เน้นความสวยงาม เอนิเมชันเล็กๆน้อยๆ ผมนี่แทบจะบ้าตายเลยทีเดียว
ไม่ห่วงไปครับ ผมก็ VB -> C# ไม่พบว่าโค๊ดมันต่างกันแค่การประกาศตัวแปรกับการใช้ปีกกาเื่านั้นแค่เอง(เทียบง่ายๆ) โค๊ดอ่านแทนกันได้เลยครับอย่าไปกังวลที่จะลอง C# ครับ พวกอ้างอิงต่างๆเขาก็ทำมาทั้งสองเวอร์ชั่นเปรียบเทียบได้ เมื่อก่อนผมเคยคิดแบบนั้นแต่พอลองสักครั้งดูตอนนี้อ่านตัวไหนก็ได้ทั้งคู่ละ
อาจจะติดขัดแรกๆ เรื่องของลักษณะ syntax ระหว่างแบบปีกกากับแบบ Begin/End
แต่ส่วนที่เหลือก็ไม่ได้ต่างกันจนลำบากเกินไปครับ
ลองเริ่มจากแปลงโค้ดโปรแกรมที่มีอยู่เป็น C# ค่อยๆทำไปเดี๋ยวก็ชินครับ
Code VB.NET กับ C# นี่ แทบจะเขียนแปลงกันได้เลยนะครับ ต่างกันไม่เยอะจริง ๆ
ตอนเรียนผมทำโปรเจคส่งด้วย VB.NET นะ แต่สุดท้ายมาทำงานด้วย C#
และ C++ ไม่เหมือน C# นะครับ C# ง่ายกว่า
ถ้าบางคนเริ่มเขียนโปรแกรมโดยพื้นฐานเริ่มมาจาก OOP เลย พอไปเห็นโค๊ด VB ที่โครงสร้างไม่บังคับ จะมึนมากครับ
ใช่เลย ผมเรียน Java มาก่อน จากนั้นมา C# นี่รักเลย พอเจอ VB ผมนี่เกลียดเข้ากระดูกดำ
VB.NET สิครับถึงมีโครงสร้าง VB ธรรมดามันโบราณมากแล้ว
เรียนรู็ไว้หลายๆภาษาก็ดีนะครับ เดี๋ยวนี้ภาษาใหม่ๆมีประโยชน์ออกมาให้ใช้เรื่อยๆ
ไม่ใช่แค่ภาษานะ Framework ต่างๆจะช่วยให้เราทำงานได้ดีขึ้น มากขึ้น สะดวกขึ้น และที่สำคัญ ไวขึ้นครับ
ผมไม่ได้สนับสนุนให้ยกเลิกการพัฒนาภาษาใดภาษาหนึ่งให้ค่อยๆตายจากไปนะ แต่ถ้าข้อมูลที่มีมันสนับสนุนด้านที่ดี ก็ควรพัฒนามากขึ้นครับ
จุดประสงค์อย่างนึงของ .NET ก็คือให้โปรแกรมเมอร์ที่ถนัดภาษารูปแบบใดแบบหนึ่งสามารถเขียนบน Framework เดียวกันได้ โดยไม่ต้องเรียนรู้ภาษาใหม่
ซึ่งที่ผ่านมาก็พอจะแบ่งเป็น C-Like(นิยมสุดแล้วมั้งนะครับ) และ Basic (ก็มาตั้งแต่ DOS เดิมรวมถึงที่เขียน VB6)
และเด๋ซนี้ก็จะมีแบบ Functional Programming ซึ่งผมเข้าใจว่ามันก็มาในรูปแบบของ F#
Syntax แต่ละแบบมีข้อดีข้อเสียต่างกันไป ถ้าสามารถเลือกใช้งานได้มันย่อมดีกว่าครับ
ส่วนผม จะใช้ C# ในการเขียน Business ต่าง ๆ และเขียน VB เฉพาะ UI ครับ ซึ่งทำ Event Handler ได้ง่ายกว่า
ส่วน F# ผมเขียนไม่เป็นเลยข้ามครับ T T
ดี ฉีกไปเลยจะได้ไม่มีปัญหากัน
อย่าง Apple ก็เอาSwit มาแทนOpject-C ละให้เหลือภาษาเดียวจะได้เปนมาตรฐานไปเลยไม่วุ่นวาย อ่านง่ายด้วย
VBA หรือ Visual Basic for Application มันผูกติดกับ Microsoft Office มาตั้งแต่ต้นก็เลยได้ไปต่อครับ เพราะมันตัดออกยากมาก
ส่วนเรื่องของ C# มาก่อน VB ผมว่าเป็นเรื่องของโครงสร้างภาษามากว่า เรื่อง Framework หลักๆน่าจะเรียกใช้ได้ง่ายๆ และไม่ต่างกันมาก
ตามความเห็นผมภาษาที่น่าจะมาเทียบเคียงกับ C/C++ น่าเป็น C# นี่แหละ(เป็นไปได้น้อยมากๆๆๆ)เพราะมันไม่ยากเท่ากับ C/C++ และสามารถนำไปเป็นแกนกลางหลักของ OS แทน C/C++ ได้
เห็นด้วยกับแนวทางนี้ครับ
VB น่าจะเน้นไปทางมือใหม่มากกว่า ถ้าเอาแค่พื้นๆ ผมว่าเขียนง่ายกว่า (่เช่น ไม่ต้องระวัง semi colon เป็นต้น)
C# น่าจะเป็นตัวหลักที่ใช้ดึง dev ภายนอกเข้ามาใช้ .NET เพราะคนเขียน java, php, js, c จะปรับตัวเข้ากับ code ได้เร็วก่า
F# นี่ก็ประมาณว่าเราควรมี functional programming กะเค้าบ้าง จะได้ครอบคลุม
VB น่าจะโดนทิ้งแหละ
ถ้าจำไม่ผิดเหมือนตอน .net core จะออกใหม่ ๆ
บอกว่าไม่ support vb เห็นมีดราม่ากัน จนต้องออกมาบอกว่า support ทีหลังโดนดอง
reference ก็หายาก ตัวอย่างในเวปก็หายากน่าจะเลิก ๆ ใช้แค่ C# กับ F#
ส่วนตัวผมคือว่าควรทิ้ง และควรทิ้งนานแล้วด้วยครับ
แต่ก็เข้าใจความลำบากใจของ MS ในระดับหนึ่ง
เพราะตอนขึ้น .NET Framework 1 นี่ชุมชน C# ยังไม่แข็งแรงมาก (ของใหม่ก็งี้)
MS เองก็มีฐานลูกค้า VB 6.0 เยอะ เลยไม่กล้าหักดิบเปลี่ยนมาเป็น C# ทันที
กลายเป็นว่าในกลุ่ม .NET Dev เองก็มีความไม่ราบลื่นเวลาทำงานด้วยกัน
คนทำ VB ก็สลับมาช่วย C# ยาก และ C# สลับไปช่วย VB ยาก
สุดท้ายต้องตัดปัญหาด้วยการทำโปรเจคเดียวภาษาเดียว เลือกเลยว่าจะ VB หรือ C#
MS คงบอนไซ VB ไปทีละนิดๆ ค่อยๆบีบให้ข้ามมา C#, F# ไปเรื่อยๆแล้วค่อยทิ้ง VB แหละครับ