7 पॉइंट द्वारा GN⁺ 2024-09-18 | 2 टिप्पणियां | WhatsApp पर शेयर करें
  • यह रिलीज़ Swift को और अधिक प्लेटफ़ॉर्म और डोमेन तक विस्तार देती है
  • Swift ऐप डेवलपमेंट भाषा के रूप में अच्छी तरह जानी जाती है, लेकिन यह लाइब्रेरी, इंटरनेट-स्केल सेवाओं, performance-critical code और कई अन्य उपयोगों के लिए भी बेहतरीन है
  • Swift 6 नए low-level programming features, embedded Swift language subset, विस्तारित Linux और Windows support, नए cross-platform API आदि के माध्यम से और अधिक विस्तारित हुआ है

भाषा और standard library

concurrency

  • Swift 6 एक नए language mode के माध्यम से concurrency code में data race को रोकने वाली safety प्रदान करता है।
  • -strict-concurrency=complete compiler flag के माध्यम से data race safety warnings प्रदान की जाती हैं।
  • नई synchronization library में low-level concurrency API शामिल हैं।

Typed throws

  • अब function अपने द्वारा throw किए जाने वाले error type को signature में स्पष्ट रूप से बता सकते हैं।
  • यह generic code में error type पास करने या memory allocation सीमित होने वाले environments में उपयोगी है।

ownership

  • Swift 5.9 में पेश किए गए noncopyable type को generic system के साथ integrate करके performance बेहतर की गई है।
  • ~Copyable syntax का उपयोग करके resources को model किया जा सकता है और performance optimize की जा सकती है।

C++ interoperability

  • Swift 6 C++ के move-only type, virtual methods, default arguments आदि को support करता है।
  • SWIFT_NONCOPYABLE annotation के माध्यम से C++ type को noncopyable type के रूप में expose किया जा सकता है।

embedded Swift

  • इसमें embedded software development के लिए language subset और compile mode शामिल हैं।
  • ARM और RISC-V bare-metal target को support किया जाता है।

128-bit integer

  • signed और unsigned 128-bit integer type जोड़े गए हैं।

productivity improvements

  • count(where:) जैसी productivity बढ़ाने वाली कई सुविधाएँ पेश की गई हैं।

debugging

@DebugDescription के माध्यम से custom LLDB summary

  • @DebugDescription macro का उपयोग करके LLDB में object को दिखाने का तरीका customize किया जा सकता है।

explicit modules के माध्यम से startup performance में सुधार

  • explicit module build का उपयोग करके debugger की startup performance में बड़ा सुधार किया गया है।

libraries

Foundation

  • सभी प्लेटफ़ॉर्म पर Foundation implementation को एकीकृत किया गया है।
  • macOS और iOS में उपयोग किए गए Swift implementation को Linux और Windows तक विस्तारित किया गया है।

Swift Testing

  • Swift Testing नाम की नई testing library पेश की गई है।
  • यह macros का उपयोग करके test लिखने और उन्हें व्यवस्थित करने में मदद करती है।

platform support

Linux के लिए पूर्ण static SDK

  • Linux के लिए fully statically linked executable बनाए जा सकते हैं।

नए Linux distributions

  • Debian, Fedora और Ubuntu 24.04 के लिए आधिकारिक support जोड़ा गया है।

Windows build performance

  • arm64 architecture के लिए prebuilt toolchain उपलब्ध कराई गई है।
  • Swift package manager अब Windows पर default रूप से builds को parallelize करता है।

अगले कदम

Swift 6 डाउनलोड करें

  • Swift.org/install पर आधिकारिक Swift 6 toolchain इंस्टॉल की जा सकती है।

Swift के साथ शुरुआत करें

  • Swift programming language book को नवीनतम Swift 6 syntax और features को दर्शाने के लिए अपडेट किया गया है।

package ecosystem देखें

  • Swift.org/packages पर विभिन्न packages देखे जा सकते हैं।

भाग लें

  • Swift 6 पर feedback और अनुभव साझा करके भाषा, tools, package ecosystem और community के भविष्य के विकास में योगदान दिया जा सकता है।

GN⁺ का सार

  • Swift 6 विभिन्न प्लेटफ़ॉर्म और डोमेन तक विस्तारित एक प्रमुख रिलीज़ है।
  • इसमें concurrency, C++ interoperability, embedded Swift जैसी कई नई सुविधाएँ शामिल हैं।
  • यह Swift Testing जैसी नई libraries और productivity improvements पेश करता है।
  • Linux और Windows के लिए support का विस्तार किया गया है और performance बेहतर बनाई गई है।
  • Swift 6 डेवलपर्स को अधिक संभावनाएँ और अधिक दक्षता प्रदान करता है।

2 टिप्पणियां

 
GN⁺ 2024-09-18
Hacker News की राय
  • governance में मौजूद अंतर्निहित टकरावों की वजह से Swift धीरे-धीरे खत्म हो रहा है

    • Swift Working Group™ open source community और Apple कंपनी के बीच टकराव मौजूद है
    • क्योंकि ज़्यादातर वेतन Apple देता है, इसलिए Apple का प्रभाव अधिक है
    • hardcoded compiler exceptions जैसे technical debt compiler codebase में स्थायी रूप से मौजूद हैं
    • Apple SwiftUI syntax को सुंदर बनाने के लिए बिना चर्चा के आधे-अधूरे concepts को आगे बढ़ा देता है
    • यह अब भी एक शानदार language है, लेकिन अगर Apple इसे खुला नहीं छोड़ता, तो लगता है कि आने वाले 10 सालों में इसका अच्छी तरह टिके रहना मुश्किल होगा
  • मैं Swift अभी नया-नया सीख रहा हूँ और अब तक यह ठीक लग रहा है

    • SwiftUI इस्तेमाल करते समय अक्सर यह error आता है: "कम्पाइल विफल: कम्पाइलर इस अभिव्यक्ति को उचित समय के भीतर type-check नहीं कर सकता; अभिव्यक्ति को अलग-अलग sub-expressions में बाँटकर देखें"
    • यह चौंकाने वाला है कि compiler खुद मदद माँग रहा है
  • safe concurrency और typed throws की वजह से Swift now Rust के ज़्यादा दोस्ताना version जैसा लगने लगा है

    • package ecosystem छोटा है, इसलिए शायद मैं इसे रोज़मर्रा में इस्तेमाल नहीं करूँगा
    • उम्मीद है कि cross-platform Foundation इसे बेहतर दिशा में ले जाएगा
  • cross-platform batteries-included development के लिए Swift 6 एक बड़ी छलांग है

    • Foundation का बहुत कुछ default रूप से मिलना एक बड़ा फ़ायदा है
    • Swift 6 में low-level improvements और cross-platform features इतने हैं कि यह लंबे समय में C, C++, Rust, Zig आदि को replace करने की कोशिश जैसा दिखता है
  • मैंने हाल ही में Swift और SwiftUI सीखना शुरू किया है और यह देखकर हैरानी हुई कि language काफ़ी complex है

    • खासकर reactive instance variables से जुड़ी चीज़ों में
    • @observableObject जैसे concepts समझ नहीं आते
    • इतने सारे तरीके हैं कि आखिर में बस तब तक कोशिश करता हूँ जब तक वह काम न करने लगे
  • मुझे लगा था Swift सिर्फ macOS तक सीमित रहेगा, लेकिन यह काफ़ी दिलचस्प है

    • Ubuntu package से Swift compiler को Debian में बदलते समय समस्याएँ आईं
    • ज़्यादातर features काम करते हैं, लेकिन sigterm signal जैसी साधारण चीज़ें भी काम नहीं करतीं
    • Swift एक शानदार language है और मुझे लगता है कि आज की सबसे advanced और smart languages में से एक है
    • SwiftUI को जिस तरह implement किया गया है, वह काफ़ी चौंकाने वाला है
    • language इस्तेमाल करने में आसान है और developer के वास्तविक उपयोग को ध्यान में रखकर बनाए गए advanced features और ideas से भरी हुई है
    • लेकिन compiler error messages और documentation बहुत unfriendly हैं
    • ज़्यादातर libraries अभी Linux पर ठीक से काम नहीं करतीं, लेकिन safety, speed, और development की खुशी के बीच संतुलन अच्छा रहा तो इसका भविष्य उज्ज्वल है
  • Swift को तय करना चाहिए कि उसे क्या करना है और उसी पर टिके रहना चाहिए

    • इसमें बहुत ज़्यादा syntactic sugar और आधे-अधूरे concepts हैं
  • मैंने SwiftGodot आज़माया, और game development में Swift का इस्तेमाल C# के GC lag से ज़्यादा दिलचस्प लगा

    • यह अभी Windows development libraries को share करना support नहीं करता
    • compile time लंबा है
    • changelog में Windows पर multi-threaded Swift package manager improvements का ज़िक्र है
  • धीरे-धीरे migrate कर पाना बहुत अच्छी बात है

    • Swift-6 mode में जाना, खासकर data race safety checks के साथ, बोझिल लग सकता है
    • नए tools इस्तेमाल किए जा सकते हैं, लेकिन language का 5.10 version इस्तेमाल करना जारी रखा जा सकता है
    • एक ही package को दो language modes में build किया जा सकता है, जिससे libraries version upgrade करते हुए भी उन clients को support कर सकती हैं जो अभी तैयार नहीं हैं
  • Swift language एक monster बन गई है

 
bus710 2024-09-19

ऐसा लगता है कि Swift जैसी शानदार भाषा शुरू करने के लिए अपेक्षाकृत महंगे Apple ecosystem को अपनाना लगभग अपरिहार्य है, और यह डेवलपर्स के लिए कोई छोटी बाधा नहीं बनता।