Swift

Nattapon Nimakul
Swifty Coffee
Published in
2 min readSep 26, 2015

ภาษา 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 ก็เป็นตัวเลือกที่ดีครับ

--

--