ไหนๆ ก็จบ WWDC ไปแล้ว ผมก็อยากจะเขียน entry นี้ไว้ซะหน่อย
ตอนนี้ผู้ใช้ทั่วไปก็คงพูดได้เป็นเสียงเดียวกันว่า “ไม่มีอะไรใหม่”
/me เอ่อ ต้องการอะไรใหม่ๆ บ้างล่ะครับ ไอที่เขาเปิดตัวมาให้ใช้นี่มันไม่ใหม่อีกเหรอครับ
เอาล่ะ วันนี้ก็คงไม่พูดถึงฝั่งตรงข้ามให้มากนัก เพราะไม่อยากก่อดราม่า
คำเตือน ศัพท์เฉพาะอาจทำให้เข้าใจยากสักเล็กน้อย
สำหรับ OS X กับ iOS ฟีเจอร์ใหม่ทั้งหลาย entry นี้คงไม่พูดมากหรอก เชิญอ่านที่นี่ดีกว่า
อะไรที่ใหม่จริงๆ ระหว่าง iOS 8 กับ OS X 10.10 Yosemite ก็คือการทำงานร่วมกันอย่างไร้รอยต่อจริงๆ และคิดว่านี่ล่ะน่าจะเป็น Key ของทั้ง 2 OS ที่ไม่ต้องรวมเป็นระบบปฏิบัติการเดียวกันก็ทำงานร่วมกันได้
สิ่งที่ผมเห็นว่าเป็น Key จริงๆ ของงานนี้คือ “นักพัฒนา” ครับ
WWDC = Wordwide Developer Conference ชื่องานก็มี Developer หรือนักพัฒนาอยู่แล้ว ฉะนั้นงานนี้ควรจะโฟกัสไปที่นักพัฒนา และครั้งนี้ Apple ก็ทำได้ดีซะด้วยสิ เพราะสินค้าเปิดตัวเป็นแค่ส่วนหนึ่งของงาน แต่การเปิด API หรืออะไรจำพวกนี้สิคือสิ่งที่นักพัฒนาอยากรู้ เพราะจะได้ทำแอพได้
ต่อไปนี้ Apple ก็คงจะเอาสินค้าเปิดตัวในงาน WWDC น้อยลง งานนี้จะโฟกัสกับซอฟต์แวร์และนักพัฒนามากขึ้น โดย Apple จะเอาสินค้าไปเปิดตัวโดยจัด Special Event ท้ายๆ ปีแบบที่ทำ 2 ปีก่อนแน่นอน
งานรอบนี้มีการเปิดตัว API ใหม่ๆ หลายอย่าง เช่น
- Metal จะเอามาแทน OpenGL และ Apple คุยไว้ว่า Metal จะทำงานเร็วกว่า OpenGL แน่นอน
- SpriteKit, SceneKit เป็น API ด้านกราฟิก
- HealthKit เป็น API ด้านสุขภาพ
- HomeKit เป็น API เกี่ยวกับอุปกรณ์ในบ้านที่จะมาเชื่อมต่อกับ iPhone ต่อไปนี้คงจะเห็นอุปกรณ์ในบ้านสามารถใช้ iPhone คุมได้ออกมาอีกมากมาย
- ปุ่ม Share ให้แอพอื่นมาเข้าร่วมได้ จะทำให้ตัวเลือกการแชร์เพิ่มขึ้นอีกเยอะ
- Keyboard อนุญาตให้ลง Keyboard นอกได้ เชื่อว่าอันนี้หลายคนคงรอ Swype เป็นแน่ แต่ Apple ก็ยังคงจำกัด privacy ไว้ ห้ามคีย์บอร์ดต่อเน็ตโดยไม่ได้รับอนุญาตจากผู้ใช้
- Touch ID API จะทำให้แอพภายนอกสามารถเรียกใช้ Touch ID ได้ แต่ข้อมูลส่วนตัวทุกอย่างจะไม่ถูกส่งให้แอพ จะถูกเก็บไว้ที่เครื่อง ล็อคไว้กับชิพ A7 (ชิพ A7 กับ Touch ID แต่ละอันต้องเข้าคู่กันด้วยนะ ถ้าเอา Touch ID สลับเครื่องกันจะไม่ยอมอ่าน)
- Notification Center อนุญาตให้ลง Widget ได้ อันนี้เชื่อว่าหลายคนคงชอบ
แต่สิ่งที่น่าสนใจคือคอนเสิร์ตของ Taylor Swift ที่เพิ่งยกเลิกไป
//แหมะ ขอเล่นหน่อยเหอะ คนอื่นเล่นกันเยอะแล้ว
Swift
Swift คือภาษาโปรแกรมใหม่ที่ Apple เปิดตัว และเป็นภาษาที่ syntax ง่ายขึ้นกว่า Objective-C เยอะ (มาก) ถ้าใครเคยเขียน Objective-C มาก่อนจะรู้ว่ากว่าจะเข้าใจนี่นรกมีจริง มันยากมากๆ แต่ด้วยเครื่องมือมากมายจาก Xcode มาช่วยก็ทำให้ง่ายกว่าเดิมเยอะ
แต่ Swift จะทำให้ syntax ง่ายขึ้นไปอีก (แหงล่ะ เอาไปเทียบกับภาษาเมื่อ 20-30 ปีที่แล้ว) และรองรับระบบใหม่ๆ เช่น Playground คือเขียนโค้ดไปด้วยเห็นสิ่งที่เกิดขึ้นไปด้วย เป็นภาษาแนวๆ ภาษาสคริปต์ รายละเอียดเชิญ Nuuneoi’s Blog
Swift ก็ยังคงใช้คอมไพเลอร์เป็น LLVM เหมือน Objective-C อยู่ ส่วน runtime ก็ใช้ของ Objective-C (เรื่องของคอมไพเลอร์ LLVM มันทำงานยังไงนี่ไปหาอ่านเอาเองนะครับ ยาว)
มาถึงอนาคตของ Apple เกี่ยวกับภาษาในการพัฒนาโปรแกรมกันบ้าง
ใน Keynote นั้น Apple บอกว่า Swift จะใช้คู่กับ Objective-C และ C ในโปรแกรมเดียวกันได้ แต่หากเราลองย้อนไปสมัย OS X รุ่นแรกสุด Apple ได้นำ Objective-C มาใช้ ตอนนั้นยังไม่แพร่หลาย OS X รุ่นแรกจึงเปิดเรื่องภาษาสุดๆ คือ Apple ต้องยอมพัฒนา Cocoa (Library สำหรับ Objective-C) ควบคู่กับ Carbon (Library ของ C++) ไปด้วยกัน แถม Xcode รุ่นก่อนๆ ยังมีโปรเจค Java ให้เลยด้วย
แต่เมื่อสมัยที่ OS X ก้าวเข้าสู่ 64-bit แล้ว Carbon กลับไม่ได้ได้รับการสนับสนุนจาก Apple ให้รองรับ 64-bit ด้วย คือต้องเขียนโปรแกรม 32-bit เหมือนเดิม และความสามารถใหม่ๆ หลายอย่างก็ไม่ได้รับการสนับสนุน ส่วน Java ก็ถูกลดความสำคัญลงไปเรื่อยๆ เป็นการบีบทางอ้อมให้นักพัฒนาต้องมาเขียน Objective-C ถ้าจะใช้แอพให้เต็มประสิทธิภาพของ OS X และใน OS X 10.8 Mountain Lion นั้น Apple ก็ได้ประกาศว่า Carbon จะเลิกใช้แล้ว
คิดว่าไงล่ะครับ? อนาคตของ Objective-C ผมก็ว่ามันคงไม่ต่างจาก C++ ปัจจุบันหรอก ถึงมันอีกนานก็จริง แต่ยุคสมัยนั้นกับตอนนี้มันต่างกัน คือ OS X และ iOS ออกใหม่บ่อยกว่าเดิมมาก (ปกติ 3 ปีออกครั้ง ตอนนี้เหลือปีละครั้ง) และ Apple ก็คงไม่อยากจะเปลืองทรัพยากรในการรองรับ 2 ภาษาหรอกครับ ฉะนั้น Objective-C ในปัจจุบันน่าจะค่อยๆ ถูกตัด support ลงไปเรื่อยๆ บีบให้นักพัฒนาต้องใช้ Swift และสุดท้ายเชื่อว่าชะตากรรมก็ไม่ต่างจาก C++ หรอก แต่อาจมาเร็วกว่าที่คาดไว้
และถ้าตอนนี้จะเริ่มเรียนเขียนโปรแกรม iOS ล่ะ คำตอบของผมคืออย่าเพิ่งเรียน Objective-C ครับ ให้รอโหลด Xcode มาเรียน Swift ปลายปีนี้ทีเดียวดีกว่า ถ้าใครที่เรียนค้างไว้ จบคอร์สก็ลองเขียน Objective-C ดูเล่นๆ ก็ได้ แต่ในอนาคตคุณต้องเรียน Swift แน่นอน ไม่ช้าก็เร็ว (แต่เร็วก็ยิ่งดีนะ ได้เปรียบคนอื่น)
Apple เอาจริงกับ Swift แค่ไหน ก็ลองดูจาก document ที่เตรียมให้ย้ายโค้ดจาก Objective-C ไป Swift ที่นี่ครับ Apple Developer
ที่แน่ๆ คือตอนนี้มีคนรอบตัวผมที่ไม่เคยสนใจเขียนโปรแกรม iOS เพราะเจอกำแพงภาษา Objective-C หลายคนเริ่มหันมาสนใจเขียน Swift แล้ว
ปล. swift-lang.org ไม่เกี่ยวอะไรกับภาษา Swift ของ Apple นะครัช ถ้าจะเล่นต้องโหลด Xcode 6 มาลงสถานเดียว
ขอบคุณครับ จะเขียน ios app กำลังสับสนว่าจะเริ่มที่ objective-c หรือ swift ดีวันนี้ได้คำตอบแล้วไป swift เลยดีกว่า