รู้จักกับ Swift ภาษาที่ทำให้การเขียนแอพบน iOS, OS X ง่ายนิดเดียว

ใครที่ได้ติดตามงาน WWDC ซึ่งเป็นงานใหญ่ประจำปีของ Apple หลายต่อคนจะต้องได้ยินและสงสัยกับสิ่งที่ Apple เปิดตัวในตอนท้ายของงานนั่นคือภาษาโปรแกรม “Swift” ซึ่งเป็นการเปลี่ยนโฉมครั้งใหญ่ของการเขียนแอพ, โปรแกรมบน iOS, OS X เลยทีเดียว

ทีมงาน MacThai ได้เชิญ @iMacbaszii นักพัฒนาแอพบน iOS และผู้เขียนบล็อก Macbaszii.com ที่สอนเรื่องการเขียนแอพบน iOS มานานหลายปี ให้ความเห็นถึงภาษาใหม่อย่าง Swift นี้ว่าดียังไง, เทียบกับ Objective-C ได้ไหม และอนาคตต่อไปล่ะ

swift-announce

อะไรคือ Swift มันดียังไง ?

ภาษาโปรแกรม “Swift” เป็นภาษาโปรแกรมใหม่ที่ Apple ได้สร้างและออกแบบมาใหม่เพื่อให้นักพัฒนาใช้พัฒนาโปรแกรมบน Mac OS X และ iOS โดยในอดีตจนถึงปัจจุบันภาษาที่ใช้คือ Objective-C กลับเข้าคำถามที่ว่าอะไรคือ Swift จากที่ผมได้เกริ่นไว้ มันคือ “ภาษาโปรแกรม” งั้นผมจะลองอธิบายว่าอะไรคือ “ภาษาโปรแกรม” ก็น่าจะได้คำตอบนะครับ

swift-screenshot

ภาษาโปรแกรมเปรียบเสมือนภาษาตัวกลางที่นักพัฒนาโปรแกรมจะใช้สั่งงานคอมพิวเตอร์ เพราะมนุษย์คุยกับคอมพิวเตอร์ตรงๆ ไม่รู้เรื่อง ก็เลยต้องการภาษาตัวกลางที่เป็นภาษาที่ไกล้เคียงมนุษย์ (ที่นักพัฒนาสามารถอ่านออกเขียนได้) ทำให้เมื่อผ่านสิ่งที่เรียกว่านักแปลภาษา (Compiler) แล้วคอมพิวเตอร์ก็จะสามารถเข้าใจว่าตัวเองควรทำอะไร และ Swift ก็เป็นหนึ่งภาษาตัวกลางนั้นครับ

swift

Swift เป็นภาษาที่ออกแบบให้มีประสิทธิภาพสูงและง่ายต่อการพัฒนาโดยนำข้อดีของภาษาสมัยใหม่เข้ามามากมาย เช่น Type Inference, Clean Syntax, No semicolons, Closures, Generics ซึ่งคุณสมบติที่กล่าวมาบางอย่างก็มีอยู่แล้วในภาษา Objective-C แต่ใน Swift นั้นจะน่าคบหามากขึ้น ภาษา Swift ยังถูกออกแบบให้มีความปลอดภัยในการเขียนโปรแกรมมากขึ้น ทั้งนี้ไม่ใช่การเขียนโปรแกรมขณะขับรถแล้วจะไม่เกิดอุบัติเหตุบนถนนนะครับ แต่เป็นความปลอดภัยในเชิงของการพัฒนา ทำให้ลดข้อผิดพลาดของโปรแกรมที่พัฒนาขึ้น ยกตัวอย่างเช่น

  • ไม่อนุญาติให้มีตัวแปรที่ไม่ได้ถูกกำหนดค่าในโปรแกรม
  • ไม่ต้องเขียนสัญลักษณ์ * (Asterisk) ขณะประกาศตัวแปร Pointer
  • ตรวจสอบการใช้งานค่าต่ำสุดและสูงสุดของตัวเลขจำนวนเต็ม
  • จะต้องเขียนวงเล็บปีกกาครอบส่วนของโปรแกรมที่อยู่ภายใต้เงื่อนไขใดๆ

ด้วยลักษณะที่เป็นภาษาสมัยใหม่ ทำให้นักพัฒนาทั้งที่นั่งในงาน WWDC และนั่งดู Live Streaming ต่างต้องอุทานคำว่า Wow! และอยากลองใช้งานกันอย่างมากมาย ผลลัพธ์จากความนิยมก็คือ Ebook ภาษา Swift ที่ Apple ปล่อยออกมาเพียงแค่วันเดียวมีการดาวน์โหลดถึง 370,000 ครั้ง โดยภาษา Swift นั้นแม้จะเปิดตัวในสมัยของ iOS 8 แต่เราสามารถที่จะเขียนแอพให้รองรับ iOS 7 ด้วยภาษา Swift ได้เช่นเดียวกัน

swift-c

swift-hello

Swift vs Objective-C

ในหัวข้อนี้ ผมคงจะไม่เขียนว่าภาษาไหนดีกว่า และนักพัฒนาควรจะพัฒนาด้วยภาษาไหน สิ่งที่ผมจะเขียนก็คือการเปรียบเทียบว่าท่าเดิมในภาษา Objective-C นั้น เมื่อเขียนด้วย Swift จะเป็นอย่างไร ส่วนจะสวยขึ้นไหม เขียนง่ายขึ้นไหม ขึ้นอยู่กับการตัดสินใจ ประสบการณ์ และวิจารณญาณของนักพัฒนาแต่ละคนนะครับ แต่สำหรับผมมัน “น่ารัก” ดี

  • Dictionary Creation and How to Access

Screen Shot 2557-06-04 at 10.59.06 PM

  • String Sorting

Screen Shot 2557-06-04 at 10.59.22 PM

  • Delegation

Screen Shot 2557-06-04 at 10.59.46 PM

อนาคตของ Swift และการเขียนแอพบน iOS

จากการได้อ่านหนังสือที่ Apple จัดทำขึ้นเพื่อให้นักพัฒนาสามารถเรียนรู้ภาษา Swift เบื้องต้น (https://itunes.apple.com/us/book/swift-programming-language/id881256329?mt=11) และได้ลองเขียนโปรแกรมเล่นๆ ด้วยระยะ 2 วันที่ผ่านมา จำนวนโค้ดที่ต้องเขียนลดลง โค้ดสะอาด อ่านและเขียนง่ายขึ้น แต่ในความคิดเห็นส่วนตัวก็ยังมีบางจุดที่ยังไม่ถูกใจอยู่บ้าง แต่โดยรวมแล้วผมรู้สึกชอบ และถ้ามีโอกาสอยากจะลองนำมาใช้พัฒนางานจริงๆ เหมือนกัน

  • Apple ต้องการให้ Swift เป็นภาษาที่จะมา “แทนที่” Objective-C แทนที่จะเป็น “ทางเลือก”
  • คิดว่ายังคงต้องใช้เวลาเปลี่ยนผ่านและการพัฒนาสักระยะใหญ่ๆ ทั้งเรื่องของความสามารถของภาษาและ Community
  • Objective-C เป็นภาษาเก่าแก่ที่ถูกพัฒนามากว่า 20 ปี คาดว่าหลายต่อหลายคนยังคงจะใช้ Objective-C ไปก่อนอีกนาน
  • Apple ต้องพยายามลดช่องว่างความยากของตัวภาษาในการเรียนรู้การพัฒนาโปรแกรมบน Mac OS X และ iOS เพื่อจูงใจนักพัฒนาหน้าใหม่ๆ
  • หลายคนที่ปรับตัวเองมาจากภาษาสคริปต์สมัยใหม่อย่าง Python, Ruby, Javascript ก็น่าจะเป็นอีกกลุ่มที่สนใจใช้ Swift ในการพัฒนา

ข้อมูลและรูปภาพบางส่วนจาก 102 – Platforms State of the Union

ที่มา – iMacbaszii’s Blog

iMacbaszii

swift-var