यह सवाल नहीं है, "लोग अभी भी पुरानी प्रोग्रामिंग भाषाओं का उपयोग क्यों करते हैं?" मैं यह अच्छी तरह से समझता हूं। वास्तव में मैं जिन दो प्रोग्रामिंग भाषाओं को जानता हूं, वे सी और स्कीम हैं, दोनों 70 के दशक की हैं।
हाल ही में मैं C99 और C11 बनाम C89 में बदलावों के बारे में पढ़ रहा था (जो कि अभी भी अभ्यास में C का सबसे अधिक उपयोग किया जाने वाला संस्करण है और जो संस्करण मैंने K & R से सीखा है)। चारों ओर देखते हुए, ऐसा लगता है कि भारी उपयोग में हर प्रोग्रामिंग भाषा को कम से कम एक बार प्रति दशक या इसके बाद एक नया विनिर्देश मिलता है। यहां तक कि फोरट्रान को अभी भी नए संशोधन मिल रहे हैं, इस तथ्य के बावजूद कि इसका उपयोग करने वाले अधिकांश लोग अभी भी फोरट्रान 77 का उपयोग कर रहे हैं।
इसके विपरीत कहें, टाइपिंग सिस्टम TeX। 1989 में, TeX 3.0 की रिलीज़ के साथ, डोनाल्ड नुथ ने घोषणा की कि TeX फीचर-पूर्ण था और भविष्य के रिलीज़ में केवल बग फिक्स शामिल होंगे। इससे भी आगे, उन्होंने कहा है कि उनकी मृत्यु पर, "सभी शेष कीड़े विशेषताएं बन जाएंगे" और बिल्कुल आगे कोई अपडेट नहीं किया जाएगा। अन्य टीईएक्स को कांटा करने के लिए स्वतंत्र हैं और उन्होंने ऐसा किया है, लेकिन परिणामी प्रणालियों का नाम बदलकर यह संकेत दिया जाता है कि वे आधिकारिक टीएक्स से अलग हैं। ऐसा नहीं है क्योंकि नथ सोचता है कि TeX एकदम सही है, लेकिन क्योंकि वह एक स्थिर, अनुमानित प्रणाली के मूल्य को समझता है जो पचास वर्षों में वही काम करेगा जो अब करता है।
अधिकांश प्रोग्रामिंग भाषा डिजाइनर एक ही सिद्धांत का पालन क्यों नहीं करते हैं? बेशक, जब कोई भाषा अपेक्षाकृत नई होती है, तो यह समझ में आता है कि यह बसने से पहले तेजी से बदलाव के दौर से गुजरेगी। और कोई भी वास्तव में मामूली परिवर्तनों पर आपत्ति नहीं कर सकता है जो मौजूदा छद्म मानकों को संहिताबद्ध करने या अनपेक्षित रीडिंग को सही करने से ज्यादा नहीं करते हैं। लेकिन जब कोई भाषा अभी भी दस या बीस वर्षों के बाद सुधार की आवश्यकता लगती है, तो उसे पहले से ही इस्तेमाल करने की कोशिश करने के बजाय, केवल उसे कांटे या खत्म क्यों न करें? यदि कुछ लोग वास्तव में फोरट्रान में ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग करना चाहते हैं, तो उस उद्देश्य के लिए "ऑब्जेक्टिव फोरट्रान" क्यों नहीं बनाते हैं, और फोरट्रान को अकेले छोड़ देते हैं?
मुझे लगता है कि कोई भी कह सकता है कि भविष्य के संशोधनों की परवाह किए बिना, C89 पहले से ही एक मानक है और लोगों को इसका उपयोग जारी रखने से कुछ भी नहीं रोकता है। यह सत्य की तरह है, लेकिन धारणाओं के परिणाम हैं। GCC, पांडित्यिक मोड में, वाक्यविन्यास के बारे में चेतावनी देता है जो या तो पदावनत है या C99 में एक समान रूप से भिन्न अर्थ है, जिसका अर्थ है कि C89 प्रोग्रामर सिर्फ नए मानक की उपेक्षा नहीं कर सकते। तो C99 में कुछ लाभ होना चाहिए जो कि इस उपरि को उन सभी पर लागू करने के लिए पर्याप्त है जो भाषा का उपयोग करते हैं।
यह एक वास्तविक सवाल है, बहस करने का निमंत्रण नहीं। जाहिर तौर पर मेरी इस पर एक राय है, लेकिन फिलहाल मैं सिर्फ यह समझने की कोशिश कर रहा हूं कि यह सिर्फ इसलिए नहीं है कि चीजें पहले से ही कैसे की जाती हैं। मुझे लगता है कि सवाल है:
भाषा मानक को अपडेट करने के वास्तविक (वास्तविक या कथित) फायदे क्या हैं, क्योंकि पुरानी के आधार पर एक नई भाषा बनाने का विरोध किया गया है?
--std=x
स्विच) को लागू करेगा , इसलिए ऐसा नहीं है जैसे कि पुराने मानकों को अस्थिर करने वाले टूल में नए मानक परिणाम बनाते हैं।