Ask HN: आप में से कितने Apple डेवलपर अभी भी Objective C का उपयोग करते हैं?
Apple platform developers Objective-C पर टिके रहने और iOS व macOS work के लिए Swift अपनाने के बीच बँटे हुए हैं। कई लोग बड़े, स्थिर legacy codebases, बेहतर C/C++ interoperability, तेज़ compilation, और लंबे समय तक source compatibility के लिए Objective-C पर निर्भर हैं, जबकि अन्य Swift को उसकी modern language features, safer type system, और नए Swift-only APIs की पहुँच के लिए पसंद करते हैं। इस बात पर व्यापक सहमति है कि नए apps आम तौर पर Swift में लिखे जाते हैं, लेकिन मौजूदा software को maintain करने और lower-level system behavior समझने के लिए Objective-C का ज्ञान अभी भी मूल्यवान है।
Objective-C अभी भी कहाँ उपयोग होता है
- कई production apps (खासकर पुराने ऐप्स और कुछ “AAA”/FAANG-स्केल) में अभी भी बड़े ObjC codebases हैं।
- कुछ टीमें SDKs, cross‑platform C/C++ integrations, macOS‑specific work, और low‑level system APIs के लिए ObjC को डिफ़ॉल्ट मानती हैं।
- ObjC legacy Mac apps, Swift‑पूर्व लंबे समय से चल रहे iOS apps, और internal tooling में आम है; कई पोस्टर्स मानते हैं कि Apple खुद भी अभी भी काफी ObjC और C उपयोग करता है।
- कुछ hobbyists और solo devs नए ऐप्स पूरी तरह ObjC में बनाते हैं, अक्सर familiarity या simplicity के लिए।
डेवलपर्स Objective-C पर क्यों टिके रहते हैं
- Swift की तुलना में तेज़, predictable compile times और बेहतर debugger experience।
- उत्कृष्ट C/C++ interop और mixed codebases के लिए ObjC++।
- दशकों की backward compatibility वाला स्थिर language; बहुत पुराना ObjC भी compile हो जाता है।
- message passing और runtime dynamism (जैसे method swizzling) की perceived elegance और simplicity।
- Swift के पुराने breaking changes और migration pain से बचाव; कुछ लोग Apple की APIs और tools को बार-बार बदलने की प्रवृत्ति पर भरोसा नहीं करते।
- कुछ लोगों के लिए ObjC “काम कर देता है” और switch करने का कोई compelling business reason नहीं है।
Swift के बजाय इसे इस्तेमाल करने के तर्क
- अधिकांश नया code और नए apps अब Swift में लिखे जाते हैं; junior अक्सर ObjC जानते ही नहीं।
- नई Apple APIs increasingly Swift‑first या Swift‑only हैं, जिससे लंबे समय में ObjC सीमित हो जाता है।
- डेवलपर्स higher productivity की रिपोर्ट करते हैं: कम boilerplate, safer types/optionals, generics, async/await, और modern API usage आसान।
- Mixed projects अक्सर stable ObjC को छोड़कर नए files Swift में जोड़ते हैं।
Interop और Mixed Codebases
- Swift–ObjC interoperability को सामान्यतः अच्छा बताया जाता है, लेकिन जटिल projects में या जब Xcode का build graph टूटता है, तब यह fragile हो सकता है।
- Swift में C interop को कुछ लोग ठीक मानते हैं, कुछ इसे दर्दनाक बताते हैं (bridging headers, packaging, SPM/xCFramework quirks)।
- C++ interop: ऐतिहासिक रूप से ObjC बेहतर रहा है (ObjC++), हालांकि हालिया Swift C++ interop में सुधार हुआ है।
SwiftUI और Modern Frameworks
- SwiftUI पर राय बंटी हुई है: सरल UIs और “settings screens” के लिए बढ़िया, लेकिन complex, stateful views (जैसे maps) के लिए immature, buggy, और उपयोग में कठिन बताया जाता है।
- कुछ devs SwiftUI से बचते हैं और UIKit/AppKit पर टिके रहते हैं (चाहे ObjC में या Swift में); अन्य इसे सीमित use cases में major productivity gain मानते हैं।
Learning and Ecosystem
- पुराना code पढ़ने, Cocoa/AppKit internals समझने, और पुराने macOS APIs से जुड़ने के लिए ObjC अभी भी मूल्यवान है।
- कुछ learners ObjC से शुरू करते हैं क्योंकि classic Cocoa/AppKit के लिए modern Swift resources कम हैं।