ฉันควรใช้ Swift หรือ Objective-C เพื่อเรียนรู้การพัฒนาแอพ iOS หรือไม่

เผยแพร่แล้ว: 2017-02-04

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

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

ในปี 2014 Apple ได้เปิดตัวภาษาการเขียนโปรแกรม Swift ใหม่ล่าสุดที่ทำให้ทั้งชุมชนประหลาดใจ ในช่วง 2 ปีที่ผ่านมา ทีมงานหลักของ Swift ได้ทำซ้ำอย่างรวดเร็ว โดยได้เผยแพร่ภาษาเวอร์ชันต่างๆ มากมายเพื่อสร้างความสุขและความตกใจของชุมชน

สำหรับนักพัฒนาที่มีอยู่แล้ว Swift มีความหมายที่น่าสนใจและยังแนะนำความซับซ้อนเล็กน้อยสำหรับผู้มาใหม่ที่ต้องการเรียนรู้การพัฒนา iOS เป็นตัวเลือกที่ดีสำหรับนักพัฒนาทุกคนที่รู้จักการพัฒนา Mac หรือ iOS แล้วและต้องการเรียนรู้ – และช่วยกำหนดรูปแบบ – ภาษาใหม่

อย่างไรก็ตาม มีนักพัฒนาจำนวนมากที่ต้องการทดลอง ไม่ต้องการรับงานนักพัฒนา iOS และไม่รังเกียจที่จะจัดการกับข้อบกพร่องเพิ่มเติมในขณะที่พวกเขากำลังเรียนรู้ เพราะบางทีพวกเขาอาจสนใจที่จะเรียนรู้มันด้วย

ทำไมคุณควรเรียนรู้ Swift?

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

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

ปลอดภัย

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

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

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

สภาพแวดล้อมที่มีการโต้ตอบสูง

นอกเหนือจาก Swift แล้ว Apple ยังเปิดตัวสภาพแวดล้อมการเขียนโค้ดแบบโต้ตอบได้มากที่สุด 2 แบบ ซึ่งช่วยให้ผู้เริ่มต้นเรียนรู้วิธีเขียนโค้ด มี Xcode Playgrounds ที่เป็นสภาพแวดล้อมที่ช่วยให้ผู้เริ่มต้นทุกคนเรียนรู้วิธีเขียนโค้ด

มี Xcode Playgrounds ที่เป็นสภาพแวดล้อมและเป็นส่วนหนึ่งของแอพ Mac ที่เรียกว่า Xcode และช่วยให้คุณเรียนรู้และสำรวจ Swift ซึ่งเป็นส่วนต้นแบบของแอพของคุณ และพัฒนาสภาพแวดล้อมการเรียนรู้สำหรับผู้อื่น

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

สิ่งที่ดีที่สุดเกี่ยวกับ Swift ก็คือมันมีส่วนร่วมมากกว่าที่อื่น ๆ และให้คำติชมแบบทันที ทำให้เรียนรู้แนวคิดทั้งหมดได้ง่าย สภาพแวดล้อมประเภทนี้ไม่เจ๋งสำหรับ Swift แต่ Apple กำลังทำสิ่งที่ยอดเยี่ยมด้วยแอพ iPad ทำให้การเรียนรู้สำหรับผู้เริ่มต้นทุกคนเป็นเรื่องง่าย

ทันสมัย

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

ไม่ใช่เรื่องง่ายที่จะคิดออกแนวคิดโดยไม่สะดุดกับการอ่านโค้ด คุณจะไม่มีโปรแกรมขัดข้องเมื่อคุณลืมเครื่องหมายอัฒภาคที่ท้ายบรรทัด

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

กล่าวโดยย่อคือ การเรียนรู้และทำความเข้าใจพื้นฐานของการเขียนโปรแกรมซึ่งเป็นก้าวแรกในเส้นทางของคุณในการเรียนรู้การพัฒนา iPhone ความทันสมัยและความปลอดภัยที่จัดเตรียมโดยภาษาทั้งหมดช่วยลดอุปสรรคในการเข้า

ทำไมต้องเรียนรู้ Objective-C?

คำตอบจะค่อยๆ เปลี่ยนไปเมื่อหลายปีผ่านไป และ Swift ก็สร้างเส้นทางใหม่ให้กับชุมชนมากขึ้น อย่างไรก็ตาม มีเพียงสิ่งเดียวที่ต้องรู้เกี่ยวกับ Objective-C เนื่องจากเป็นภาษาที่แท้จริงสำหรับการพัฒนา iOS มาประมาณ 10 ปีแล้ว นอกจากนี้ หากคุณต้องการเป็นนักพัฒนา MacOS Objective-C เป็นตัวเลือกแรกนับตั้งแต่ยุค 80

กล่าวโดยย่อ ทุกอย่างใน iOS SDK ได้รับการพัฒนาใน Objective-C และทำงานได้ดีกับโมเดลการเขียนโปรแกรม Objective-C แม้ว่าคุณกำลังเขียนโค้ดใน Swift คุณจะโต้ตอบกับส่วนประกอบทั้งหมดที่เขียนด้วย Objective-C ไลบรารีและเฟรมเวิร์กของบุคคลที่สามนั้นส่วนใหญ่อยู่ใน Objective-C เนื่องจาก Objective-C มีมานานแล้ว

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

หากคุณได้ตัดสินใจที่จะเป็นนักพัฒนา iOS อย่างจริงจัง การอ่านและเขียนโค้ด Objective-C ก็เป็นสิ่งสำคัญเช่นกัน เหตุผลหลักเบื้องหลังคือ หากคุณได้งานเป็นนักพัฒนา iOS หรือได้รับโครงการเก่า โค้ดทั้งหมดจะถูกเขียนใน Objective-C

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

จำเป็นต้องเรียนรู้ทั้งสองภาษาหรือไม่?

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

บริษัทมองว่าภาษาระดับไฮเอนด์นี้เป็นแพลตฟอร์มแห่งอนาคต เป้าหมายหลักของภาษา Swift คือการขยายขอบเขตไปไกลกว่าการพัฒนา iOS และทำงานได้ดีกับ Swift ฝั่งเซิร์ฟเวอร์

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

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

ขณะเลือกระหว่าง Objective-C และ Swift ให้มองหาข้อควรพิจารณาทางเทคนิค

ทั้งภาษา Objective-C และ Swift ต่างก็มีประโยชน์ทางเทคนิคที่หลากหลาย ด้านล่างนี้ คุณจะพบปัจจัยที่ควรพิจารณา

ภาษารันไทม์

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

ความมั่นคงของรหัส

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

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

การสนับสนุนเครื่องมือ

ทีมงานทั้งหมดของ Xcode ได้ทำงานที่ยอดเยี่ยมในการอัปเกรดกระบวนการสร้างเพื่อรองรับ Swift ทีมงานต้องจัดการกับการใช้ภาษาที่ซับซ้อนและสนับสนุนการทำงานด้วยภาษาที่ต่างกันมาก มาพร้อมกับความประหลาดใจเล็กน้อยที่ IDE นั้นล่าช้าและการรองรับเครื่องมือสำหรับ Swift นั้นน้อยที่สุด

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

การทำงานกับ Foundation APIs

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

ใช้ประโยชน์จากรหัส C++

เช่นเดียวกับ API พื้นฐาน คุณสามารถใช้ไลบรารี C++ หรือพัฒนาบน C++ SDK ข้ามแพลตฟอร์มได้ เนื่องจากจะทำให้โครงการ Objective-C ยืมตัว คุณจะไม่สามารถนำเข้า C++ ไปยังไฟล์ Swift ได้

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

พิสูจน์อนาคต

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

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

บทสรุป

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