Swift को दूसरी भाषाएँ क्यों सीखनी चाहिए?
\n\nकल्पना कीजिए कि आप एक पाँच सितारा रेस्तराँ के शेफ हैं। आपके पास एक बेहतरीन चाकू (Swift) है - तेज़, आरामदायक और एकदम सही। लेकिन फुगु मछली काटने के लिए आपको एक खास स्केलपेल (C) चाहिए, और परफेक्ट मूस बनाने के लिए एक महँगा ब्लेंडर (Python)। आप मुख्य चाकू से मछली नहीं काटेंगे, है ना? प्रोग्रामिंग में भी यही बात लागू होती है: Swift का दूसरी भाषाओं के साथ एकीकरण कमज़ोरी नहीं, बल्कि महारत की निशानी है।
\n\nSwift का इकोसिस्टम तेज़ी से बढ़ रहा है, लेकिन यह अकेले नहीं रह सकता। मशीन लर्निंग की लाइब्रेरीज़ Python में लिखी गई हैं, हाई-परफॉरमेंस पार्सर C में, और बैंकिंग सिस्टम का लीगेसी कोड C++ में। इन दुनियाओं को जोड़ने की क्षमता डेवलपर को असीमित अवसर देती है। इस लेख में हम तीन मुख्य परिदृश्यों पर चर्चा करेंगे: Swift को Python, C और C++ से कैसे जोड़ें।
\n\n1. Swift + Python: PythonKit का जादू
\n\nApple हमेशा से एकीकरण को "Swift-फ्रेंडली" बनाने के लिए जाना जाता है। PythonKit एक फ्रेमवर्क है जो आपको Swift से Python कोड को ऐसे कॉल करने देता है जैसे वह Swift का ही हिस्सा हो। इसे सेटअप करना बहुत आसान है: बस Swift Package Manager के ज़रिए डिपेंडेंसी जोड़ें।
\n\nप्रोजेक्ट सेटअप
\n\nPackage.swift में यह जोड़ें:
let package = Package(\n name: "MySwiftPythonApp",\n dependencies: [\n .package(url: "https://github.com/pvieito/PythonKit.git", branch: "master")\n ],\n targets: [\n .target(name: "MySwiftPythonApp", dependencies: ["PythonKit"])\n ]\n)\n\nउदाहरण: फिबोनाची संख्याएँ निकालना
\n\nमान लीजिए आपके पास फिबोनाची निकालने के लिए एक सुपर-ऑप्टिमाइज़्ड Python स्क्रिप्ट है। इसे Swift में दोबारा लिखने की ज़रूरत नहीं है, इसे सीधे कॉल करें!
\n\nPython फ़ाइल (fib.py):
\ndef fib(n):\n a, b = 0, 1\n for _ in range(n):\n a, b = b, a + b\n return a\n\nSwift कोड:
\nimport PythonKit\n\n// 1. मॉड्यूल लोड करें (.py के बिना)\nlet fibModule = try Python.attemptImport("fib")\n\n// 2. फंक्शन कॉल करें\nlet result = fibModule.fib(10)\nprint("10वीं फिबोनाची संख्या:", result) // आउटपुट: 55\n\n// 3. numpy के साथ काम करें (अगर इंस्टॉल है)\nlet np = Python.import("numpy")\nlet array = np.array([1, 2, 3, 4])\nprint(array * 2) // आउटपुट: [2 4 6 8]\n\nध्यान दें: Python.attemptImport एक सुरक्षित रैपर है। अगर मॉड्यूल नहीं मिलता, तो ऐप क्रैश नहीं होगा, बल्कि एरर मिलेगा। Swift और Python का एकीकरण PythonKit के ज़रिए macOS और Linux दोनों पर काम करता है (Python 3.x होना चाहिए)।
इसकी कब ज़रूरत है?
\n- \n
- जब आपको ऐसी लाइब्रेरी चाहिए जो Swift में उपलब्ध नहीं है (जैसे
pandasयाscikit-learn)। \n - जब आप Vapor पर सर्वर ऐप लिख रहे हैं और ETL प्रोसेस के लिए Python का उपयोग करना चाहते हैं। \n
- जब आप Python में ML मॉडल प्रोटोटाइप कर रहे हैं और फिर उसे iOS ऐप में एम्बेड करना चाहते हैं। \n
2. Swift + C: "हार्डवेयर" से सीधी बातचीत
\n\nC एक लीजेंडरी भाषा है। इस पर OS कर्नेल, ड्राइवर और यूनिक्स की आधी दुनिया लिखी गई है। Swift को इस तरह डिज़ाइन किया गया है कि C के साथ इंटरऑपरेबिलिटी बहुत आसान हो। आप बिना किसी रैपर के किसी भी C लाइब्रेरी के फंक्शन को कॉल कर सकते हैं।
\n\nC फंक्शन इम्पोर्ट करना
\n\nbridge.h फ़ाइल बनाएँ और उसमें ज़रूरी हेडर लिखें:
// bridge.h\n#include <math.h>\n#include <string.h>\n\nअब Swift में इन फंक्शन को सीधे इस्तेमाल करें:
\n// Swift\nimport Foundation\n\nlet angle = 45.0 * .pi / 180.0\nlet sine = sin(angle) // math.h का C फंक्शन\nprint("45° का साइन:", sine)\n\n// पॉइंटर्स के साथ काम करना\nlet str = "Hello, C!"\nstr.withCString { cString in\n let length = strlen(cString) // C फंक्शन\n print("स्ट्रिंग की लंबाई:", length)\n}\n\nअपनी खुद की C लाइब्रेरी बनाना
\n\nमान