सबसे पहले, कुछ संदर्भ (सामान जो आप में से ज्यादातर वैसे भी जानते हैं):
हर लोकप्रिय प्रोग्रामिंग भाषा का एक स्पष्ट विकास होता है, इसका अधिकांश समय इसके संस्करण द्वारा चिह्नित होता है: आपके पास जावा 5, 6, 7 आदि, PHP 5.1, 5.2, 5.3 आदि हैं। नया संस्करण जारी करने से नए एपीआई उपलब्ध होते हैं, बग को ठीक करते हैं, कहते हैं नई सुविधाएँ, नई रूपरेखाएँ इत्यादि।
लेकिन भाषा की (या मंच की) समस्याओं के बारे में क्या? यदि और जब किसी भाषा में कुछ गलत है, तो डेवलपर्स इसे (यदि वे कर सकते हैं) से बचते हैं या वे इसके साथ रहना सीखते हैं।
अब, उन भाषाओं के डेवलपर्स को प्रोग्रामर से बहुत अधिक प्रतिक्रिया मिलती है जो उनका उपयोग करते हैं। इसलिए यह समझ में आता है कि जैसे-जैसे समय (और संस्करण संख्या) बढ़ता जाएगा, उन भाषाओं में समस्याएं धीरे-धीरे आएंगी लेकिन निश्चित रूप से दूर हो जाएंगी। असल में ऐसा नहीं है। क्यों? पीछे संगतता, यही कारण है कि। लेकिन ऐसा क्यों है? अधिक ठोस स्थिति के लिए नीचे पढ़ें।
सबसे अच्छा तरीका है कि मैं अपने सवाल का एक उदाहरण के रूप में PHP का उपयोग कर सकते हैं:
PHP को हजारों लोगों से प्यार और नफरत है। सभी भाषाओं में दोष हैं, लेकिन जाहिर तौर पर PHP विशेष है। की जाँच करें इस ब्लॉग पोस्ट । यह PHP में तथाकथित दोषों की एक बहुत लंबी सूची है। अब, मैं एक PHP डेवलपर नहीं हूं (अभी तक नहीं), लेकिन मैं इसे सभी के माध्यम से पढ़ता हूं और मुझे यकीन है कि उस सूची का एक बड़ा हिस्सा वास्तव में वास्तविक मुद्दे हैं। (यह सब नहीं है, क्योंकि यह संभावित व्यक्तिपरक है)।
अब, अगर मैं उन लोगों में से एक था जो सक्रिय रूप से PHP विकसित करते हैं, तो मैं निश्चित रूप से उन समस्याओं को ठीक करना चाहूंगा, एक-एक करके। हालांकि, अगर मैं ऐसा करता हूं, तो कोड जो भाषा के किसी विशेष व्यवहार पर निर्भर करता है, अगर वह नए संस्करण पर चलता है तो टूट जाएगा। इसे 2 शब्दों में समेटना: पश्चगामी अनुकूलता।
मुझे समझ में नहीं आ रहा है: मुझे पीएचपी को पीछे क्यों रखना चाहिए? यदि मैं उन सभी समस्याओं के साथ PHP संस्करण 8 जारी करता हूं, तो क्या मैं यह कहते हुए एक बड़ी चेतावनी नहीं दे सकता कि: "इस संस्करण पर पुराना मत चलाओ!"।
एक चीज है जिसे डिप्रेसेशन कहा जाता है। हमारे पास यह वर्षों से था और यह काम करता है। PHP के संदर्भ में: इन दिनों में देखें कि लोग सक्रिय रूप से mysql_*
कार्यों के उपयोग को कैसे हतोत्साहित करते हैं (और इसके बजाय अनुशंसा mysqli_*
और पीडीओ)। पदावनति कार्य। हम इसका उपयोग कर सकते हैं। हमें इसका उपयोग करना चाहिए। यदि यह कार्य करता है, तो इसे संपूर्ण भाषाओं के लिए काम क्यों नहीं करना चाहिए?
मान लें कि मैं (PHP का डेवलपर) ऐसा करता हूं:
- उन सभी दोषों के साथ PHP का एक नया संस्करण लॉन्च करें (मान लें 8)
- नई परियोजनाएं उस संस्करण का उपयोग करना शुरू कर देंगी, क्योंकि यह बहुत बेहतर, स्पष्ट, अधिक सुरक्षित आदि है।
- हालांकि, PHP के पुराने संस्करणों को नहीं छोड़ने के लिए, मैं इसे अपडेट जारी करता रहता हूं, सुरक्षा मुद्दों, बग्स आदि को ठीक करता हूं। यह उन कारणों के लिए समझ में आता है जो मैं यहां सूचीबद्ध नहीं कर रहा हूं। यह सामान्य अभ्यास है: उदाहरण के लिए देखें कि ओरेकल ने MySQL के संस्करण 5.1.x को कैसे अपडेट किया, भले ही यह ज्यादातर संस्करण 5.5.x पर केंद्रित था।
- लगभग 3 या 4 वर्षों के बाद, मैंने PHP के पुराने संस्करणों को अपडेट करना बंद कर दिया और उन्हें मरने के लिए छोड़ दिया। यह ठीक है, क्योंकि उन 3 या 4 वर्षों में, अधिकांश परियोजनाओं को वैसे भी PHP 8 में बदल दिया गया होगा।
मेरा सवाल है: क्या ये सभी कदम समझ में आते हैं? क्या ऐसा करना कठिन होगा? अगर यह किया जा सकता है, तो यह क्यों नहीं किया गया है?
हां, नकारात्मक पक्ष यह है कि आप पीछे की संगतता को तोड़ते हैं। लेकिन क्या यह कीमत चुकाने लायक नहीं है? उल्टा, 3 या 4 वर्षों में आपके पास एक ऐसी भाषा होगी, जिसकी 90% समस्याएं ठीक हो चुकी हैं .... एक ऐसी भाषा जिसके साथ काम करना अधिक सुखद है। इसका नाम इसकी लोकप्रियता सुनिश्चित करेगा।
संपादित करें : ठीक है, इसलिए मैंने खुद को सही ढंग से व्यक्त नहीं किया जब मैंने कहा कि 3 या 4 साल में लोग काल्पनिक PHP में चले जाएंगे 8. मेरा क्या मतलब था: 3 या 4 वर्षों में, लोग PHP 8 का उपयोग करेंगे यदि वे एक शुरू करते हैं नया काम।
mysql_*
उदाहरण के लिए, 5.5 में अपदस्थ किया गया था), लेकिन यह अप्रासंगिक है अगर होस्टिंग प्रदाताओं में से अधिकांश एक या दो संस्करण पीछे हैं (5.3 - दुर्भाग्य से - अभी भी बहुमत क्या है प्रदाता प्रदान करता है)।