ข้อดีของการใช้ Swift Over Objective-C

เผยแพร่แล้ว: 2021-10-05

บทความมีวัตถุประสงค์เพื่อเน้นความงามหลักที่ภาษาโปรแกรม Swift มี .

ที่นี่ฉันชอบที่จะเริ่มต้นจากแบบทดสอบอย่างรวดเร็ว
คำถาม: ภาษาการเขียนโปรแกรมที่แอพ iOS เขียนคืออะไร?

ก) C#

b) วัตถุประสงค์-C

ค) สวิฟท์

เห็นได้ชัดว่าถ้าคุณเลือกทั้งหมดข้างต้น - คุณถูกต้อง 100% ภาษาที่กล่าวถึงทั้งหมดจะมีประโยชน์ในการพัฒนา iOS แม้ว่าจะไม่ใช่เรื่องแปลกที่จะกล่าวถึงพวกเขาทั้งหมดแตกต่างกันเนื่องจาก "ช่องว่างระหว่างรุ่น" ขนาดใหญ่ที่แยกพวกเขาออกจากกัน

...วิกิพีเดียระบุว่าทุกอย่างเริ่มต้นจาก Objective-C เมื่อแบรด ค็อกซ์และทอม เลิฟปู่ของภาษาการเขียนโปรแกรมเปิดตัวในช่วงต้นทศวรรษ 1980 NeXT เข้าซื้อกิจการครั้งแรก และในที่สุด Apple ก็ใช้ OpenStep ใน OS X ในปี 1996 นับตั้งแต่นั้นเป็นต้นมา ระบบปฏิบัติการ Apple ส่วนใหญ่ก็ได้รับการพัฒนาบน Objective-C และนี่เป็นการเพิ่มขึ้นสูงสุด

อย่างไรก็ตาม ตามที่ทราบกันดี ทุกสิ่งที่ดีในวันหนึ่งสร้างความทรงจำที่ยอดเยี่ยม และนั่นคือสิ่งที่เกิดขึ้นกับ Objective ในทุกวันนี้ ฉันแน่ใจ 100% ว่าคุณเคยได้ยินเกี่ยวกับแอปพลิเคชันต่างๆ เช่น เกม 2048, Wordpress iOS หรือเบราว์เซอร์ FireFox iOS น่าแปลกที่ภาษาเขียนโค้ดของ iOS ที่แอปนี้เขียนไม่ใช่วัตถุประสงค์ แต่เป็น Swift

สวิฟท์. ภาษาการเขียนโปรแกรมแอป iOS

(ข้อมูลนี้ครบกำหนด ณ เวลาที่โพสต์บทความ - กุมภาพันธ์ 2017 อาจมีการเปลี่ยนแปลงในภายหลัง)

ด้วยความเต็มใจที่จะทำให้ลูกค้าประหลาดใจ Apple ทำได้เกินความคาดหวังของทุกคน โดยเฉพาะอย่างยิ่งนักพัฒนารู้สึกประหลาดใจมากกว่าเมื่อต้นเดือนมิถุนายน 2014 ภาษาการเขียนโปรแกรมแอป iOS ใหม่ได้ถูกนำมาใช้ในโลกนี้ หลังจากพัฒนา Swift มา 3 ปีแล้ว โปรแกรมเมอร์ก็ยังไม่หยุดทำงาน มีการอัพเดทหลายอย่างแล้ว โดยที่ Swift 4.0 เวอร์ชันล่าสุดเปิดตัวในเดือนกันยายน 2016 โค้ดที่เขียนด้วยภาษาโอเพนซอร์สนี้สามารถนำไปใช้กับ macOS ได้ , iOS, watchOS, tvOS และ (!) Linux
2 ปีต่อมา Swift ได้รับตำแหน่งที่มั่นคงในบรรดาภาษาการพัฒนามือถือที่มีอยู่ทั้งหมด ผลการสำรวจนักพัฒนา Stack Overflow อ้างว่า Swift ครองตำแหน่งสูงสุดในภาษาที่รักและต้องการมากที่สุด และอันดับ Objective-C เป็นภาษาที่น่ากลัวที่สุดในปีนี้ (2019)

เมื่อพิจารณาทุกประเด็นแล้ว มีข้อดีใดบ้างที่ทำให้ Swift โดดเด่นกว่าใคร? มีโอกาสชนะการแข่งขัน Swift vs Objective หรือไม่?

อ่านเพิ่มเติม: 6 ความแตกต่างระหว่างการพัฒนา iOS และ Android: ตำนานกับความเป็นจริง

Swift กับ Objective-C

ม้าสำหรับหลักสูตรตามที่พวกเขาพูด แต่มีความสวยงามที่ปฏิเสธไม่ได้ที่ Swift-programming-language-from-Apple มี ต่อไปนี้เป็นข้อดีและข้อเสียของการศึกษาที่แนะนำแบบกราฟิก

Swift กับ Objective-C

แม้ว่ากระบวนการเขียนโค้ดด้วยคุณสมบัติไฮเทคทั้งหมดดูเหมือนจะเป็นวิทยาศาสตร์จรวดสำหรับคุณ แต่วิธีการที่ Swift นำมาซึ่งเรียบง่ายและก้าวหน้ากว่านั้นไม่อาจมองข้ามได้ ในทางกลับกัน มีบางสิ่งเกี่ยวกับ Swift ที่บางคนอาจเรียกว่าเสียเปรียบ เช่น ต้องใช้ Xcode เป็นสภาพแวดล้อมการพัฒนาแบบบูรณาการหลัก นักพัฒนาบางคนบ่นว่าพวกเขาควรใช้ IDE ของบุคคลที่สามที่ดีกว่า Xcode ในด้านความเสถียรและคุณสมบัติ

เหตุผลในการใช้ Swift

แม้ว่าจะมีรายการทั้งหมดที่ระบุไว้ก่อนหน้านี้ บริษัทพัฒนาหลายแห่งทั่วโลกเลือกที่จะยึดติดกับตัวเลือกภาษา Swift และ Mind Studios ก็ไม่ใช่ข้อยกเว้น เหตุใดเราจึงชอบ Swift ในการเปรียบเทียบ Objective-C มีปัจจัยที่ง่ายต่อการพิจารณาสองสามประการ

สวิฟท์คือ...

1)...ใหม่กว่า

Objective-C มีอายุ 33 ปีแล้ว และเดิมเป็นความต่อเนื่องของภาษา C ในทางตรงกันข้าม Swift มาเป็นภาษาที่แยกจาก Apple เนื่องจากเป็นเรื่องยากสำหรับบริษัทที่จะสนับสนุนและพัฒนา Objective ในช่วง 3 ปีที่ดำรงอยู่ Swift ได้รับการพัฒนาอย่างแข็งขันและจะมีการส่งมอบเวอร์ชันใหม่ 4 ในไม่ช้า

2)...น้ำยาทำความสะอาด

ด้วยไวยากรณ์ใหม่ที่เพิ่มเข้ามาใน Swift ทำให้อ่าน คอมไพล์ และตรวจสอบโค้ดได้ง่ายกว่าที่เคยใน Objective-C

3)...ใช้เวลาน้อยลง

เนื่องจาก Swift ต้องการโค้ดน้อยในการเขียน ดังนั้น จึงต้องใช้เวลาน้อยที่สุดในการสิ้นสุดขอบเขตของงานสร้างโค้ดอย่างเหมาะสม

4)...ใช้หน่วยความจำน้อยลง

ก่อนหน้านี้ใน Objective-C หากมีอ็อบเจ็กต์ลิงก์ - จะใช้หน่วยความจำเข้าถึงโดยสุ่มบางส่วน เมื่อใช้งาน Swift - Apple ทิ้งโปรแกรมเชิงวัตถุไว้ตามลำพังและเปลี่ยนไปใช้โครงสร้าง ด้วยเหตุนี้ จำนวนข้อมูลประเภทอ้างอิงและคลาส SDK จึงลดลง มีการเปลี่ยนแปลงสำหรับประเภทค่าในขณะนี้ ส่งผลให้การใช้หน่วยความจำใน Swift มีประสิทธิภาพมากขึ้น

5)...เร็วขึ้น

Swift เร็วกว่า Obj-C

Swift จัดการเพื่อให้สอดคล้องกับข้อมูลได้เร็วกว่าที่ Obj-C ทำ; เช่นเดียวกับ Objective-C โดยจะใช้คอมไพเลอร์ LLVM สำหรับการสร้างโค้ดเนทีฟที่ปรับให้เหมาะสมที่สุดสำหรับแพลตฟอร์มที่กำลังทำงานอยู่ ใน Swift อาร์เรย์จำนวนมากถูกเขียนใหม่เป็นโครงสร้าง บางคลาสเคยเป็นวัตถุมาก่อนใน Objective-C ซึ่งส่งผลให้กระบวนการทำงานโค้ดช้าลง แม้ว่าโค้ดจะใช้เวลานานกว่าในการคอมไพล์ใน Xcode IDE แต่โค้ดก็ทำงานบน Swift ได้เร็วกว่า

6)...ไม่เพียงแต่เน้น iOS เท่านั้น

ดังที่ได้กล่าวไว้ก่อนหน้านี้ Swift ได้รับการดัดแปลงสำหรับ Linux แล้ว และโปรแกรมเมอร์บางคนก็ลองใช้มันบน Android ด้วยเช่นกัน จากประสบการณ์ของเรา ส่วนของเซิร์ฟเวอร์สามารถเขียนด้วย Swift ได้เช่นกัน

7)...ภาษาโอเพ่นซอร์ส

เห็นได้ชัดว่าเอกสารทางเทคนิคทั้งหมดสามารถอ่านได้ - ซึ่งโดยทั่วไปหมายความว่าสามารถใช้เพื่อประโยชน์ของผลิตภัณฑ์แอปพลิเคชันในอนาคตของคุณ และยิ่งไปกว่านั้น นักพัฒนาที่เต็มใจสามารถแนะนำวิธีแก้ปัญหาได้ เนื่องจาก Apple ได้สร้าง Jira สำหรับการติดตามจุดบกพร่องของ Swift

8)… ภาษาที่ปลอดภัยสำหรับการพิมพ์

ตรงกันข้ามกับ Objective-C ซึ่งไม่เคยมีมาก่อน ตามข้อมูลของ Stack Overflow ความปลอดภัยของประเภทไม่เพียงมีประโยชน์สำหรับรันไทม์ แต่ยังรวมถึงเวลาคอมไพล์ด้วย Swift ยังคงไม่ตรวจสอบประเภทขณะใช้งาน แต่ตรวจสอบระหว่างเวลาที่คอมไพล์ ซึ่งช่วยขจัดข้อผิดพลาดได้มากมาย

9)...ภาษาที่มี enums ประเภทตัวเลือก และสวิตช์ที่สะดวก

...ซึ่งโดยพื้นฐานแล้วหมายความว่าใช้งานได้ปลอดภัยกว่าเล็กน้อย Objective-C เป็นภาษาเชิงวัตถุมาโดยตลอด แต่ด้วยโครงสร้างบางอย่างที่เขียนขึ้นสำหรับ Swift ในที่สุดก็ทำให้เกิดปัญหาน้อยลงและเพิ่มความปลอดภัย อีกครั้งที่ Apple ได้เพิ่มประเภททางเลือกก่อนแล้วจึงเพิ่มการแจงนับแทนค่าจำนวนเต็ม ประเภททางเลือกช่วยตรวจสอบการมีอยู่ของวัตถุภายในโค้ด เพื่อหลีกเลี่ยงปัญหาเพิ่มเติม ด้วยความช่วยเหลือของการแจงนับและสวิตช์สำหรับอ็อบเจ็กต์ Apple หวังว่าจะสร้างประสบการณ์การเข้ารหัสที่น่าดึงดูดยิ่งขึ้น
ตัวอย่างของ Swift enums:

ตัวอย่างของ enums:
ตัวอย่างของ Swift enums อย่างไรก็ตามใน Obj-C มันจะเป็น
 enum CompassPoint { case north case south case east case west }
 typedef NS_ENUM(NSInteger, CompassPoint) { north, south, east, west };

สวิตช์:
ในรหัส Swift พวกเขาดูเหมือน ในทางตรงกันข้าม นี่คือสวิตช์ Obj-C
 switch character { case "a", "A": print("The letter A") case "b": print("The letter B”) default: print("Other letter") }
 switch (compassPoint) {
 case north: NSLog(@"North"); break; case south: NSLog(@"South"); break; case east: NSLog(@"East"); break; case west: NSLog(@"West"); break; default: break; }

ตัวอย่างประเภทตัวเลือก มีเฉพาะใน Swift
แกะตัวเลือก:
 var test: String? if let test = test { print(“\(test) is unwrapped now ??”) } guard let test = test else { print(“test is nil ??”) return } print(“\(test) is unwrapped!”)
####9)...อัปเกรดอย่างไม่หยุดยั้ง ดังที่ได้กล่าวไปแล้ว Swift สด 4 เวอร์ชันได้เห็นโลกแล้ว และวันนี้เรากำลังรอให้ Swift 3.1 จัดส่งโดยเร็วที่สุด นอกจากนี้ มีข่าวลือว่า [Swift 4.0] ที่กำลังจะมีขึ้น(https://themindstudios.com/blog/swift-4-vs-swift-3-differences/) จะมีความเข้ากันได้แบบย้อนหลัง ซึ่งหมายความว่าการรวมจากเวอร์ชันภาษาที่เก่ากว่า 3.1, 3.0 และอื่นๆ จะง่ายขึ้นในอนาคต

อ่านเพิ่มเติม: รูปแบบสถาปัตยกรรมสำหรับการพัฒนา iOS

มันคือทั้งหมดที่ Swift- ดี

ข้อดีของการใช้ Swift เหนือ Objective-C

มันจะเป็นข้ออ้างที่ไม่ได้รับการสนับสนุนหากมีคนพยายามพูดเกี่ยวกับเทคโนโลยีก่อนที่จะลงมือทำจริง เมื่อพิจารณาจากประสบการณ์ที่เรามีใน Mind Studios แล้ว Swift ค่อนข้างสะดวกในการทำงานด้วย
แอปพลิเคชั่นล่าสุดของเราหลายตัวเขียนด้วย Swift รวมไปถึง:

  • Gadh iOS - แอปที่พิสูจน์การปรึกษาหารือทางโทรศัพท์และวิดีโอออนไลน์กับทนายความของคุณ
  • Stern Fit - โซเชียลเน็ตเวิร์กสำหรับนักกีฬาผู้คลั่งไคล้
  • TapToTrip - เส้นทางที่สะดวกและตัววางแผนการเดินทาง
  • LIT - EPUB eReader ระดับพรีเมียม
  • Unagrande YogaClub - บทเรียนวิดีโอโยคะสำหรับผู้หลงใหลในตัวเอง
    แอปพลิเคชั่นที่กล่าวถึงก่อนหน้านี้ทั้งหมดเกี่ยวข้องกับเทคโนโลยีต่างๆ ซึ่งสามารถนำไปใช้กับ Swift ได้อย่างง่ายดาย

คุณต้องการค้นหาเพิ่มเติมเกี่ยวกับชุดพัฒนาความเป็นจริงเสริมหรือไม่

สรุปว่าควรใช้ภาษาอะไร?

คำถามนี้ไม่มีคำตอบที่เป็นสากล ในอีกด้านหนึ่ง อย่างที่มักเกิดขึ้นในด้านไอที - เทคโนโลยีที่ใหม่ที่สุดมักจะเป็นวิธีแก้ปัญหา ในทางกลับกัน การเปลี่ยนม้าในช่วงกลางน้ำอาจไม่ใช่นโยบายที่ดีที่สุด เนื่องจากแต่ละโครงการมีความแตกต่างกัน ดังนั้น ไม่ว่าคุณจะตัดสินใจทำอะไร เพียงตรวจสอบให้แน่ใจว่าโมเดลธุรกิจเหมาะสมกับอุตสาหกรรมการตลาดเฉพาะนี้และคุณลักษณะที่คุณเลือกไว้สำหรับผลิตภัณฑ์ในอนาคตของคุณ

เขียนโดย Max Mashkov, Yurii Smirnov และ Elina Bessarabova

ต้องการคำปรึกษาว่าจะใช้เทคโนโลยีใดสำหรับโครงการของคุณ วางสาย!