วันอังคารที่ 16 มิถุนายน พ.ศ. 2558

WEEK 4 : โปรแกรมภาษาคอมพิวเตอร์[ภาษาซีชาร์ป (C#)]

ภาษา C#  (ภาษาซีชาร์ป)


สวัสดี สวีดัส ครับ ครั้งนี้ก็เป็นครั้งที่ 4 แล้วนะครับที่ผมเขียนบล็อกนี้  และในครั้งนี้นะครับผมจะมานำเสนอเกี่ยวกับภาษาของคอมพิวเตอร์นะครับและภาษาที่จะนำมาเสนอวันนี้ก็คือ

ภาษาซีชาร์ป  C# 

ว่าแต่ภาษาซีชาร์ปคืออะไรกันนะ ???? งั้นเรามาทำความรู้จักภาษา ซีชาร์ปกันครับ

ภาษาซีชาร์ป (C#) คือ ภาษาคอมพิวเตอร์ประเภท  object-oriented programming พัฒนาโดย  Microsoft โดยมีจุดมุ่งหมายในการวมความสามารถการคำนวณของ C++ ด้วยการโปรแกรมง่ายกว่าของ Visual Basic โดย C# มีพื้นฐานจาก C++ และเก็บส่วนการทำงานคล้ายกับ Java 
     C#
ได้รับการออกแบบให้ทำงานกับ .NET platform ของ Microsoft จุดมุ่งหมายคือ อำนวยความสะดวกในการแลกเปลี่ยนสารสนเทศและบริการผ่านเว็บ และทำให้ผู้พัฒนาสร้างโปรแกรมประยุกต์ในขนาดกระทัดรัด C# ทำให้โปรแกรมง่ายขึ้นผ่านการใช้ Extensible Markup Language (XML) และ Simple Object Access Protocol (SOAP) ซึ่งยอมให้เข้าถึงอ๊อบเจคของโปรแกรมหรือเมธอด โดยปราศจากความต้องการให้ผู้เขียนโปรแกรมเขียนคำสั่งเพิ่มในแต่ละขั้นตอน เนื่องจากผู้เขียนโปรแกรมสามารถสร้างบนคำสั่งที่มีอยู่ แทนที่การคัดลอกซ้ำ C#  ภาษา C# ถูกพัฒนาขึ้นโดยเป็นส่วนหนึ่งในการพัฒนาโครงสร้างพื้นฐานของ .NET Framework เป็นการการนำข้อดีของภาษาต่างๆ (เช่นภาษา Delphi , ภาษา C++) มาปรับปรุงเพื่อให้มีความเป็น OOP (โปรแกรมเชิงวัตถุ) มากขึ้น ขณะเดียวกันก็ลดความซับซ้อนในโครงสร้างของภาษาลง (เรียบง่ายกว่าภาษา C++) และมีสิ่งที่เกินความจำเป็นน้อยลง (เมื่อเทียบกับ Java)
     C#
ถูกรับรองจากหน่วยงาน ECMA (หน่วยงานกำหนดมาตรฐานสากลด้านสารสนเทศ) และ ISO และปัจจุบันไมโครซอฟท์ยังพัฒนาภาษานี้อย่างต่อเนื่อง (ปัจจุบันเป็นเวอร์ชัน 3.0)


แล้วใครที่เป็นคนสร้างภาษา C#

ผู้สร้างภาษา C# คือบริษัทไมโครซอฟท์ แต่บิดาของภาษา C# คือ Anders Hejlsberg
(
แอนเดรส ฮาเยสเบิร์ก) ไมโครซอฟท์ต้องการให้ภาษา C# เป็น อะไรที่จะอยู่ไปอีกนานเหมือนบริษัทรถยนต์โฟลค์ที่จ้าง Ferdinand Porsche (เฟอร์ดินันด์ พอร์ช) นักออกแบบรถยนต์มือดีมาออกแบบรถโฟลคเต่า (เป็นเหตุการณ์ที่เกิดขึ้นก่อนสงครามโลกครั้งที่สอง) ทำให้มันกลายเป็นรถยนต์คลาสสิกมาจนถึงปัจจุบัน ในทำนองเดียวกันเมื่อต้องการภาษาที่ต้องการให้กลายเป็นภาษา คลาสสิกบริษัทไมโครซอฟท์ตัดสินใจมอบหมายให้ Hejlsberg บรมครูนักออกแบบภาษา ผู้เคยสร้างภาษาที่กลายเป็นตำนานมาแล้วเช่น Turbo Pascal และผู้นำในทีมสร้างภาษา Delphi
ใครๆ ก็สร้างภาษาใหม่ได้ไม่ยาก แต่ภาษาที่ดีจริงๆ นั้นเป็นอีกเรื่องหนึ่ง สำหรับภาษา C# Hejlsberg ไม่เพียงสร้างภาษาที่ใช้งานได้ดีเท่านั้น เขายังเน้น ความมีรสนิยมและ ความสง่างามเพราะต้องการให้โปรแกรมเมอร์เขียนโปรแกรมภาษา C# ได้อย่างมีความสุข
Anders Hejlsberg บิดาของภาษา C#

เปรียบเทียบภาษา C# กับภาษาอื่นๆ
     1.ถ้าพูดถึงความใกล้เคียงกับภาษาอื่นๆ ภาษา C# ใกล้เคียงกับภาษา Java มากที่สุด โดยมีความเหมือนกันถึง 70% ดั้งนั้นนักเขียนโปรแกรมภาษา Java จึงอาจย้ายมาเขียนภาษา C# ได้โดยศึกษาว่ามีสิ่งใดที่แตกต่างกันบ้าง ภาษา C# ยังมีความคล้ายคลึงกับภาษ C++.NET และภาษา VB.NET เป็นอย่างมาก ทำให้นักเขียนโปรแกรมภาษา C# สามารถอ่าน-เขียนโค้ดในภาษากลุ่มนี้ได้เมื่อฝึกฝนเพียงเล็กน้อย
     2.C# และภาษา Java ทั้งคู่เป็นแบบสืบจากคลาสหลักได้คลาสเดียว ขณะที่ภาษา C++ สามารถสืบจากคลาสหลักได้มากกว่าหนึ่ง (Multiple inheritance) โดยภาษา C# และภาษา Java ใช้ Interface มาทดแทน Multiple inheritance เหมือนกันทั้งคู่
     3.สิ่งที่ภาษา C# และ Java มีร่วมกันคือเรื่อง Garbage Collection แต่ไม่มีใน C++ จึงทำให้ดูเหมือนว่าภาษา Java ต่อยอดมาจากภาษา C++ และ C# ต่อยอดมาจาก Java อีกที ที่เป็นเช่นนั้นเพราะทั้ง Java และ C# มีต้นสายมาจาก C++ ทำให้สองภาษานี้ดูคล้ายกัน แต่ภาษา C# ไม่ใช่ภาษา Java มันมีกลไกที่เป็นเอกลักษณ์หลายอย่าง เช่น พารามิเตอร์แบบ reference และ output การจัดเก็บ object ไว้ใน stack (struct) การทำ Versioning และยังมีสิ่งใหม่ๆ ที่เป็นข้อดี เช่น delegate, properties และ operator overloading ซึ่งจะไม่พบในภาษา Java


จุดเด่นของภาษา C#


เป็นรูปแบบของภาษาที่ทำงานเป็นลำดับ(Sequential)และต้องผ่านการแปลงไฟล์ให้อยู่ในรูปแบบ
พร้อมใช้งานหรือ EXE file (ที่เรียกว่าการ Compile) เช่นเดียวกับภาษา C โดย C# เป็นภาษาที่ถูกผลักดัน
โดยบริษัทไมโครซอฟท์ให้ออกมายิ่งใหญ่โดยมีจุดเด่นดังนี้

1.Component oriented - เป็นภาษาที่เน้นชิ้นส่วนโดยถูกออกแบบมาเป็นอย่างดีทำให้สามารถนำมาใช้ต่อกันเป็นอะไรก็ได้

2.เป็นภาษา ที่ทนทาน (robust) - ทนต่อความผิดพลาด ไม่ทำให้ระบบแฮงก์หรือระบบทำงานช้า เพราะ C# มีข้อดีคือ garbage collection , exception , type-safety และ versioning

3.ภาษา C# จัดเตรียมกลไกไว้หลายอย่างที่ช่วยให้ผู้เขียนโปรแกรมสามารถนำโค้ดที่เขียนไว้ใน ?โปรเจค? หนึ่งไปใช้กับอีกโปรเจคหนึ่งได้ง่าย นอกจากนั้นภาษา C# ยังสามารถเรียกใช้คลาสหลายพันคลาสใน .NET Framework ได้โดยตรง ทำให้ลดเวลาการพัฒนาซอฟท์แวร์ได้มาก

4.เขียนคล่อง C#มีเครื่องมือในการช่วยเขียนอย่าง Visual Studio ที่มีฟีเจอร์ในการไฮไลท์โค้ด และส่วนช่วยในการเขียนโปรแกรมที่สะดวกมาก

5.เขียนง่ายจุดเด่นของตัวแปรและอ๊อบเจ็กต์บน C# เด่นชัดในเรื่องของการจัดการคุณสมบัติ (Properties) และการตั้งค่าเริ่มต้นที่ช่วยให้สามารถพัฒนาระบบได้สะดวกรวดเร็วขึ้น 

6.อ่านง่าย การจัดระเบียบโดยตัว Visual Studio เป็นส่วนที่ผมชอบที่สุดเลยก็ว่าได้ คุณเขียนโค้ดไปซักพักหนึ่ง จะเริ่มรู้สึกลายตากับย่อหน้าที่งงๆ แต่ Visual Studio โดยปกติเมื่อจะจัดการกับย่อหน้าทั้งหมดเหล่านั้นให้อยู่ในระเบียบสะอาดตาที่สุดเลยทีเดียว

7.เป็นอ็อบเจ็กต์ เนื่องจากภาษา C# นั้นมีแม่แบบมาจากภาษา Java ซึ่งจุดเด่นคือการทำทุกสิ่งให้เป็นวัตถุ (Object) ทำให้สามารถเขียนและพัฒนาได้ง่าย

8.ประสิทธิภาพสูง C# เป็นภาษาที่พัฒนาขึ้นมาภายใต้ .NET Framework ซึ่งสามารถดึงเอาความสามารถของเทคโนโลยีบน .NET ออกมาใช้ได้อย่างเต็มประสิทธิภาพ

9.สามารถทำงานระดับลึก ภาษา C# สามารถทำงานกับหน่วยความจำรวมถึงระบบคอมพิวเตอร์ในระดับลึก โดยผ่าน พอยเตอร์ (Pointer) หรือทำงานกับโปรโตคอล TCP/IPที่ต่ำกว่าระดับ4ได้

10.เน้นที่ XML C# ออกแบบมาเพื่อใช้งานร่วมกับXMLได้อย่างราบรื่นที่สุดด้วยความช่วยเหลือของ .NETFramework

11.คุณสมบัติGeneric type ช่วยยืดหยุ่นในการประกาศตัวแปล

12.เทคโนโลยี LINQ ช่วยในการทำงานกับฐานข้อมูลได้อย่างมีประสิทธิภาพ

เป้าหมายการใช้งาน

ภาษา C# เป็นภาษาที่มีต้นกำเนิดมาจากภาษา C เช่นเดียวกับ C++ และถูกพัฒนาขึ้นโดยเป็นส่วนหนึ่งในการพัฒนาโครงสร้างพื้นฐานของ .NET Framework ซึ่งเป็นการนำข้อดีของภาษาต่างๆ เช่น Delphi , C++ มาปรับปรุงเพื่อให้มีความเป็น OOP อย่างถึงที่สุด ขณะเดียวกันก็พัฒนาให้มีความเรียบง่ายกว่าภาษา C++ นอกจากนี้ ภาษาC# ใช้การเขียนโปรแกรมที่ซับซ้อน เช่น โปรแกรมควบคุมฮาร์ดแวร์ และโปรแกรมเกมสามมิติ เพราะ .NET จะมีภาษาให้เลือกใช้หลายสิบภาษา แต่ภาษา C# เป็นพื้นเมืองของ .NET เมื่อค้นใน web จะพบข้อมูลและตัวอย่างโค้ดเป็นภาษา C# มากกว่าภาษาอื่น 



ตัวอย่างการเขียน C#


ตัวอย่างต่อไปนี้ คือตัวอย่างโปรแกรม Hello world ใน C#:

public class ExampleClass
{
    public static void Main()
    {
        System.Console.WriteLine("Hello, world!");
    }
}


ผลของการทำงานคือมีการแสดงคำว่า Hello, world! ในหน้าต่างคอนโซล โดยในแต่ละบรรทัดมีความหมายดังนี้:

public class ExampleClass


บรรทัดนี้คือการประกาศ Class, public หมายถึงวัตถุที่สร้างในโครงการ (Project) อื่นๆ สามารถเข้าใช้งาน Class นี้ได้ ไม่จำกัด. ข้อมูลต่างๆ ที่อยู่ผ่านใต้หน่วยของบรรทัดนี้ จะใช้ในการทำงานของ Class นี้

public static void Main()


บรรทัดนี้เป็นจุดที่ใช้ในการเริ่มการทำงานของโปรแกรม เมื่อโปรแกรมทำงาน โดยสามารถเรียกใช้จากโปรแกรมอื่นได้โดยการใช้ไวยากรณ์ ExampleClass.Main() . (public static void เป็นส่วนที่ใช้ในการทำงาน ซึ่งต้องเรียนรู้ในการเขียนขั้นสูง)

System.Console.WriteLine("Hello, world!");


ในบรรทัดนี้ เป็นการทำงาน เพื่อแสดงผลออกมา Console คือโปรแกรมระบบ, ซึ่งก็คือ โปรแกรมระบบแบบสั่งคำสั่งที่ละบรรทัด (เช่น DOS) ที่สามารถรับข้อมูลและแสดงผลเป็นข้อความได้. จากที่เราเขียนโปรแกรมจะทำการเรียก Console โดยใช้คำสั่ง WriteLine, ซึ่งทำให้สามารถส่งค่าข้อความออกมาแสดงผลได้

และนี่ก็เป็นภาษาซีชาร์ปที่เราเอามานำเสนอกันในวันนี้ครับ หากมีอะไรที่อยากให้เพิ่มเติมบอกได้ในคอมเม้นเลยนะค้าบ 

ขอบคุณที่เข้ามาอ่านบล็อกนะค้าบบบ

แหล่งอ้างอิง


2 ความคิดเห็น: