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