यह 2014 है और कुछ साल बहुत देर हो चुकी है। फिर भी मुझे लगता है कि मेरी बात सही है:
IMHO इस चर्चा के अनुपात से बाहर उड़ा दिया गया थोड़ा सा। उपरोक्त ब्लॉग पोस्ट का हवाला देते हुए :
अधिकांश जावास्क्रिप्ट उपयोगिता पुस्तकालय, जैसे कि अंडरस्कोर, वेलेंटाइन, और वू, "देशी-पहले दोहरे दृष्टिकोण" पर भरोसा करते हैं। यह दृष्टिकोण मूल कार्यान्वयन को प्राथमिकता देता है, केवल मूल समकक्ष समर्थित नहीं होने पर वेनिला जावास्क्रिप्ट पर वापस गिरता है। लेकिन jsPerf ने एक दिलचस्प प्रवृत्ति का खुलासा किया: किसी सरणी या सरणी-प्रकार के संग्रह पर पुनरावृति करने का सबसे प्रभावी तरीका मूल कार्यान्वयन से पूरी तरह से बचना है, इसके बजाय सरल छोरों का चयन करना।
जैसे कि "सिंपल लूप्स" और "वेनिला जावास्क्रिप्ट" ऐरे या ऑब्जेक्ट मेथड इंप्लीमेंटेशन से ज्यादा देशी हैं। जीज़ ...
निश्चित रूप से सत्य का एक ही स्रोत होना अच्छा होगा, लेकिन ऐसा नहीं है। यहां तक कि अगर आपको बताया गया है, तो वेनिला भगवान नहीं है, मेरे प्रिय। मुझे माफ कर दो। एकमात्र धारणा जो वास्तव में रखती है वह यह है कि हम सभी जावास्क्रिप्ट कोड लिख रहे हैं, जिसका उद्देश्य सभी प्रमुख ब्राउज़रों में अच्छा प्रदर्शन करना है, यह जानते हुए कि उन सभी में समान चीजों के अलग-अलग कार्यान्वयन हैं। यह एक कुतिया के साथ सामना करने के लिए, इसे हल्के ढंग से करने के लिए है। लेकिन इसका आधार यह है कि आप इसे पसंद करते हैं या नहीं।
हो सकता है कि y'all बड़े पैमाने पर परियोजनाओं पर काम कर रहा हो, जिसमें twitterish प्रदर्शन की आवश्यकता हो ताकि आप वास्तव में प्रति सेकंड 850,000 (अंडरस्कोर) बनाम 2,500,000 (लॉश) पुनरावृत्तियों की सूची में अंतर देखें !
मैं एक नहीं हूँ। मेरा मतलब है, मैंने उन परियोजनाओं पर काम किया जहां मुझे प्रदर्शन के मुद्दों को संबोधित करना था, लेकिन वे न तो हल किए गए थे और न ही अंडरस्कोर और न ही लो-डैश के कारण थे। और जब तक मैं कार्यान्वयन और प्रदर्शन में वास्तविक अंतर नहीं पकड़ता (हम अभी C ++ की बात कर रहे हैं) एक चलने योग्य (वस्तु या सरणी, विरल या नहीं!) पर एक लूप कहते हैं, मैं नहीं बल्कि किसी के साथ परेशान हो जाता हूं। बेंचमार्क प्लेटफ़ॉर्म के परिणामों के आधार पर दावे जो पहले से ही जनमत हैं ।
इसे राइनो को केवल एक एकल अद्यतन की आवश्यकता है, जो कहता है कि राइनो ने अपनी एरे विधि विधियों को इस तरह से आग में सेट किया है कि एक भी "मध्ययुगीन लूप विधियां बेहतर और हमेशा के लिए प्रदर्शन नहीं करती हैं और क्या नहीं" पुजारी सरल तथ्य के चारों ओर अपने तरीके से तर्क दे सकता है कि सभी FF में अचानक सरणी विधियाँ उसके विचारपूर्ण ब्रेनफक की तुलना में बहुत तेज़ हैं। यार, तुम सिर्फ अपने रनटाइम वातावरण को धोखा देकर अपने रनटाइम वातावरण को धोखा नहीं दे सकते! प्रचार करते समय इसके बारे में सोचें ...
आपकी उपयोगिता बेल्ट
... अगली बार।
तो इसे प्रासंगिक बनाए रखने के लिए:
- यदि आप देशी ईश का त्याग किए बिना सुविधा में हैं तो अंडरस्कोर का उपयोग करें।
- यदि आप सुविधा में हैं और अपनी विस्तारित फीचर कैटलॉग (गहरी प्रति आदि) की तरह लो-डैश का उपयोग करें और यदि आपको तत्काल प्रदर्शन की सख्त आवश्यकता है और सबसे महत्वपूर्ण बात यह है कि देशी एपीआई की रूपरेखा के रूप में जल्द ही विकल्प के लिए समझौता न करें काम करने की राय। जो जल्द ही होने वाला है। अवधि।
- एक तीसरा उपाय भी है। DIY! अपने वातावरण को जानें। विसंगतियों के बारे में जानते हैं। उनका ( जॉन-डेविड का और जेरेमी का) कोड पढ़ें । इस का उपयोग न करें या यह बताए बिना कि एक संगति / संगतता परत की वास्तव में आवश्यकता क्यों है और आपके वर्कफ़्लो को बढ़ाता है या आपके ऐप के प्रदर्शन में सुधार करता है। यह बहुत संभव है कि आपकी आवश्यकताओं को एक साधारण पॉलीफ़िल से संतुष्ट किया जाए जो आप पूरी तरह से खुद को लिखने में सक्षम हैं। दोनों पुस्तकालयों में बस थोड़ी सी चीनी के साथ सादे वेनिला हैं। वे दोनों सबसे प्यारी पाई की सेवा करने वाले से लड़ते हैं । लेकिन मेरा विश्वास करो, अंत में दोनों केवल पानी से खाना बना रहे हैं। वहाँ कोई वेनिला भगवान नहीं है तो कोई वेनिला पोप नहीं हो सकता है, है ना?
जो भी दृष्टिकोण आपकी आवश्यकताओं के अनुकूल हो उसे चुनें। हमेशा की तरह। मैं कभी भी रायशुमारी रनटाइम धोखा देती है पर वास्तविक कार्यान्वयन पर कमियाँ चाहते हैं, लेकिन यह भी आजकल स्वाद का मामला है। गुणवत्ता संसाधनों जैसे http://developer.mozilla.com और http://caniuse.com पर जाएं और आप ठीक रहेंगे।