बदलाव-दर-बदलाव की कीमत
हर तकनीकी चुनाव भविष्य पर एक दाँव है। कुछ दाँव समय के साथ अच्छे साबित होते हैं — सिमैंटिक HTML, प्रोग्रेसिव एन्हांसमेंट (progressive enhancement), सरोकारों का स्पष्ट पृथक्करण। कुछ नहीं होते — फ़्रेमवर्क-विशिष्ट पैटर्न जो आपको बाँध लेते हैं, बिल्ड टूल जो छोड़ दिए जाते हैं, ऐसे अमूर्तन जो उन समस्याओं को हल करते हैं जो आपके सामने कभी थीं ही नहीं।
ग़लत चुनाव की कीमत केवल माइग्रेशन नहीं है। यह अपने औज़ारों के साथ नहीं, उनके विरुद्ध काम करने की संचित रगड़ है। यह वह दस्तावेज़ीकरण है जो आपके चलाए जा रहे संस्करण से मेल नहीं खाता। यह उन पैटर्नों को बनाए रखने का मानसिक बोझ है जो तीन साल पहले तर्कसंगत थे, पर अब नहीं हैं।
क्या टिकता है
मेरे अनुभव में, जो चीज़ें समय के साथ अच्छी तरह टिकती हैं उनमें कुछ साझा गुण होते हैं:
- वे उबाऊ होती हैं। उबाऊ तकनीकें इसलिए उबाऊ हैं क्योंकि वे परखी जा चुकी हैं। उनके बग ज्ञात हैं। किनारे के मामले दस्तावेज़ित हैं। समुदाय के पास उत्तर हैं।
- वे सरल होती हैं। आसान नहीं — सरल। उनका सतही क्षेत्र छोटा होता है। वे एक काम करती हैं और अच्छी तरह करती हैं। वे पूरा स्टैक बनने की कोशिश करने की बजाय दूसरे औज़ारों के साथ जुड़ती हैं।
- वे मानकों का सम्मान करती हैं। HTML, CSS, HTTP, URL — ये वेब की भार-वाहक दीवारें हैं। इन्हें अमूर्तन के पीछे छिपाने के बजाय सीधे इन पर निर्माण करने से प्रायः ऐसे सिस्टम बनते हैं जो टिकते हैं।
- वे सुस्पष्ट होती हैं। जादू तब तक मज़ेदार है जब तक उसे डीबग न करना पड़े। सुस्पष्ट कोड, ज़ाहिर डेटा-प्रवाह और पूर्वानुमेय व्यवहार उन चतुर अमूर्तनों से कहीं अधिक मूल्यवान हैं जो बस कुछ कीस्ट्रोक बचाते हैं।
सरलता का चक्रवृद्धि लाभ
एक सरल सिस्टम जिसे आप पूरी तरह समझते हैं, उस परिष्कृत सिस्टम से अधिक मूल्यवान है जिसे आप आंशिक रूप से समझते हैं। यह हर स्तर पर सच है — एक अकेले फ़ंक्शन से लेकर पूरे आर्किटेक्चर तक।
सरलता का अर्थ कम कोड लिखना नहीं है। इसका अर्थ है ऐसा कोड लिखना जिसकी हर पंक्ति के होने का कारण आप स्पष्ट शब्दों में बता सकें। इसका अर्थ है समस्या को हल करने वाला वह तरीका चुनना जिसमें चलायमान पुर्ज़े सबसे कम हों। इसका अर्थ है काल्पनिक भावी आवश्यकताओं के लिए अनुकूलन करने की इच्छा का प्रतिरोध करना।
इस अनुशासन का प्रतिफल चक्रवृद्धि होता है। सरल सिस्टम बढ़ाने में आसान, डीबग करने में आसान, सौंपने में आसान और दबाव में समझने में आसान होते हैं। वे बेहतर टिकते हैं क्योंकि उनमें बिगड़ने के लिए कम कुछ होता है।
अभ्यास
दीर्घायु के लिए निर्माण एक अभ्यास है, कोई चेकलिस्ट नहीं। इसका अर्थ है कोई डिपेंडेंसी जोड़ने से पहले ठहरना। इसका अर्थ है यह पूछना कि क्या अमूर्तन उस घुमाव-फिराव के लायक है। इसका अर्थ है चतुराई के बजाय पठनीयता चुनना, और नवीनता के बजाय स्थिरता।
यह सबसे रोमांचक रास्ता नहीं है। लेकिन यही वह रास्ता है जो आपको अपने औज़ारों से लड़ने की बजाय उस काम में समय लगाने देता है जो सचमुच मायने रखता है।