- भाषा, standard library, build system, और platform support में विस्तार करते हुए developer experience को बेहतर बनाया गया
- C interoperability को मजबूत करना, Android के लिए आधिकारिक SDK जोड़ना, embedded environment में सुधार, और DocC documentation tool का विस्तार प्रमुख बदलाव हैं
- Swift Package Manager, integrated build engine और prebuilt Swift Syntax support के ज़रिए cross-platform build consistency को बेहतर बनाता है
- Swift Testing में warning-level issue recording, test cancellation, image attachment जैसी नई सुविधाएँ जोड़ी गई हैं, जिससे testing flexibility बढ़ती है
- Android SDK के आधिकारिक रिलीज़ के साथ Swift का cross-platform development क्षेत्र और विस्तृत हुआ है, और Kotlin/Java apps के साथ integration संभव हुआ है
Swift 6.3 के प्रमुख अपडेट
- Swift 6.3, भाषा, standard library, build system, और platform support के पूरे क्षेत्र में विस्तारित सुविधाएँ प्रदान करता है
- C interoperability को मजबूत करना, Android के लिए आधिकारिक SDK जोड़ना, embedded environment में सुधार, और documentation tool DocC का विस्तार इसकी मुख्य बदलाव हैं
- इसका लक्ष्य developer experience को बेहतर बनाना और cross-platform development integration को आगे बढ़ाना है
भाषा और standard library
-
C interoperability
- नए
@c attribute के माध्यम से Swift functions या enum को C code में expose किया जा सकता है
@c(MyLibrary_callFromC) के रूप में custom C declaration name निर्दिष्ट किया जा सकता है
@c और @implementation को साथ में इस्तेमाल करने पर Swift में C header में घोषित functions को implement किया जा सकता है
- इस संयोजन में Swift, मौजूदा C declarations से मेल खाने की जाँच करता है
-
Module Name Selectors
- जब एक ही नाम वाले API कई modules से import किए जाएँ, तो
ModuleA::getValue() के रूप में module-specific call किया जा सकता है
Swift::Task syntax के माध्यम से concurrency और string processing API तक पहुँचा जा सकता है
-
library API performance control
- @specialize: generic API के specific types के लिए pre-specialized implementation प्रदान करता है
- @inline(always): inlining को force करके call site पर function body को expand करता है
- @export(implementation): ABI-stable libraries में function implementation को expose करके अतिरिक्त optimization की अनुमति देता है
- संबंधित proposals Swift Evolution dashboard में देखे जा सकते हैं
package और build सुधार
- Swift Package Manager में Swift Build integration preview शामिल है, जो सभी platforms पर एक consistent build experience प्रदान करता है
- integrated build engine के माध्यम से cross-platform development consistency को मजबूत किया गया है
- उपयोगकर्ता अपने packages पर सीधे test करके issues report कर सकते हैं
- SwiftPM 6.3 के प्रमुख सुधार
- Prebuilt Swift Syntax support: macro-only libraries में prebuilt
swift-syntax binaries का उपयोग किया जा सकता है
- flexible documentation inheritance control: symbol graph बनाने वाले command plugins में inherited docs शामिल करने या न करने को नियंत्रित किया जा सकता है
- package traits exploration feature:
swift package show-traits command से package के supported traits देखे जा सकते हैं
- अधिक विवरण SwiftPM 6.3 release notes में शामिल हैं
core library updates
-
Swift Testing
- warning-level issue recording:
Issue.record(..., severity: .warning) के साथ test fail किए बिना केवल warning दिखाना संभव है
- test cancellation feature:
try Test.cancel() से चल रहे test और उसकी child tasks को रोका जा सकता है
- image attachment support: Apple और Windows platforms पर testing के दौरान images attach की जा सकती हैं
- संबंधित proposals: ST-0012, ST-0013, ST-0014, ST-0015, ST-0016, ST-0017, ST-0020
-
DocC
- Markdown output support:
--enable-experimental-markdown-output option से Markdown documents जनरेट किए जा सकते हैं
- per-page static HTML content: `` के भीतर summary HTML insert करके search engine और accessibility को बेहतर बनाया जा सकता है
- code block annotation expansion:
nocopy, highlight, showLineNumbers, wrap जैसे नए format options जोड़े गए हैं
- इसे
--enable-experimental-code-block-annotations option से सक्षम किया जा सकता है
platform और environment
-
Embedded Swift
- C interoperability को मजबूत करना, debugging में सुधार, और linkage model को पूरा करने की दिशा में प्रगति सहित कई सुधार शामिल हैं
- विस्तृत जानकारी “Embedded Swift Improvements coming in Swift 6.3” ब्लॉग में देखी जा सकती है
-
Android
- Swift SDK for Android का पहला आधिकारिक रिलीज़
- Swift के साथ native Android apps development और Swift packages के Android builds को support करना संभव है
- Swift Java और Swift Java JNI Core के माध्यम से Kotlin/Java apps के साथ integration किया जा सकता है
- इसे Swift के cross-platform development expansion के लिए एक महत्वपूर्ण milestone माना जा रहा है
- getting started guide “Getting Started with the Swift SDK for Android” दस्तावेज़ में उपलब्ध है
अगले कदम
- Swift 6.3 toolchain को Install Swift पेज से install किया जा सकता है
- developers तुरंत नई सुविधाओं के साथ प्रयोग कर सकते हैं और feedback दे सकते हैं
1 टिप्पणियां
Hacker News की राय
Swift में ऐसी शानदार रिलीज़ देखना अच्छा लगा
v3 के बाद से मैंने इसे इस्तेमाल नहीं किया, लेकिन 2015~17 के आसपास Swift में Python को रिप्लेस करने की क्षमता थी
क्योंकि यह सरल, तेज़ था और C/C++ ecosystem के साथ भी अच्छी तरह फिट बैठता था। जब IBM server side को आगे बढ़ा रहा था, तब इसमें सचमुच संभावना थी
लेकिन Apple community को पर्याप्त रूप से साथ नहीं ला सका, और आखिरकार Swift Apple-केवल भाषा बनकर रह गया। अब इसकी complexity भी C++ के स्तर तक पहुँच गई है
मुझे Swift पसंद है, लेकिन Apple ecosystem के बाहर यह अभी भी critical mass पार नहीं कर पाया है। आखिरकार मैंने पिछले साल TypeScript पर switch कर लिया
सबसे बढ़कर, शायद ही कोई अपनी stack में स्वेच्छा से Apple जैसा gatekeeper शामिल करना चाहेगा
TensorFlow Swift project
CircuitPython embedded prototyping में भी उपयोगी था। Swift इस तरह के क्षेत्रों को ठीक से पकड़ नहीं पाया
ऊपर से Swift Linux पर 2016 में आया, Windows पर 2020 में, और FreeBSD पर तो 2025 में जाकर संभव हुआ
2010 के दशक के मध्य में Go, Julia, Rust, TypeScript, Solidity जैसी नई भाषाएँ लगातार आ रही थीं, इसलिए ज़्यादातर लोगों के पास एक-दो ही सीखने का समय था
उम्मीद थी कि Swift पूरी stack को कवर करने वाली भाषा बनेगा, लेकिन हक़ीक़त वैसी नहीं है
लगता है Apple ने मौका गँवा दिया
उदाहरण के लिए ClearSurgery Linux पर real-time components तक पूरी तरह Swift में लिखा गया है
पिछले हफ्ते मैंने xv6-riscv operating system को Zig, Nim, LISP और Swift में port किया
embedded Swift की प्रगति की वजह से यह एक उच्च-उत्पादकता वाली भाषा लगी। Memory access को wrap करने वाले abstractions भी साफ़-सुथरे थे
लेकिन compile speed बहुत धीमी थी, इसलिए आखिरकार मैं Nim पर फोकस करने लगा
अफ़सोस है कि Swift की compile speed improvements का ज़िक्र नहीं किया गया
Rust से भी धीमा compilation development experience को काफ़ी खराब कर देता है
अगर आप Go के fast build के आदी हैं, तो Swift में iterative development बहुत पीड़ादायक लगता है। भाषा खुद शानदार है, लेकिन feedback loop बहुत धीमा है
Swift 6.3 में पहली बार Android के लिए official SDK शामिल किया गया है
Windows के लिए 5 साल पुरानी blog post,
Linux के लिए GNOME guide है
अच्छा होगा अगर पुराने OpenSTEP की तरह एक बार development करके कई platforms पर deploy किया जा सके
noncopyable types में सुधार इस रिलीज़ का सबसे कम आंका गया हिस्सा है
अब Swift में unique ownership modeling कहीं अधिक व्यावहारिक हो गई है
Swift 6.3 के
@cattribute से अब Swift functions को C code में expose किया जा सकता हैलेकिन यह इतना देर से क्यों जोड़ा गया, यह सवाल है। C++ interoperability को पहले लाना अजीब प्राथमिकता लगता है
दूसरी ओर Swift को C में export करने से FFI spaghetti बन सकती है, और enum, ownership, null handling जैसी चीज़ों में ABI bugs आने की संभावना रहती है
ख़ासकर जब closures शामिल हों, तो calling convention बिगड़ सकता है और debugging में पूरा दिन निकल सकता है
पहले Swift से C program के लिए dylib बनाते समय
@cdeclइस्तेमाल करना पड़ता था, इसलिए अब official support देखकर अच्छा लगाmarketing से अलग असली बदलाव CHANGELOG और
Swift Evolution proposals list में देखे जा सकते हैं
6.3 मुख्य रूप से integration work पर केंद्रित रिलीज़ थी — stdlib, C/C++, swift-java interoperability, build system आदि
SPM धीरे-धीरे Xcode की features को absorb कर रहा है, और नया swift-build engine तथा prebuilt modules भी experimental हैं
लेकिन SPM और Xcode की interaction अब भी unstable है, और internal complexity बढ़ती जा रही है
भाषा की अपनी प्रगति शांत दिखती है, लेकिन lifetime control और concurrency coloring जैसे गहरे संरचनात्मक काम चल रहे हैं
कई OS, devices और CI environments के उलझाव के कारण Swift developers को हमेशा बदलाव के बीच संतुलन बनाए रखने की स्थिति में रहना पड़ता है
swift-builddefault बनने वाला हैofficial forum post के अनुसार,
Xcode इसे पहले से internally इस्तेमाल कर रहा है, लेकिन performance issues गंभीर हैं
संबंधित चर्चा भी है।
अगर SPM और Xcode एक ही engine इस्तेमाल करें तो सुधार हो सकता है, लेकिन ज़्यादा उम्मीद नहीं है
जानना चाहता हूँ कि नवीनतम Swift version में toolchain की स्थिति कैसी है। Swift Lint और Swift Format का support है या नहीं
किसी आधुनिक भाषा में built-in formatter और recommended lint rules होने चाहिए। सिर्फ़ भाषा नहीं, पूरा ecosystem महत्वपूर्ण है
swift formatऔरswift format lintसे सीधे इस्तेमाल किया जा सकता है