ทำไมต้องเรียน C# ล่ะ
เอาแบบย่อๆ เรียนกันไปไม่ต้องยากเย็น งานมันต้องทำหลายๆ ระบบ ตั้งแต่มือถือไปยันเดสก์ท็อป เลยต้องมาลองศึกษากันดูว่า ไอเจ้า C# นี่มันจะเป็นภาษาที่ครองได้กว้างขวางกันขนาดนั้นเพราะอะไร ใบ้ให้ครับ คุณทำแอพบน Windows platform ก็ชัดเจนว่า C# ในนามของ .NET มันรู้กันอยู่แล้วว่าคืออะไร แต่พอไป iOS และ Android หลายๆ ท่านอาจจะไม่ทราบว่ามันมี MonoTouch และ MonoDroid แล้วผนวกกับเจ้า Windows 8 RT/Windows Phone 8 ก็แน่นอนว่าใช้ C# เขียนได้แน่ๆ ก็เลยอยากศึกษาไป เขียนบล็อกไป ใครเข้ามาอ่านแล้วรู้เรื่องได้ประโยชน์ก็ดีครับ ยินดีด้วย ส่วนที่อ่านแล้วไม่รู้เรื่อง ก็แนะนำให้หาหนังสือหรือวิดีโออื่นๆ มาอ่าน เพราะไอผมเองก็ไม่ได้ชำนาญอะไรกับภาษานี้ครับ (ฮา)
ว่าแต่ C# มันคืออะไร
เป็นภาษาครับ ภาษาโปรแกรมมิ่งที่คิดขึ้นมาโดย บ.ไมโครซอฟต์ ในยุคที่ต้องแข่งขันกับ Java Platform จาก Sun Microsystem ที่ตอนนี้กลายเป็นส่วนหนึ่งของ Oracle ไปแล้ว ออกแบบมาให้มันโมเดิ้น เป็นภาษาระดับสูง ไม่จำเพาะกับเรื่องใดเรื่องหนึ่้ง และเป็นภาษาแบบ OOP โดยทำงานอยู่บน .NET framework ดังนั้นไอโปรแกรมที่เขีนมาก็ต้องมี .NET framework runtime ติดตั้งบนเครื่องไปก่อนจะรันโปรแกรมที่เขียนจาก C# ได้ เหมือนกับเขีนโปรแกรมมาจาก Java ก็ต้องมี Java Runtime Environment ติดตั้งไว้ก่อน
ว่ากันตามตรง หลายๆ ส่วนทางด้านภาษา คนออกแบบก็ได้ออกแบบไว้ทันสมัยมากกว่าภาษาที่มาก่อนอย่าง Java แต่ก็ขึ้นกับผู้ใช้ว่าจะใช้ให้ชำนาญได้ขนาดไหน และการนำไปใช้ก็ทำได้ตั้งแต่ Console app, Desktop app, Web app, Mobile app, Game บน PC + XBox
อะไรคือ Mono
Mono Project เป็นโครงการที่นำเอา spec ของ .NET framework และ ภาษา C# ซึ่งได้เปิดเผยมาตรฐานและให้ใครนำไปใช้ประยุกต์ทำภาษาที่รันบน .NET framework ได้ (เช่นภาษา Boo script) และโครงการนี้ก็เคยได้รับการสนับสนุนจาก Novell ต่อมาภายหลังที่ Novell ไม่ค่อยจะกำไรมาก ทีมทำก็เลยขอแยกออกมาทำเป็นบริษัท Xamarin เองแทน และเน้นไปที่ MonoTouch + MonoDroid พร้อมๆ กับมีหลายๆ โครงการที่นำไปสนับสนุนออกมาเป็น MonoGame, MonoMac ตัวอย่างด้านหนึ่งก็คือโปรแกรม Unity 3D ที่เป็นทั้ง Game Engine และ Game Design Environment ซึ่งพัฒนาด้วย Mono framework บน Mac OS X ซึ่งในภายหลังก็มีบน Windows ด้วย มันสามารถ port เกมส์ไปลงได้ตั้งแต่ Mobile ไปถึง Console เลยทีเดียว
ดังนั้น ท่านทั้งหลายก็น่าจะเห็นภาพว่า ภาษา C# มันแพร่หลายไปพร้อมๆ กับการขยายฐานผู้ใช้และซอฟต์แวร์บน .NET / Mono framework ที่ทันสมัยมากขึ้นเรื่อยๆ เลยเป็นเหตุให้ผมต้องมาศึกษา C# + .NET / Mono นั่นเอง
