जवाबों:
डिस्क्लेमर: मैं बज़ेल पर काम करता हूं और मैं ग्रैडल से पूरी तरह परिचित नहीं हूं। हालाँकि, मेरे एक सहकर्मी ने दो प्रणालियों की तुलना लिखी थी, जिसे मैं यहाँ परानुपरित करूँगा:
बाजेल और ग्रैडल निर्माण अनुभव के विभिन्न पहलुओं पर जोर देते हैं। कुछ हद तक, उनकी प्राथमिकताएं असंगत हैं - लचीलेपन और गैर-आज्ञाकारिता के लिए ग्रैडल की इच्छा उन प्रतिबंधों को सीमित करती है जो बिल्ड संरचना पर रख सकते हैं, जबकि विश्वसनीयता और प्रदर्शन के लिए बेज़ेल की इच्छा अनिवार्य रूप से गैर-परक्राम्य प्रतिबंधों को लागू करती है।
ग्रैडल उन्हीं सिद्धांतों को महत्व देता है, जो बज़ेल करता है, यानी ग्रैडल टीम प्रदर्शन (वृद्धिशील निर्माण, समानांतर कॉन्फ़िगरेशन और निष्पादन, ग्रैडल डेमॉन) पर बहुत ध्यान देती है, शुद्धता (सामग्री-आधारित "अप-टू-डेट" जाँच) और प्रतिलिपि प्रस्तुतिकरण (घोषित सिंटैक्स, निर्भरता संस्करण के लिए समृद्ध समर्थन, स्पष्ट रूप से घोषित निर्भरता)। और Bazel लचीली परियोजना लेआउट की आवश्यकता का सम्मान करता है।
सूक्ष्मता यह है कि ग्रैडल अच्छे अभ्यास को बढ़ावा देना चाहता है जबकि बाजेल को इसकी आवश्यकता है। ग्रैड का लक्ष्य चींटी अनुभव (बीच के परिणामों के साथ अपने स्वयं के प्रोजेक्ट संरचना को परिभाषित करने की स्वतंत्रता) और मावेन अनुभव (अलग-अलग परियोजना आवश्यकताओं के लिए कोई जगह नहीं के साथ सर्वोत्तम प्रथाओं को लागू करने) के बीच एक मध्यम जमीन के लिए करना है। बज़ेल का मानना है कि मजबूत गारंटी के त्याग के बिना लचीली परियोजना का समर्थन संभव है जो इसके शक्तिशाली वर्कफ़्लो को सक्षम करता है।
न तो दर्शन अधिक "सही" है - जो भी उपकरण एक परियोजना के लिए उपयुक्त है, वह उस विशेष परियोजना के मूल्यों पर निर्भर करता है।
ग्रैडल एक उच्च लचीली प्रणाली है जो उपयोगकर्ताओं को पूर्ण, विश्वसनीय निर्माण प्रवाह को आसान बनाने के लिए कम से कम बाधाओं के साथ बनाती है कि वे अपनी परियोजनाओं को कैसे व्यवस्थित करते हैं। यह एक सामान्य, ट्यूरिंग-पूर्ण, स्क्रिप्टिंग इंटरफ़ेस के साथ शक्तिशाली बिल्डिंग ब्लॉकों (जैसे स्वचालित निर्भरता ट्रैकिंग और पुनर्प्राप्ति, कसकर एकीकृत प्लगइन समर्थन) की आपूर्ति करके करता है जो इन ब्लॉकों को उन उपयोगकर्ताओं को जोड़ सकता है जो उपयोगकर्ता चाहते हैं।
ग्रेडल निम्नलिखित विशेषताओं पर जोर देता है:
Bazel आंतरिक Google परियोजनाओं को मज़बूती और कुशलता से बनाने की आवश्यकता से विकसित हुआ। क्योंकि Google का विकास वातावरण असामान्य रूप से बड़ा और जटिल है, Bazel अपने बिल्ड की अखंडता और उन्हें प्राप्त करने में असामान्य रूप से कम प्रदर्शन ओवरहेड के बारे में असामान्य रूप से मजबूत गारंटी प्रदान करता है।
यह प्रतिलिपि प्रस्तुत करने योग्य बिल्ड के आसपास निर्मित शक्तिशाली विकास वर्कफ़्लोज़ के लिए एक आधार प्रदान करता है, जहां एक "बिल्ड" एक अमूर्त इकाई बन जाता है जिसे संदर्भित किया जा सकता है, दोहराया जाता है, विभिन्न मशीनों के लिए पारित किया जाता है, और मनमाने ढंग से कार्यक्रमों और सेवाओं को पारित किया जाता है जैसे कि हर उदाहरण के लिए जाना जाता है। बिल्कुल वैसा ही।
Bazel निम्नलिखित विशेषताओं पर जोर देता है:
जैसा कि लेख के लिंक मर जाते हैं, यहाँ बाजेल पर ग्रैडल टीम के विचारों का एक सारांश है (अधिकांश लेख से सीधे हटाए गए हैं, जो मार्च 2015 में प्रकाशित हुआ था):
यह Google के लिए एक समस्या को हल करने के लिए डिज़ाइन किया गया था; एक बड़े पैमाने पर अखंड codebase (एलओसी करोड़ों)।
वर्तमान में प्रदान किए गए समानांतर लाभ का बेज़ल "हमारे आगामी नए कॉन्फ़िगरेशन और घटक मॉडल" से मेल खाता होगा (लेख की तारीख को ध्यान में रखते हुए)।
Bazel में उच्च स्तरीय घोषणात्मक बिल्ड भाषा नहीं है जो बिल्ड को डेवलपर्स के लिए उपयोग करना आसान बनाता है। Google पर इसकी भरपाई एक विशेष सेवा दल के साथ की जा सकती है जो बिल्ड टूल का मालिक है।
Bazel को एक्स्टेंसिबिलिटी के लिए नहीं बनाया गया है (हालाँकि Bazel डेवलपमेंट टीम ने इस बात का आश्वासन दिया है कि वे एक्स्टेंसिबिलिटी पर काम कर रहे हैं)।
गति को इस विचार के चारों ओर अनुकूलित किया जाता है कि सभी परिवर्तनशील निर्भरताएं एक बड़े रेपो में संग्रहीत होती हैं; इस केंद्रीय भंडार में सभी पुस्तकालयों और उपकरणों की जाँच की जाती है। अधिकांश उद्यम अधिक निर्भरता प्रबंधन की आवश्यकताओं वितरित किया है।
बाजेल केवल * निक्स है, यह विंडोज पर नहीं चलता है। यह संभावित उद्यम की एक बड़ी संख्या को समाप्त।
कोई प्लगइन पारिस्थितिकी तंत्र नहीं।
ग्रेड का उपयोग ज्यादातर जेवीएम इको सिस्टम (जावा, गगरूवी, स्काला, कोटलिन ...) में किया जाता है। यदि आपका प्रोजेक्ट इस क्षेत्र में है, और आपको यह सवाल पूछना है, तो ग्रैडल या मावेन एक बेहतर विकल्प होगा। एक ग्रेड बिल्ड का निवारण करने के लिए, आप केवल जावा और JVM पारिस्थितिकी तंत्र के साथ ही लड़ेंगे।
दिल में Bazel वृद्धिशील परिवर्तनों (साथ ही वितरित कैश का पता लगाने) का पता लगाने और आपको प्रतिक्रिया करने की अनुमति देता है, वृद्धिशील बिल्ड प्राप्त करने के लिए प्लगइन्स / नियम लागू करने की अनुमति देता है। सेटअप करने और इसे बनाए रखने के लिए CPP, Java और Python (Skylark) और सिस्टम एडमिन के ज्ञान में भी थोड़ा ज्ञान आवश्यक है। फिर अगर आपको सवाल पूछना है तो मुझे लगता है कि ग्रैडल या मावेन एक सस्ता निवेश होगा। Bazel के साथ आप जो भी परिभाषित कर सकते हैं, जो भी आप परिभाषित करते हैं, अधिक शक्ति, लेकिन एक कीमत पर।