C++ रियल प्रोजेक्ट्स में: कंपनियों के केस जो आपको हैरान कर देंगे
\n\nजब हम "C++" सुनते हैं, तो ज़्यादातर लोगों को यूनिवर्सिटी की लैब, कंसोल कैलकुलेटर और स्मार्ट पॉइंटर्स पर बहस याद आती है। लेकिन असल में C++ एक अदृश्य भाषा है, जिस पर दुनिया के सबसे महत्वपूर्ण सिस्टम चलते हैं। इसके बिना हवाई जहाज नहीं उड़ेगा, Google लोड नहीं होगा, और आपका पसंदीदा गेम स्टार्ट नहीं होगा। इस आर्टिकल में हम उन कंपनियों के रियल केस देखेंगे जो प्रोडक्शन में C++ का उपयोग करती हैं, लाइव कोड देखेंगे और समझेंगे कि यह भाषा आज भी टॉप पर क्यों है।
\n\nC++ आज भी क्यों प्रासंगिक है? (त्वरित जानकारी)
\n\nकेस में जाने से पहले, C++ की मुख्य विशेषताओं को याद कर लेते हैं जो इसे रियल प्रोजेक्ट्स में अपरिहार्य बनाती हैं:
\n- \n
- बिना समझौता परफॉर्मेंस — मैनुअल मेमोरी मैनेजमेंट और zero-cost abstractions हार्डवेयर से अधिकतम लाभ उठाने देते हैं। \n
- हार्डवेयर तक सीधी पहुंच — एम्बेडेड, ड्राइवर और ऑपरेटिंग सिस्टम के लिए आदर्श। \n
- मल्टीथ्रेडिंग और एसिंक्रोनसी — आधुनिक C++ (11/14/17/20) समानांतरता के लिए शक्तिशाली टूल देता है। \n
- विशाल कोड बेस — लाखों लाइनों का लीगेसी कोड, जिसे कोई Rust या Go में नहीं लिखेगा। \n
अब सबसे दिलचस्प हिस्से पर आते हैं — यह रियल कंपनियों में कैसा दिखता है।
\n\nकेस 1: Google — सर्च और उससे भी ज़्यादा
\n\nGoogle में C++ का उपयोग कहाँ होता है?
\nआप हैरान होंगे, लेकिन Google दुनिया में C++ का सबसे बड़ा उपभोक्ता है। C++ में लिखे गए हैं:
\n- \n
- सर्च इंजन का कोर (Google Search)। \n
- Chrome (Blink इंजन, V8)। \n
- TensorFlow (बैकएंड का हिस्सा)। \n
- Google File System और Bigtable। \n
Google का रियल कोड: स्मार्ट पॉइंटर्स और परफॉर्मेंस
\nGoogle अपने खुद के स्मार्ट पॉइंटर्स (जैसे std::unique_ptr और कस्टम absl::StatusOr) का सक्रिय रूप से उपयोग करता है। यहाँ एक सरल उदाहरण है कि Google बिना एक्सेप्शन के एरर को कैसे हैंडल करता है (ज़्यादातर कोड में एक्सेप्शन प्रतिबंधित हैं):
#include <absl/status/statusor.h>\n#include <iostream>\n\n// फंक्शन जो एरर लौटा सकता है\nabsl::StatusOr<int> Divide(int a, int b) {\n if (b == 0) {\n return absl::InternalError("शून्य से भाग देना मना है!");\n }\n return a / b;\n}\n\nint main() {\n auto result = Divide(10, 2);\n if (result.ok()) {\n std::cout << "परिणाम: " << *result << std::endl;\n } else {\n std::cerr << "एरर: " << result.status().message() << std::endl;\n }\n return 0;\n}\n\nऐसा क्यों? हाई-लोड सिस्टम में एक्सेप्शन महंगे हो सकते हैं। Google StatusOr के ज़रिए स्पष्ट एरर चेकिंग पसंद करता है — यह अनुमानित परफॉर्मेंस देता है।
केस 2: Facebook (Meta) — C++ पर सोशल नेटवर्क
\n\nFacebook में C++ कहाँ है?
\nFacebook कई मुख्य कंपोनेंट्स में C++ का उपयोग करता है:
\n- \n
- HHVM — PHP के लिए वर्चुअल मशीन (C++ में लिखी गई)। \n
- Folly — हाई-परफॉर्मेंस C++ के लिए लाइब्रेरी। \n
- Proxygen — HTTP फ्रेमवर्क। \n
- न्यूज़ फीड के बैकएंड का हिस्सा। \n
उदाहरण: Proxygen के साथ एसिंक्रोनस HTTP सर्वर
\nFacebook ने Proxygen को प्रति सेकंड लाखों रिक्वेस्ट हैंडल करने के लिए डेवलप किया। यहाँ एक मिनिमल इको सर्वर है:
\n\n#include <proxygen/httpserver/HTTPServer.h>\n#include <proxygen/httpserver/RequestHandler.h>\n#include <proxygen/httpserver/ResponseBuilder.h>\n\nusing namespace proxygen;\n\nclass EchoHandler : public RequestHandler {\npublic:\n void onRequest(std::unique_ptr<HTTPMessage> headers) noexcept override {}\n \n void onBody(std::unique_ptr<folly::IOBuf> body) noexcept override {\n body_ = std::move(body);\n