Swift language

Swift ภาษาใหม่สำหรับนักพัฒนา Apple!

Apple ได้สร้างความประหลาดใจให้กับนักพัฒนาอย่างไม่มีใครคาดคิด!

เมื่อวันอังคารที่ผ่านมา (กลางดึกวันที่  3 มิถุนายน 2557 ตามเวลาในบ้านเรา) Apple ได้สร้างความประหลาดใจให้กับนักพัฒนาอีกครั้งด้วยการประกาศเปิดตัวสวิฟท์ (Swift) อันนี้ไม่ใช่ทั้งรถค่ายญี่ปุ่น หรือนักร้องสาว อเมริกันสไตล์ ชื่อดังแต่อย่างใด แต่มันคือภาษาสำหรับการโปรแกรมมิ่ง ภาษาใหม่ล่าสุดสำหรับนักพัฒนาชาว Apple ซึ่งมีไว้เพื่อพัฒนา Apps ที่มีลักษณะ Cross Platform ระหว่าง Product Apple ด้วยกัน

Apple, Swift

จบ Presentation ในงาน WWDC หัวข้อนี้ผมได้ฟังมาเท่านี้ก็ ร้องทันที เพราะเดิมทีแล้ว เราๆท่านๆขา DEV  คงไม่ได้เคยคิด หรือสนใจเท่าไรนักกับการพัฒนาโปรแกรมข้ามระบบแพลตฟอร์ม ถึงแม้ว่าจะอยากทำก็ตามที ก็ด้วยเหตุผลคือ มันไม่ง่าย! กระทั่งตอนนี้เอง Apps ส่วนใหญ่ที่ถูกฝังตัว และใช้งานอยู่บนอุปกรณ์ต่างๆของ Apple device  ต่างๆ ยังคงเกิดขึ้นมาจาก  Objective-C ซึ่งเป็นภาษาที่เราๆท่านๆขา Apple นั้นทราบกันดีว่าได้พัฒนามาจากตอนที่ศาสดา Job ได้ให้กำเนิด NeXT Corp ขึ้นมา และภาษานั้นก็กลายเป็นแกนหลักของ Apple ในการพัฒนาตลอดมา

Objective-C ในตอนนี้ก็ยังคงดูชัดเจนดี มีเส้นทางการเติบโตของภาษา ที่เป็นแบบภาษาโปรแกรมมิ่งระดับสูงอยู่แล้ว (Super Programming Language) มัน ปลอดภัย ทันสมัย และก็ทรงพลังอยู่แล้ว

ประโยคด้านบนนายเกร็ก เฟอเดอริจี้ (Craig Federighi) หัวหน้าวิศวกรคอมพิวเตอร์ของ Apple เองได้เคยเปรยไว้ แต่อย่างไรก็ตาม เมื่อวันเวลาเปลี่ยน ภาษาก็ย่อมเปลี่ยนตาม นายเกร็กเอง และทีมงาน Apple เริ่มเล็งเห็นว่าอะไรที่จะช่วยยกระดับขีดความสามารถ และสร้าง Community นักพัฒนาให้ใหญ่ และโตขึ้นไปกับผลิตภัณฑ์ต่างๆของ Apple ได้ ด้วยเหตุเหล่านี้จึงเป็นที่มาของ สวิฟท์ (Swift)

สวิฟท์ (Swift) คืออะไร

สวิฟท์ คือ ภาษาโปรแกรมมิ่งล่าสุด ซึ่งได้มีการพัฒนาตลอด 4 ปีที่ผ่านมา และมีเป้าหมายว่าจะมาแทน Objective-C! โดย Apple จะนำมาเป็นภาษาหลัก (Main Language) สำหรับพัฒนาทุกอย่างของ Apple ทุก Platform ทั้ง OSX และ iOS (จบประโยคนี้คนที่กำลังฝึกเขียน Objective-C คงตึ๊บ แล้วผมจะเรียนรู้ทำไม อย่าซีเรียสครับ ทุกภาษาในโลกไม่หนีกัน อย่างน้อยมันก็ไม่ได้ตาย มันก็แค่เพิ่มทางเลือก และเป็นพื้นฐานให้คุณด้วยซ้ำ ปล. อันนี้ไม่รู้ บอก หรือ หลอกตัวเอง…) สวิฟท์เองนั้นมี Syntax ทางภาษาที่คล้ายกับ Objective-C และประยุกต์มาจากอีกหลายภาษา อาทิเช่น Huskell, C#, Ruby และ Python ซึ่งทาง Apple เองก็ค่อนข้างที่จะมั่นใจว่า สวิฟท์จะเป็นภาษาที่ใช้กันอย่างแพร่หลายทั้งในโปรแกรมเมอร์รุ่นเยาว์ ตลอดจนรุ่นลายครามเลยทีเดียว จะว่ากันไปแล้ว ลองนึกกันดีๆครับ ว่าการเปลี่ยนถ่ายจากภาษาหนึ่งมาเป็นอีกภาษาหนึ่ง และยังคงต้องรักษาสภาพการทำงานให้ยังคงอยู่ในอุปกรณ์ต่างๆนั้นไม่ใช่เรื่องง่ายเลย การที่ Apple เปลี่ยนภาษาจาก Objective-C มาเป็น สวิฟท์เองเป็นเรื่องน่าลำบากเพราะต้องปรับปรุง ไลบรารี่ (Library) ที่เขียนขึ้นจาก Objective-C จำนวนมากแล้ว และยังต้องรักษาความสัมพันธ์ของโมเดลให้เหมาะสมกับ Cocoa Framework ด้วย ซึ่งนั่นก็ย่อมบ่งบอกว่า นักพัฒนาที่กำลังหันมาใช้ภาษาสวิฟท์ จะสามารถ Coding เชื่อมต่อกับ Obejctive-C ของตนเองที่เคยพัฒนามาได้อย่างแน่นอน (ฟังแล้วก็โล่งอก)

Objective-C and Swift

ถ้าผมเป็นโคตรเซียน Objective-C แล้วไม่สนใจ Swift ผมจะกลายเป็นเต่าล้านปีไหม

นานาจิตตังครับ! เนื่องจากเดิมที Objective-C ก็เป็นโคตรสุดยอดภาษาอยู่แล้ว เพราะ Apple ก็พัฒนาความสามารถให้ตัวมันเองสามารถจัดการกับสิ่งต่างๆของ Apple ได้อย่างเต็มประสิทธิภาพที่สุดอยู่แล้วในช่วงหลายๆปีที่ผ่านมา เห็นได้ชัดๆเลยจาก อาร์ค (ARC, Automatic REference Counting) ซึ่งเป็นตัวช่วยจัดการ และปรับปรุงการใช้หน่วยความจำ (Memory Management & Enhancement) ซึ่งจะคอยตรวจจับการอ้างถึง Object ต่างๆในโปรแกรมของเรา (อ่านเพิ่มเติมได้ที่ ARC) Apple เองก็ไม่เคยที่จะลอยแพ แต่ยังปรับปรุงให้มีประสิทธิภาพมากยิ่งขึ้นในตลอดช่วงที่ผ่านมา แต่ถ้ามองความจริง ตามความเป็นจริงแล้ว เราจะพบว่า ไม่เคยมีภาษาไหนอยู่ยั่งยืนยงได้เลย (นอกจากภาษาซี C) ถ้าลองสังเกตให้ดีนักพัฒนาเองก็ต้องปรับเปลี่ยนตัวเองไปตามเทรนด์ของเทคโนโลยีอยู่ดี ทั้งนี้ประเด็นหลักอาจไม่ใช่ที่ตัวบุคคลเอง แต่เป็นเรื่องของข้อจำกัดทางเทคโนโลยี และตัวภาษาเองต่างหากที่ทำให้ต้องปรับตนเองตาม ตัวอย่างที่น่าสนใจ จะว่ากันให้ง่ายตัวอย่างของเรื่อง Unsafe Type ที่ถ้าสังเกตให้ดีในอดีต นักพัฒนาทั่วไป (ยกเว้นเทพ) มักจะไม่ค่อยใส่ใจ มีการประกาศตัวแปร และอ้างถึงบ้าง อ้างไม่ถึงบ้างอยู่เต็มโปรแกรม ภาษาใหม่ๆหลายภาษารวมทั้ง Swift เอง ก็จะเข้ามาช่วยจัดการในเรื่องเหล่านี้ แน่นอนจากที่ผมบอกจบที่ นานาจิตตังคือแล้วแต่มุมมองของแต่ละคน!

ของใหม่มีแค่เรื่อง Safe Type เองหรือ?

Apple เริ่มพัฒนาภาษาโดยการจัดลำดับความสำคัญของภาษาที่จำเป็นต่อการพัฒนา ประเด็นแรกที่ Apple ใส่ใจคือเรื่องของ ความสามารถในการอ่านได้อย่างง่ายดาย (Readability) ของภาษา แต่ก็ยังมีอีกหลายส่วนเลยที่ยังไม่มี เช่นพวก Special Type, Tuple, การเพิ่ม Generic, Closure และ Operator Overloading เหล่านี้ล้วนเป็น Feature ที่ยังไม่พบใน Objective-C แต่ Swift จัดให้แล้วตั้งแต่ Version 1.0!

แล้วมีอะไรบ้างที่ปรับปรุงมาจาก Objective-C หรือยืม(โขมย)มาจากภาษาอื่นๆ

สามารถรับชมสไลด์เพิ่มเติมกันครับจาก InfoWorld ซึ่งระบุว่าเป็น 10 Feature ที่ Apple จิ๊กมาเพื่อ Swift ได้เลยครับ สำหรับท่านใดที่กำลังเตรียมตัวเปิดโลก หรือลับคมกับ Swift ภาษาใหม่จากทาง Apple ลองเข้าไปศึกษาเพิ่มเติมได้ที่ Ebook “The Swift Programming Language” จากทาง Apple ผ่าน iBook ได้โดยตรงที่นี้เลยครับ (คลิ๊กเพื่อรับชม)

แล้วจะมีอะไรต่อไหม

นับเป็นก้าวย่างที่กว้างใหญ่ของ Apple อีกครั้งสำหรับการเปิดตัวภาษา Swift ในงาน WWDC ที่ผ่านมา นักพัฒนาเองก็คงต้องก้าวตามไปด้วยเช่นเดียวกัน จะอยู่ หรือไปอย่างไร ไกลแค่ไหน เหล่าสาวกนักพัฒนาคงต้องจับตาดูกัน!

Comments




Pin It on Pinterest

Share This