JavaScript — भाषाओं का राजदूत: Python, C++ और अन्य से कैसे करता है समझौता
\n\nडेवलपमेंट की दुनिया अब 'एक भाषा' तक सीमित नहीं रही। वो दिन गए जब कोई प्रोजेक्ट सिर्फ PHP या Java में लिखा जाता था। आज हम पॉलीग्लॉट प्रोग्रामिंग के युग में जी रहे हैं, और इस इकोसिस्टम में JavaScript मुख्य राजदूत की भूमिका निभाता है। यह Python से लेकर C++, Go से Rust तक, किसी के साथ भी काम कर सकता है। सवाल सिर्फ यह है कि यह कैसे संभव होता है।
\n\nआइए जानें कि JavaScript को दूसरी भाषाओं से कैसे जोड़ा जाता है। बिना घुमाव-फिराव के, असली कोड उदाहरणों और व्यावहारिक परिदृश्यों के साथ। आप सीखेंगे कि फ्रंटएंड और बैकएंड को एक साथ कैसे काम करवाया जाए, न कि एक-दूसरे से लड़ने दिया जाए।
\n\nJavaScript को दूसरी भाषाओं से क्यों जोड़ें?
\n\nसोचिए, क्यों मुश्किल बनाएं? Node.js है तो सब कुछ JS में लिख सकते हैं। लेकिन हकीकत इससे कहीं जटिल है। हर भाषा की अपनी खास ताकत होती है:
\n\n- \n
- Python — मशीन लर्निंग और डेटा साइंस का बादशाह। JS यहाँ बेकार है। \n
- C++ — गेम्स और ग्राफिक्स के लिए सबसे तेज़ परफॉर्मेंस। \n
- Java — एंटरप्राइज सॉल्यूशंस की विश्वसनीयता। \n
- Go — माइक्रोसर्विसेज में तेज़ी और एसिंक्रोनसी। \n
JavaScript को इन भाषाओं से जोड़कर आप हर एक का सबसे अच्छा फायदा उठा सकते हैं। आपको React पर एक खूबसूरत इंटरफेस मिलता है और अंदर से Python पर शक्तिशाली एनालिटिक्स। यह सपना जैसा लगता है? चलिए इसे हकीकत में बदलते हैं।
\n\nJavaScript को Python से जोड़ने के तरीके
\n\n1. child_process के ज़रिए Node.js से Python को कॉल करना
\n\nसबसे आसान और सीधा तरीका — Python स्क्रिप्ट को चाइल्ड प्रोसेस के रूप में चलाना। यह बहुत सुंदर नहीं है, लेकिन हर जगह काम करता है।
\n\n// app.js — Node.js Python को कॉल कर रहा है\nconst { exec } = require('child_process');\n\nfunction analyzeSentiment(text) {\n return new Promise((resolve, reject) => {\n exec(`python3 sentiment.py "${text}"`, (error, stdout, stderr) => {\n if (error) return reject(error);\n resolve(stdout.trim());\n });\n });\n}\n\n// उपयोग\n(async () => {\n const result = await analyzeSentiment('JavaScript सबसे अच्छी भाषा है!');\n console.log(`भावना: ${result}`);\n})();\n\n\nऔर यह रहा Python स्क्रिप्ट:
\n\n# sentiment.py\nimport sys\nfrom textblob import TextBlob\n\ntext = sys.argv[1]\nblob = TextBlob(text)\nprint(blob.sentiment.polarity)\n\n\nनुकसान: हर कॉल के लिए एक नया प्रोसेस बनता है। प्रोडक्शन के लिए python-shell या zerorpc का उपयोग करें।
2. REST API के ज़रिए जोड़ना (Flask + Node.js)
\n\nज़्यादा सही तरीका — Python पर एक माइक्रोसर्विस बनाएं और HTTP के ज़रिए उससे बात करें।
\n\n# server.py — Python Flask API\nfrom flask import Flask, request, jsonify\nimport joblib\n\napp = Flask(__name__)\nmodel = joblib.load('model.pkl')\n\n@app.route('/predict', methods=['POST'])\ndef predict():\n data = request.json\n prediction = model.predict([data['features']])\n return jsonify({'result': prediction.tolist()})\n\nif __name__ == '__main__':\n app.run(port=5000)\n\n\nJavaScript की तरफ:
\n\n// client.js — Node.js क्लाइंट\nasync function getPrediction(features) {\n const response = await fetch('http://localhost:5000/predict', {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({ features })\n });\n return response.json();\n}\n\n// कॉल का उदाहरण\ngetPrediction([1.2, 3.4, 5.6]).then(console.log);\n\n\nयह तरीका 90% मामलों में JavaScript को Python से जोड़ने के लिए उपयोग होता है। माइक्रोसर्विस आर्किटेक्चर ही असली राजा है।
\n\n3. ब्राउज़र में Python: Brython और Pyodide
\n\nक्या आप फ्रंटएंड पर ही Python चलाना चाहते हैं? Pyodide का उपयोग करें — यह CPython का WebAssembly पोर्ट है।
\n\n<!DOCTYPE html>\n<html>\n<head>\n <script src="https://cdn.jsdelivr.