प्रोग्रामिंग भाषाओं की तुलना
जंग: कचरा संग्रहकर्ता के बिना स्मृति सुरक्षा
रस्ट का प्रस्ताव सटीक है: देशी-गति के प्रदर्शन को बनाए रखते हुए और बिना कचरा संग्रहकर्ता के रुकने के दौरान संकलन समय पर उपयोग-बाद-मुक्त और डेटा-रेस बग परिवारों को खत्म करें। उद्योग ने देखा, ओएस कर्नेल से रस्ट मॉड्यूल स्वीकार करने से लेकर सी-हेवी कोडबेस में सुरक्षा-फिक्सिंग बिग-हिटर्स तक; यह हमारे क्यों-जंग निबंध और गो, पायथन और सी++ के साथ आमने-सामने की तुलना के पीछे समर्पित लेख है।
मुख्य बिंदु
- उधार चेकर वह नवीनता है जो भुगतान करती है: स्वामित्व प्लस जीवनकाल संपूर्ण मेमोरी-भ्रष्ट सीवीई परिवारों को स्थिर रूप से हटा देता है (उपयोग-बाद-मुक्त, डबल-मुक्त, पुनरावृत्त अमान्यकरण, थ्रेड्स के बीच डेटा दौड़); वही एर्गोनोमिक कीमत बताती है कि क्यों इसका समुदाय इसे जल्दी सीखने की सलाह देता है।
- कोई भी कचरा संग्रहकर्ता विपणन नहीं कर रहा है: उद्योगों के सबसे अधिक मांग वाले किनारे के मामलों (एम्बेडेड, कर्नेल पथ, वास्तविक समय ऑडियो) में विलंबता-संगत स्मृति व्यवहार मायने रखता है; जीसी ठहराव के बिना रस्ट का मूल कोड प्रदर्शन ही संपूर्ण कारण है कि 'रस्ट में पुनर्लेखन' अन्य सभी चीज़ों के बजाय विशिष्ट हॉट पथों को लक्षित करता है।
- कार्गो अनुभव की खाई है: निर्भरता/वर्जनिंग/बिल्ड टूलींग प्लस क्रेट्स.आईओ पारिस्थितिकी तंत्र ऑनबोर्डिंग कहानी को विरासत संकलित-भाषा संपदा की तुलना में आसान बनाता है; सलाहकार डेटाबेस के विरुद्ध 'कार्गो ऑडिट' आपूर्ति श्रृंखला का उत्तर है।
- इंटरऑप इसे व्यावहारिक रखता है: सी के लिए एफएफआई सीमाएं मानक एकीकरण कहानी हैं (मौजूदा सी पुस्तकालयों को कॉल करें, अन्य भाषाओं से रस्ट में समान रूप से पृष्ठांकित करें), यही कारण है कि रस्ट ग्रीनफील्ड अलगाव की मांग करने के बजाय बड़े सिस्टम (ब्राउज़र, कर्नेल, वेब सर्वर) के अंदर रहता है।
- लागतें ईमानदार हैं: सीखने की अवस्था (उधार मॉडल अलियासिंग/डेटा स्वामित्व के बारे में विचारों को बदलता है) और संकलन समय तंग पुनरावृत्ति चक्रों में बड़ा होता है; सीआरयूडी-भारी उत्पाद गति पर टीमें अक्सर जीसी भाषाओं के साथ तेजी से शिप करती हैं (हमारा क्यों-जंग लेख बताता है कि कौन से घटक जंग में परिपक्व होते हैं और कौन से बने रहते हैं)।
- जहां यह व्यवहार में जीत रहा है: बुनियादी ढांचे के घटक और पार्सर (प्रॉक्सी/फ़िल्टर/टूल चेन), सीएलआई पारिस्थितिकी तंत्र, एम्बेडेड और कर्नेल मॉड्यूल, और सुरक्षा-महत्वपूर्ण पुनर्लेखन जहां एक मेमोरी बग की लागत इंजीनियरिंग वक्र की तुलना में अधिक है।
क्षेत्रीय टिप्पणी
रस्ट रीराइट ने अपना स्थान बना लिया, जिसने एक सी पार्सर को प्रतिस्थापित कर दिया जो प्रति वर्ष एक सीवीई का उत्पादन करता था: उधार चेकर को ऑनबोर्डिंग के दौरान तीन समान बग मिले जो सीवीई ट्रैकर कभी सामने नहीं आए थे। सीखने की अवस्था हटाए गए बग वर्गों की कीमत है।
अक्सर पूछे जाने वाले प्रश्न
क्या मेरी टीम को रस्ट में सब कुछ फिर से लिखना चाहिए?
नहीं: विश्वसनीयता-संवेदनशील कोर घटकों (पार्सर, प्रॉक्सी, कर्नेल के किनारे के मामले) को फिर से लिखें जहां सुरक्षा भुगतान मायने रखता है। हमारा क्यों-जंग लेख फैशन के बजाय ईमानदार घटक-लक्ष्यीकरण फ्रेम को कवर करता है।
उधार लेने वाला चेकर वास्तव में कितना तीव्र है?
सिस्टम-धाराप्रवाह डेवलपर्स के लिए सक्षमता के लिए सप्ताह, स्वामित्व-समृद्ध आर्किटेक्चर के लिए महीनों; भुगतान वहां प्रकट होता है जहां समवर्ती कोड जो एक बार दौड़ की स्थिति उत्पन्न करता है वह इसके बजाय सुरक्षित रूप से संकलित हो जाता है (जो कोई भी इसे लिखता है)।
इसकी तुलना गो हेड-टू-हेड से कैसे की जाती है?
संकलन समय गो की निर्माण गति से कहीं अधिक है; समवर्ती मॉडल भिन्न होते हैं (जंग स्वामित्व, गो चैनल); सीएलआई-प्लस-विश्वसनीयता पारिस्थितिकी तंत्र दोनों अनुकूल; हमारा रस्ट-बनाम-गो लेख प्रति कार्यभार प्रकार की ईमानदार सीमा को कवर करता है।
क्या अब लिनक्स कर्नेल में रस्ट चल रहा है?
हाँ: कर्नेल समर्थन उतरा (एडेप्टर ताकि मॉड्यूल रस्ट में लिखे जा सकें), और ड्राइवर/घटक हाशिये पर विलय हो गए हैं; औद्योगिक रूप से अपनाना अभी भी प्रारंभिक है लेकिन दिशा निर्धारित है।
प्रोग्रामिंग भाषाओं की तुलना में Kinetikatech कैसे सहायता करता है
आपको प्रोग्रामिंग भाषाओं की तुलना का विशेषज्ञ बनने की आवश्यकता नहीं: सिस्टम कार्य, स्क्रिप्टिंग और सेवाओं के लिए भाषाओं की तुलना, उत्पादन में वास्तव में क्या मायने रखती है: सुरक्षा गारंटी, कच्ची गति, आप किसे काम पर रख सकते हैं, और परिणामी सेवाओं को तैनात करना और पैच करना कितना दर्दनाक है। सर्वर प्रबंधन और वेबसाइट रखरखाव ठीक इसी हेतु है: सेटअप, hardening, निगरानी, और दिन-रात उपलब्ध मानव सहायता।