पुराने ब्राउज़रों का समर्थन
आज आपको पुराने ब्राउज़रों का समर्थन करने के बारे में ज्यादा चिंता करने की ज़रूरत नहीं है। वे इंटरनेट एक्सप्लोरर 8 के मरने के बाद से अच्छे रहे हैं।
लेकिन सवाल बना हुआ है: आपको इंटरनेट एक्सप्लोरर 9 और अन्य ब्राउज़रों का समर्थन कैसे करना चाहिए? पहली जगह में, क्या आपको इंटरनेट एक्सप्लोरर 9 का समर्थन करने के बारे में सोचना भी चाहिए?
हम कुछ चीजों को देखेंगे जिन पर आप विचार करना चाहेंगे।
फीचर्स के बारे में सोचें, ब्राउज़रों के नहीं
मान लीजिए दुनिया में केवल दो फीचर्स और दो ब्राउज़र हैं।
- ब्राउज़र A फीचर A का समर्थन करता है लेकिन फीचर B का नहीं।
- ब्राउज़र B फीचर B का समर्थन करता है लेकिन फीचर A का नहीं।
यह पता लगाना संभव है कि कौन से ब्राउज़र किन फीचर्स का समर्थन करते हैं और वहां से कार्य करें।
// यह JavaScript है if (Browser A) { // A के लिए कोड} if (Browser B) { // B के लिए कोड}
लेकिन क्या होगा अगर और ब्राउज़र हैं? क्या होगा अगर दुनिया में ब्राउज़र C, D, और E हैं? उन फीचर्स का समर्थन करना कठिन हो जाता है जिनकी आपको आवश्यकता है यदि आप ब्राउज़रों के बारे में सोच रहे हैं।
एक बेहतर तरीका है: आप जांच सकते हैं कि कोई फीचर मौजूद है या नहीं। यदि यह मौजूद है, तो इसका उपयोग करें। यदि नहीं, तो फॉलबैक कोड प्रदान करें।
निम्नलिखित कोड ब्लॉक ब्राउज़र A से ब्राउज़र Z तक काम करता है।
// यह JavaScript है if (feature A) { // कोड यदि ब्राउज़र में फीचर A है} else { // कोड यदि ब्राउज़र में फीचर A नहीं है}
और अब आपको ब्राउज़रों के बारे में चिंता करने की ज़रूरत नहीं है।
यह तय करना कि किसी फीचर का उपयोग करना है या नहीं
बहुत से लोग इस आधार पर तय करते हैं कि कितने ब्राउज़र इसका समर्थन करते हैं। लेकिन, जैसा कि मैंने ऊपर तर्क दिया, ब्राउज़र मायने नहीं रखते।
जो मायने रखता है: क्या आप फीचर के लिए फॉलबैक आसानी से कोड कर सकते हैं? यदि आप फॉलबैक आसानी से कोड कर सकते हैं, तो आगे बढ़ें और फीचर का उपयोग करें। यदि आप फॉलबैक आसानी से कोड नहीं कर सकते, तो फीचर का उपयोग न करें।
कौन से ब्राउज़र समर्थन करने हैं यह तय करना
आपको अभी भी एक कटऑफ की आवश्यकता है।
आप किन ब्राउज़रों का समर्थन करने जा रहे हैं?
आप किन ब्राउज़रों का समर्थन नहीं करने जा रहे हैं? यदि आप ब्राउज़र का समर्थन नहीं करना चाहते हैं, तो उसके लिए अतिरिक्त फॉलबैक कोड लिखने का कोई मतलब नहीं है।
मेरा सबसे अच्छा जवाब है: देखें कि आपकी साइट का उपयोग कौन कर रहा है। वे किन ब्राउज़रों का उपयोग करते हैं? तदनुसार चलें।
हां, ऐसे बाहरी लोग हो सकते हैं जो इंटरनेट एक्सप्लोरर 6 पर आपकी वेबसाइट पर जाने का प्रयास करते हैं। लेकिन क्या आपके पास उस ब्राउज़र के लिए अतिरिक्त कोड लिखने का समय और ऊर्जा है जिसका लगभग कोई उपयोग नहीं करता?
क्या आपकी ऊर्जा कहीं और बेहतर खर्च होगी?
समर्थन का स्तर
मैं तर्क दूंगा कि समर्थन के चार स्तर हैं:
- सभी ब्राउज़रों में सब कुछ समान दिखना और काम करना चाहिए
- साइट समान दिखनी चाहिए, लेकिन कार्यक्षमता ब्राउज़रों में भिन्न हो सकती है
- कार्यक्षमता समान होनी चाहिए, लेकिन लुक ब्राउज़रों में भिन्न हो सकते हैं
- लुक और कार्यक्षमता दोनों ब्राउज़रों में भिन्न हो सकते हैं
आप पुराने ब्राउज़रों को किस तरह का समर्थन दे रहे हैं? क्यों?
समेटना
इसके बारे में सोचें:
- आप उस पुराने ब्राउज़र का समर्थन करने की कोशिश क्यों कर रहे हैं जिसे आप समर्थन करने की कोशिश कर रहे हैं?
- आप किस स्तर का समर्थन दे रहे हैं?
- क्या यह आपके द्वारा आवंटित संसाधनों के लायक है?
पुराने ब्राउज़रों का समर्थन - CSS
CSS सुविधाओं के लिए फॉलबैक प्रदान करने के दो तरीके हैं:
- प्रॉपर्टी फॉलबैक
- फीचर क्वेरीज
प्रॉपर्टी फॉलबैक
यदि कोई ब्राउज़र किसी प्रॉपर्टी या उसके संबंधित मान को नहीं पहचानता है, तो ब्राउज़र उस प्रॉपर्टी को पूरी तरह से नजरअंदाज कर देगा।
जब ऐसा होता है, तो ब्राउज़र पिछले मान का उपयोग करता है - या फॉलबैक करता है - जो उसे मिलता है।
यह फॉलबैक प्रदान करने का सबसे आसान तरीका है।
यहां एक उदाहरण है:
.layout { display: block; display: grid; }
इस उदाहरण में, CSS Grid का समर्थन करने वाले ब्राउज़र display: grid का उपयोग करेंगे। CSS Grid का समर्थन न करने वाला ब्राउज़र display: block पर फॉलबैक करेगा।
डिफ़ॉल्ट मान छोड़ें
यदि आप जिस एलिमेंट का उपयोग कर रहे हैं वह डिफ़ॉल्ट रूप से display: block है, तो आप display: block घोषणा को छोड़ सकते हैं। इसका मतलब है कि आप CSS Grid का समर्थन एक लाइन कोड से कर सकते हैं:
.layout { display: grid; }
CSS Grid का समर्थन करने वाले ब्राउज़र grid-template-columns जैसे अन्य CSS प्रॉपर्टीज पढ़ सकेंगे। CSS Grid का समर्थन न करने वाले ब्राउज़र नहीं पढ़ सकते।
इसका मतलब है कि आप अतिरिक्त CSS Grid प्रॉपर्टीज लिख सकते हैं बिना फॉलबैक मानों के बारे में चिंता किए।
.layout { display: grid; grid-template-columns: 1fr 1fr 1fr 1fr; grid-gap: 1em; }
फीचर क्वेरीज, या @supports, आपको बताते हैं कि कोई CSS प्रॉपर्टी या उसका संबंधित मान ब्राउज़र द्वारा समर्थित है या नहीं।
आप CSS फीचर क्वेरीज को JavaScript में if/else स्टेटमेंट्स की तरह सोच सकते हैं। वे इस तरह दिखते हैं:
@supports (property: value) { /* कोड जब प्रॉपर्टी या मान समर्थित है*/} @supports not (property: value) { /* कोड जब प्रॉपर्टी या मान समर्थित नहीं है */}
@supports उपयोगी है यदि आप चाहते हैं कि ब्राउज़र CSS केवल तभी पढ़ें यदि वे किसी विशिष्ट प्रॉपर्टी का समर्थन करते हैं।
ऊपर दिए गए CSS Grid उदाहरण के लिए, आप यह कर सकते हैं:
@supports (display: grid) { .layout { display: grid; grid-template-columns: 1fr 1fr 1fr 1fr; grid-gap: 1em; padding-left: 1em; padding-right: 1em; }}
इस उदाहरण में, padding-left और padding-right केवल उन ब्राउज़रों द्वारा पढ़े जाएंगे जो @supports और CSS Grid दोनों का समर्थन करते हैं।
जेन सिमंस के पास @supports काम का एक बेहतर उदाहरण है। वह -webkit-initial-letter जैसी प्रॉपर्टी का समर्थन करने वाले ब्राउज़रों का पता लगाने के लिए फीचर क्वेरीज का उपयोग करती हैं।
@supports (initial-letter: 4) or (-webkit-initial-letter: 4) { p::first-letter { -webkit-initial-letter: 4; initial-letter: 4; color: #FE742F; font-weight: bold; margin-right: 0.5em; }}
फीचर क्वेरीज के लिए समर्थन
फीचर क्वेरीज ने बहुत अच्छा समर्थन प्राप्त किया है। सभी वर्तमान प्रमुख ब्राउज़र फीचर क्वेरीज का समर्थन करते हैं।
क्या होगा अगर कोई फीचर समर्थित है, लेकिन फीचर क्वेरीज नहीं हैं?
यह पहले ट्रिकी हिस्सा हुआ करता था। जेन सिमंस और अन्य विशेषज्ञों ने हमें इस संभावना के बारे में चेतावनी दी है। आप इसे इस लेख में कैसे संभालें पढ़ सकते हैं।
मेरा मत है: मैं अब IE 11 का समर्थन नहीं करता, इसलिए मैं फीचर क्वेरीज का उपयोग उस तरह करता हूं जैसे मैंने ऊपर उल्लेख किया है।
प्रॉपर्टी फॉलबैक और फीचर क्वेरीज का एक साथ उपयोग करना
निम्नलिखित कोड को देखें। ब्राउज़र कौन से पैडिंग मान लागू करेंगे?
@supports (display: grid) { .layout { display: grid; grid-template-columns: 1fr 1fr 1fr 1fr; grid-gap: 1em; padding-left: 1em; padding-right: 1em; }}
.layout { padding-left: 2em; padding-right: 2em; }
उत्तर है: सभी ब्राउज़र 2em बाएं और दाएं पैडिंग लागू करेंगे।
क्यों?
ऐसा इसलिए होता है क्योंकि padding-left: 2em और padding-right: 2em को CSS फ़ाइल में बाद में घोषित किया गया था। बाद में घोषित प्रॉपर्टीज पहले घोषित प्रॉपर्टीज को ओवरराइड करती हैं।
यदि आप चाहते हैं कि padding-left: 2em और padding-right: 2em केवल उन ब्राउज़रों पर लागू हों जो CSS Grid का समर्थन नहीं करते हैं, तो आप प्रॉपर्टी ऑर्डर को स्वैप कर सकते हैं।
.layout { padding-left: 2em; padding-right: 2em; }
@supports (display: grid) { .layout { display: grid; grid-template-columns: 1fr 1fr 1fr 1fr; grid-gap: 1em; padding-left: 1em; padding-right: 1em; }}
नोट: CSS की कैस्केडिंग प्रकृति के कारण फॉलबैक कोड को पहले घोषित करना हमेशा एक अच्छी प्रथा है।
इसका यह भी अर्थ है, यदि आप @supports और @supports not दोनों का उपयोग कर रहे हैं, तो आपको @supports not पहले घोषित करना चाहिए। यह आपके कोड को सुसंगत बनाता है।
/* यदि आप इसका उपयोग करते हैं तो हमेशा "@supports not" पहले लिखें */@supports not (display: grid) { .layout { padding-left: 2em; padding-right: 2em; }}
@supports (display: grid) { .layout { display: grid; grid-template-columns: 1fr 1fr 1fr 1fr; grid-gap: 1em; padding-left: 1em; padding-right: 1em; }}
अब बात करते हैं कि क्या साइट्स को ब्राउज़रों में समान दिखना चाहिए।
क्या साइट्स को ब्राउज़रों में समान दिखना चाहिए?
कुछ लोग मानते हैं कि साइट्स को ब्राउज़रों में समान दिखना चाहिए। वे सोचते हैं कि ब्रांडिंग महत्वपूर्ण है, और जोर देते हैं कि साइट्स को ब्रांड को संरक्षित करने के लिए सुसंगत दिखना चाहिए।
दूसरे लोग कहते हैं नहीं। वे मानते हैं कि उन्हें प्रोग्रेसिव एनहांसमेंट की भावना को अपनाना चाहिए। वे बेहतर ब्राउज़र वाले उपयोगकर्ताओं को अधिक प्यार दे सकते हैं।
दोनों दृष्टिकोण सही हैं, लेकिन वे अलग-अलग कोणों से आते हैं।
सबसे महत्वपूर्ण दृष्टिकोण उपयोगकर्ताओं का है। क्या आपकी साइट उपयोगकर्ताओं को वह प्रदान करने में सक्षम है जो वे लेने आए थे?
यदि हां, तो आपको स्थिरता पर बहुत सख्त होने की आवश्यकता नहीं है। आगे बढ़ें और बेहतर ब्राउज़र वाले उपयोगकर्ताओं को और भी बेहतर अनुभव दें!
समेटना
CSS सुविधाओं के लिए समर्थन प्रदान करने के लिए, आप उपयोग कर सकते हैं:
- प्रॉपर्टी फॉलबैक
- फीचर क्वेरीज
जब आप CSS लिखते हैं, तो सुनिश्चित करें कि आप फॉलबैक कोड को पहले घोषित करते हैं, फिर बेहतर समर्थन वाले ब्राउज़रों के लिए कोड का दूसरा सेट।
पुराने ब्राउज़रों का समर्थन - JavaScript
पुराने ब्राउज़रों के लिए JavaScript समर्थन प्रदान करना आसान है। ज्यादातर समय आपको बस एक पॉलीफिल का उपयोग करने की आवश्यकता होती है।
लेकिन आप और भी चीजें कर सकते हैं।
पॉलीफिल क्या है?
एक पॉलीफिल कोड का एक टुकड़ा है जो ब्राउज़रों को बताता है कि JavaScript फीचर को कैसे लागू किया जाए। एक बार जब आप पॉलीफिल जोड़ते हैं, तो आपको समर्थन के बारे में चिंता करने की ज़रूरत नहीं है। यह काम करेगा।
यहां बताया गया है कि पॉलीफिल कैसे काम करता है:
- यह जांचता है कि फीचर समर्थित है या नहीं
- यदि नहीं, तो यह फीचर का समर्थन करने के लिए कोड जोड़ता है
यहां पॉलीफिल काम का एक उदाहरण है। यह जांचता है कि ब्राउज़र Array.prototype.find का समर्थन करता है या नहीं। यदि ब्राउज़र Array.prototype.find का समर्थन नहीं करता है, तो यह ब्राउज़र को बताता है कि इसका समर्थन कैसे किया जाए।
आप यह कोड MDN पर पा सकते हैं।
if (!Array.prototype.find) { Object.defineProperty(Array.prototype, 'find', { value: function(predicate) { // 1. Let O be ? ToObject(this value). if (this == null) { throw new TypeError('"this" is null or not defined'); } var o = Object(this); // 2. Let len be ? ToLength(? Get(O, "length")). var len = o.length >>> 0; // 3. If IsCallable(predicate) is false, throw a TypeError exception. if (typeof predicate !== 'function') { throw new TypeError('predicate must be a function'); } // 4. If thisArg was supplied, let T be thisArg; else let T be undefined. var thisArg = arguments[1]; // 5. Let k be 0. var k = 0; // 6. Repeat, while k < len while (k < len) { // a. Let Pk be ! ToString(k). // b. Let kValue be ? Get(O, Pk). // c. Let testResult be ToBoolean(? Call(predicate, T, « kValue, k, O »)). // d. If testResult is true, return kValue. var kValue = o[k]; if (predicate.call(thisArg, kValue, k, o)) { return kValue; } // e. Increase k by 1. k++; } // 7. Return undefined. return undefined; }, configurable: true, writable: true });}
नोट: एक पॉलीफिल शिम का एक सबसेट है। एक शिम एक लाइब्रेरी है जो एक नया API पुराने वातावरण में लाती है।
पॉलीफिल्स का उपयोग करना
पॉलीफिल्स का उपयोग करने के दो तरीके हैं:
- मैन्युअल रूप से पॉलीफिल करें, जैसे ऊपर के उदाहरण में
- एक लाइब्रेरी के माध्यम से एक साथ कई पॉलीफिल्स जोड़ें
मैन्युअल रूप से पॉलीफिलिंग
सबसे पहले, आपको जिस पॉलीफिल की आवश्यकता है उसे खोजना होगा। आपको गूगल करके एक ढूंढने में सक्षम होना चाहिए। स्मार्ट डेवलपर्स ने लगभग हर चीज के लिए पॉलीफिल्स बनाए हैं जिनकी आपको कभी आवश्यकता होगी।
एक बार जब आपको पॉलीफिल मिल जाए, तो ऊपर की प्रक्रिया का उपयोग करें पुराने ब्राउज़रों को समर्थन प्रदान करने के लिए।
एक साथ कई पॉलीफिल्स जोड़ना
कुछ लाइब्रेरीज में कई पॉलीफिल्स होते हैं। ES6-shim ऐसा ही एक लाइब्रेरी का उदाहरण है। यह पुराने ब्राउज़रों पर सभी ES6 फीचर्स के लिए समर्थन प्रदान करता है।
कटिंग-एज JavaScript फीचर्स का उपयोग करना
यदि आप कटिंग-एज JavaScript फीचर्स का उपयोग करना चाहते हैं, तो अपने बिल्ड प्रोसेस में Babel जोड़ने पर विचार करें।
Babel एक टूल है जो JavaScript को कंपाइल करता है। इस कंपाइल प्रक्रिया के दौरान, यह कर सकता है:
- आपके द्वारा आवश्यक किसी भी शिम/पॉलीफिल को जोड़ें
- प्रीप्रोसेसर्स को JavaScript में कंपाइल करें
दूसरे बिंदु पर अधिक:
Babel आपके बिल्ड प्रोसेस में ऑफलाइन काम करता है। यह उन फ़ाइलों को पढ़ सकता है जिन्हें आप इसमें पास करते हैं, और फिर उन्हें JavaScript में परिवर्तित कर सकते हैं जिसे ब्राउज़र पढ़ सकता है।
इसका मतलब है कि आप Flow, TypeScript, और अन्य कूल टेक्नोलॉजीज जैसी कटिंग-एज फीचर्स का उपयोग कर सकते हैं जिनके बारे में आपने सुना है। वे सभी ब्राउज़रों में काम करेंगे, बशर्ते आप उन्हें पहले Babel से पास करें!
क्या होगा अगर पॉलीफिल्स पर्याप्त नहीं हैं?
यदि पॉलीफिल्स फीचर का समर्थन करने के लिए पर्याप्त नहीं हैं, तो आप प्रश्न में ब्राउज़र के लिए आपके द्वारा प्रदान किए जाने वाले समर्थन की मात्रा पर पुनर्विचार करना चाह सकते हैं।
क्या आपको विभिन्न ब्राउज़रों में समान कार्यक्षमता प्रदान करने की आवश्यकता है? शायद आपको प्रोग्रेसिव एनहांसमेंट पर विचार करना चाहिए।
शायद आप ऐसे तरीके से कोड कर सकते हैं जो फीचर का उपयोग नहीं करता?
बहुत सारे शायद, लेकिन आपको बात समझ आ गई।
कैसे बताएं कि ब्राउज़र फीचर का समर्थन करता है या नहीं?
सबसे पहले, मैं caniuse.com चेक करता हूं। उस JavaScript फीचर का नाम लिखें जिसे आप चाहते हैं, और आप ब्राउज़र समर्थन स्तर देख पाएंगे।
यहां Abort Controller के साथ एक उदाहरण है
यदि caniuse.com मुझे कोई जानकारी नहीं देता, तो मैं MDN चेक करता हूं। अधिकांश लेखों के नीचे आपको ब्राउज़र समर्थन मिलेगा।
यहां फिर से Abort Controller के साथ उदाहरण:
JavaScript की लागत से सावधान रहें
जब आप पॉलीफिल्स का उपयोग करते हैं तो आप अधिक JavaScript कोड जोड़ते हैं।
अधिक JavaScript जोड़ने की समस्या है, ठीक है, अधिक JavaScript है। और अधिक JavaScript के साथ अधिक समस्याएं आती हैं:
- पुराने ब्राउज़र आमतौर पर पुराने कंप्यूटरों में रहते हैं। उनके पास पर्याप्त प्रोसेसिंग पावर नहीं हो सकती है।
- JavaScript बंडल साइट लोड में देरी कर सकते हैं। इस पर अधिक "The cost of JavaScript" द्वारा एडी उस्मानी में
समेटना
JavaScript फीचर्स के लिए समर्थन जोड़ना आसान है। ज्यादातर समय, आप एक पॉलीफिल जोड़ते हैं और इसे एक दिन कहते हैं। लेकिन जब आप ऐसा करते हैं तो JavaScript की लागत से अवगत रहें!
कभी-कभी, फीचर को पूरी तरह से छोड़ देना अच्छा हो सकता है।
पुराने ब्राउज़रों का समर्थन क्यों करें?
आपको पुराने ब्राउज़रों की परवाह क्यों करनी चाहिए?
कौन पुराने ब्राउज़रों का उपयोग करता है? शायद, पुराने कंप्यूटर वाले उपयोगकर्ता?
यदि वे पुराने कंप्यूटरों का उपयोग करते हैं, तो शायद उनके पास नया खरीदने के लिए पैसे नहीं हैं।
यदि उनके पास नया कंप्यूटर खरीदने के लिए पैसे नहीं हैं, तो वे शायद आपसे कुछ भी नहीं खरीदेंगे।
यदि वे आपसे कुछ नहीं खरीदेंगे, तो आपको उनके ब्राउज़रों का समर्थन करने की परवाह क्यों करनी चाहिए?
एक व्यवसायी व्यक्ति के लिए, यह विचार की एक पूरी तरह से उचित श्रृंखला है। लेकिन हम डेवलपर्स अभी भी पुराने ब्राउज़रों का समर्थन करने पर जोर क्यों देते हैं?
आइए इसे तोड़ें
मूल विचार प्रक्रिया पर धारणाओं की इतनी सारी परतें हैं।
"कौन पुराने ब्राउज़रों का उपयोग करता है? शायद, पुराने कंप्यूटर वाले उपयोगकर्ता? यदि वे पुराने कंप्यूटरों का उपयोग करते हैं, तो शायद उनके पास नया खरीदने के लिए पैसे नहीं हैं।"
हालांकि यह सच है कि लोग पुराने ब्राउज़रों का उपयोग करते हैं क्योंकि वे पुराने कंप्यूटरों का उपयोग करते हैं, हम यह नहीं मान सकते कि लोग नए खरीदने का जोखिम नहीं उठा सकते।
- शायद उनकी कंपनी उन्हें एक खरीदना नहीं चाहती।
- शायद वे अपने कंप्यूटर से खुश हैं, और वे अपग्रेड नहीं करना चाहते।
- शायद उनके पास अपने कंप्यूटर अपग्रेड करने का ज्ञान नहीं है।
- शायद उनके पास नए कंप्यूटरों तक पहुंच नहीं है।
- शायद वे मोबाइल फोन से बंधे हैं जिनमें अच्छे ब्राउज़र नहीं हैं।
मान न लें।
यदि उनके पास नया कंप्यूटर खरीदने के लिए पैसे नहीं हैं, तो वे शायद आपसे कुछ भी नहीं खरीदेंगे। यदि वे आपसे कुछ नहीं खरीदेंगे, तो आपको उनके ब्राउज़रों का समर्थन करने की परवाह क्यों करनी चाहिए?
हमें इस बिंदु पर बात करने के लिए अन्य क्षेत्रों में ज़ूम आउट करना होगा।
व्हीलचेयर एक्सेसिबिलिटी
यदि आप सिंगापुर गए हैं, तो आपने देखा होगा कि लगभग हर सीढ़ी के बगल में एक रैंप या लिफ्ट है।
लेकिन क्यों? सरकार और निजी निगम लिफ्ट और रैंप पर पैसा क्यों खर्च करते हैं? जब सीढ़ियां लोगों को निचले स्तर से ऊंचे स्तर पर लाने के लिए पर्याप्त हैं तो उन्हें क्यों बनाएं?
कुछ लोग सीढ़ियों का उपयोग करने में सक्षम नहीं हैं। वे अपने पैरों से नहीं चल सकते। उन्हें व्हीलचेयर में बैठना पड़ता है, और वे खुद को सीढ़ियों पर नहीं चढ़ा सकते। लिफ्ट और रैंप इन लोगों की सेवा करते हैं।
और यह पता चला है कि अधिक लोग लिफ्ट और रैंप से लाभान्वित होते हैं।
- कमजोर घुटनों वाले लोग।
- उनके साथ साइकिल या स्कूटर वाले लोग।
- माता-पिता जो बेबी ट्रॉली धकेल रहे हैं।
यदि आप खुद को पहियों वाली किसी चीज को धकेलते हुए पाते हैं, तो आप बिना दो बार सोचे रैंप या लिफ्ट का उपयोग करेंगे। आपको भी लाभ होता है।
लेकिन समस्या यह है: रैंप या लिफ्ट संचालित करने से कोई एक पैसा भी नहीं कमाता? तो उन्हें क्यों बनाएं?
क्योंकि यह इसके लायक है।
और लायक का मतलब हमेशा पैसा नहीं होता।
वैश्विक तापन पर विचार करें
आप पृथ्वी पर रहते हैं। आप वैश्विक तापन के बारे में क्या महसूस करते हैं?
कुछ लोगों को परवाह नहीं है। जंगल जल जाएं तो ठीक है। कंपनियां नदियों को प्रदूषित करें और हवा में टन कार्बन डाइऑक्साइड छोड़ें तो ठीक है। यह उन्हें प्रभावित नहीं करता।
लेकिन लोगों का एक समूह है जो परवाह करता है। वे उस ग्रह से प्यार करते हैं जिस पर हम रहते हैं। वे अपने बच्चों को रहने के लिए एक बेहतर जगह देना चाहते हैं। उनके परवाह करने के बहुत सारे कारण हैं। और वे शायद यथासंभव अधिक संसाधन बचाना चाहते हैं।
आप कहां खड़े हैं?
क्या आप एक ऐसी कंपनी को पैसा देंगे जो संचालन करते समय पृथ्वी को नष्ट करती है?
शायद आप देंगे। शायद आप नहीं देंगे। शायद आपको परवाह नहीं है। तीनों विकल्प मान्य हैं।
और एक बार फिर, आप देखते हैं, यह हमेशा पैसे के बारे में नहीं है।
वेब सभी के लिए है
वेब के पीछे का सपना एक सामान्य सूचना स्थान का है जिसमें हम जानकारी साझा करके संवाद करते हैं।
— टिम बर्नर्स-ली
हम फ्रंटएंड डेवलपर्स वेब के संरक्षक हैं। वेब कैसे निकलता है यह हम पर निर्भर है। हम हर किसी को रैंप और लिफ्ट बनाने के लिए मजबूर नहीं कर सकते, लेकिन हम यह सुनिश्चित कर सकते हैं कि हम उन्हें खुद बनाएं।
चुनाव आप पर है, वास्तव में।
अगर आप परवाह नहीं करना चाहते तो आपको परवाह नहीं करनी है।
अच्छे फ्रंटएंड डेवलपर्स जिन्हें मैं जानता हूं? वे परवाह करते हैं। वे समावेशी होना चुनते हैं। यही हमें फ्रंटएंड डेवलपर्स बनाता है।
हम परवाह करते हैं।
लेकिन कभी-कभी हमारे पास बाधाएं और सीमाएं भी होती हैं। और हम उन सीमाओं के साथ काम करते हैं।
यह लेख मूल रूप से मेरे ब्लॉग पर पोस्ट किया गया था।
अगर आप और लेख चाहते हैं जो आपको बेहतर फ्रंट-एंड डेवलपर बनने में मदद करें तो मेरे न्यूज़लेटर के लिए साइन अप करें।