Swift
ภาษา Swift เรียกได้ว่าเป็นหนึ่งในภาษาน้องใหม่ที่มาแรงในปี 2015 นี้ พัฒนาโดยบริษัท Apple และถูกวางให้เป็นภาษาใหม่สำหรับการสร้าง App บน iPhone, iPad, Apple Watch, tvOS และ Mac หรือพูดง่ายๆ คือทั้งอาณาจักรของ Apple
ย้อนประวัติ Time Machine
Objective-C ถูกพัฒนาขึ้นในปี 1983 หรือ 32 ปีที่แล้ว เป็นหนึ่งในภาษาเก่าแก่ที่สร้างมาบนแนวคิด OOP (Object Oriented Programming) ซึ่งในสมัยนั้นถือเป็นเรื่องใหม่
ปี 1988 บริษัท NeXT (ก่อตั้งโดยสตีฟ จ๊อบส์) ได้ซื้อสิทธิ์การใช้ภาษา Objective-C เพื่อใช้เป็นภาษาหลักในการสร้างโปรแกรมบนระบบปฎิบัติการ NeXTSTEP (ภายหลังถูกนำมาใช้ใน Mac OS X)
จนกระทั้งในปี 2007 (8 ปีที่ผ่านมา) iPhone ได้ถือกำเนิดขึ้นมา และทำให้วงการ App บูมอย่างมาก จนมีนักพัฒนาหลั่งไหลมาแจ้งเกิดบน App Store เป็นจำนวนมาก ส่งผลให้ Objective-C เป็นภาษาที่มีความนิยมสูงขึ้นอย่างก้าวกระโดด จนติดอันดับ 3 ภาษาที่คนนิยมที่สุดในโลก (จัดโดย TIOBE ในปี 2014)
กำเนิด Swift
ปี 2014 Apple ได้เปิดตัวภาษาใหม่ในงานสัมนานักพัฒนาซอฟท์แวร์ประจำปีของบริษัท (WWDC) โดยมีความโดดเด่นในหลายจุด และเป็นตัวเก็งว่าจะมาแทน Objective-C ในไม่ช้า และในงาน WWDC ของปีถัดมา ตัวอย่างโค้ดก็เขียนด้วยภาษา Swift ในแทบทุกๆ หัวข้อตลอดทั้งงาน
จุดเด่น
- เร็ว
การวนค่า Array และการเรียก Method เร็วขึ้นมากเมื่อเทียบกับ Objective-C ขนาดที่ว่าการใช้งาน Array ความเร็วใกล้เคียงภาษา C เลยทีเดียว
- เรียก Objective-C Api
ใครที่เขียน App มาก่อนด้วย Objective-C สามารถเขียน Swift ได้เลย และเรียกใช้ข้ามกันไปมาได้ด้วย โดยใช้เทคนิคแยกตัวรันไทม์ของภาษา Objective-C และ Swift ออกจากกัน แล้วเชื่อมกันด้วย Bridge เพิ่มเติม https://developer.apple.com/library/ios/documentation/Swift/Conceptual/BuildingCocoaApps/MixandMatch.html
- Syntax ที่ง่ายขึ้น
#Objective-C
NSString *text = @”Totiz”;
if ([[myString lowercaseString] isEqualToString:@”totiz”]) { …
}#Swift
var text = “Totiz”
if text.lowercaseString == “totiz” { …
}
- Open source!
ไม่เชื่อก็ต้องเชื่อ Swift กำลังจะ Open Source ปลายปี 2015 นี้ และแน่นอน มันต้องรันบน Linux ได้ ( Windows รอลุ้น ) การ Open Source ทำให้ภาษา Swift อยู่ในฐานะเดียวกับภาษารุ่นพี่เช่น Java ทันที และเปิดโอกาสให้นักพัฒนามาต่อยอดมันออกไป เราอาจได้เห็น Swift Framework สำหรับทำเวปในเร็วๆ นี้ - ภาษาหลักในอาณาจักร Apple
ดูจากงาน WWDC 2015 ก็ชัดเจนว่า Swift คือลูกรักแทน Objective-C แล้วในตอนนี้ - Functional Programming
map, flatmap, filter, closure, … มากันหมด ทำให้บรรดาคนชื่นชอบการเขียนแนว Funcitional หลงรักได้ง่าย - Modern
- Type Infer ประกาศโดยไม่ระบุ Type
- ARC การจัดการหน่วยความจำ มาแทน Garbage Collection
- Playground ใช้ทดลองโค้ด และสื่อการสอน แบบเข้าใจง่าย
จุดด้อย
- ภาษายังไม่นิ่ง และ Standard Library ยังไม่ผูกกับ iOS เหมือน Objective-C ส่งผลให้ App มีขนาดใหญ่ขึ้น จากการที่ต้องรวม Standard Library เข้าไว้ในตัว App เลย และ framework ที่สร้างด้วย Swift จะไม่การันตีว่าจะใช้กับ Swift 3, 4, 5 ในอนาคตได้
- เครื่องมือชื่อดังเช่น Pods, Carthage ยังใช้งานได้ไม่เต็มประสิทธิภาพกับ Swift รวมถึงเครื่องมืออื่นๆ และรวมไปถึง Microsoft Visual Studio ตัวใหม่ที่รองรับ App ที่เขียนด้วย Objeictive-C เท่านั้น
- Xcode ยังทำงานได้ไม่ดีกับ Swift เช่น Auto-Complete และการ Compile ที่ช้ากว่ากัน (ไม่เป็นทุกคน) รวมไปถึงแครชที่อาจเกิดขึ้นได้ (Xcode หลังๆ ดีขึ้นมากแล้ว)
สรุป
สำหรับมือใหม่ เขียนง่าย เข้าใจง่าย มีโค้ดตัวอย่างทั้งบนเวปไซท์ Apple เอง บน Stack Overflow หรือ Goolge (keyword: swift) ถ้าใครกำลังสนใจอยากเขียนแอพบน iOS ผมก็ยังแนะนำทุกคนเสมอให้เริ่มจาก Swift ไปเลย
สำหรับโปร ถ้าขึ้นโปรเจคใหม่ แนะนำให้ใช้ Swift โปรเจคแรก เวลา 50% จะหมดไปกับการทำความเข้าใจ Swift จากมุมมองของ Objeictive-C เดิม แต่เวลาในการเขียนโค้ดก็ลดลงเช่นกัน (ไม่มี .h .m เหลือแต่ .swift) พอมาโปรเจคสอง จะเร็วขึ้นชนิดทีว่าไม่คิดจะกลับไป Objective-C อีกเลย
สำหรับ Enterprise ถ้าต้องสร้าง Framework, Library ให้คนอื่นใช้ ให้อยู่กับ Objective-C ไปก่อน เพราะตัว Language interface มันนิ่งแล้ว ทำให้คนทั่วไปนำไปใช้ได้เลยโดยไม่เกิดปัญหา แต่ถ้าเราจำกัดกลุ่มคนใช้ Framework, Library ได้ Swift ก็เป็นตัวเลือกที่ดีครับ