2011-08-29 21 views
11

स्मॉलटाक के हालिया परिचय ने मुझे 'शुद्ध' ऑब्जेक्ट उन्मुख शैली के अनुप्रयोग और लाभों पर प्रबुद्ध किया है। मैंने पहले रूबी में इसका लाभ देखा था, हालांकि गैर ऑब्जेक्ट उन्मुख if, unless इत्यादि की उपस्थिति प्रतीत होती है जैसे यह चीजों को सभी तरह से नहीं ले जाती थी।कुछ 'शुद्ध' वस्तु-उन्मुख भाषाओं में से कुछ क्या हैं?

यहां शुद्ध करके, मैं बुलियन & संग्रहों पर प्रवाह नियंत्रण विधियों का उपयोग करने के बजाय 'सबकुछ एक वस्तु है' (ब्लॉक या कुछ समान कार्यों के साथ) और प्रक्रियात्मक-शैली प्रवाह नियंत्रण जैसी चीजों के बारे में बात कर रहा हूं।

फिर भी, स्मॉलटाक जैसी भाषा में कुछ चीजें ऑब्जेक्ट उन्मुख नहीं होने के कारण खड़ी होती हैं। उदाहरण के लिए विशेष वाक्यविन्यास (: = 'की बजाय' है: 'या इसी तरह की विधि के बिना वैरिएबल असाइनमेंट करना संभव नहीं लगता है) और फ़ंक्शन से मूल्यों को वापस करने के लिए^ऑपरेटर की आवश्यकता होती है जो' प्रतीत नहीं होता है किसी भी वस्तु के लिए।

क्या ऐसी कोई भाषाएं हैं जो इस शैली को और भी आगे ले जाती हैं?

+0

शुद्धता का लाभ क्या है? शुद्धता ने अन्य कार्यात्मक भाषाओं की तुलना में हास्केल के पास काफी अधिक सीखने की वक्र बनाई है क्योंकि प्रक्रियाओं के दृष्टिकोण से मोनैड को समझना बहुत मुश्किल है। –

+2

@ क्रिस: हाँ, लेकिन मोनैड * शानदार * होते हैं जब आप उन्हें प्राप्त करते हैं। दूसरी तरफ, यह सवाल शुद्धता की बात को थोड़ा दूर ले जाने जैसा लगता है ... निश्चित रूप से, आप रिटर्न वैल्यू छोड़ सकते हैं और इसके बजाय ऑब्जेक्ट स्टेटस के माध्यम से जाने के लिए उस तरह के संचार की आवश्यकता होती है (एक विधि को कॉल करें जिसके परिणामस्वरूप कुछ भी नहीं होता है, फिर उपयोग करें 'self.result'), लेकिन एक कारण है कि हम प्रोग्रामर आमतौर पर जितना संभव हो सके सबकुछ के दायरे को रखने की कोशिश करते हैं। इसके अलावा, यह विधि श्रृंखला को तोड़ देगा क्योंकि कोई रिटर्न वैल्यू नहीं है, जब तक कि आप उस ऑब्जेक्ट प्रॉपर्टी को उस मान के रूप में परिभाषित न करें, लेकिन फिर हम जादू पर वापस आ जाएंगे। और सूची खत्म ही नहीं होती। – delnan

+1

मैं पूरी तरह से पहचानता हूं कि इस संबंध में शुद्धता चीजों को सुंदर वर्बोज़ और संभावित रूप से निष्पादित नहीं कर सकती है, लेकिन एक बहुत ही छोटे और लगातार नियम वाले भाषा में भी एक महत्वपूर्ण लाभ है। उस ने कहा, मुझे ऐसी भाषा मिलना अच्छा लगेगा जिसने चीजों को चरम पर ले लिया है, भले ही सिर्फ एक अच्छी चीज के अच्छे उदाहरण के लिए। – donalbain

उत्तर

8

एक लंबे समय Smalltalker मैं (यहाँ अन्य उत्तर की बहुत सारी की तुलना में) समझते हैं कि आप के बाद क्या कर रहे हैं के रूप में - और "स्व" भाषा थोड़ा और आगे जाना है, कम से करता है कम से कम जब यह असाइनमेंट की बात आती है। स्वयं में प्रोग्राम नहीं किया गया है, मैं उससे आगे टिप्पणी नहीं कर सकता। स्वयं के समान एक और नई भाषा स्लेट है, प्रोटोटाइपिकल भी है और असाइनमेंट के लिए संदेश भेजता है।

2

एफिल, स्मालटाक, और रूबी http://www.jvoegele.com/software/langcomp.html

+2

इस मामले में स्मॉलटॉक पर चर्चा और खारिज कर दिया गया था। रूबी स्मॉलटाक की तुलना में अधिक संकर है (उदाहरण के लिए, इसमें 'कॉल/सीसी' जैसी कार्यात्मक विशेषताएं हैं)। कृपया प्रश्न पढ़ें। – delnan

+0

वह लिंक वास्तव में एक महान संसाधन है। – donalbain

+0

यह दस साल पहले एक महान संसाधन था। जावा के बारे में जेनेरिक 2003 के बाद से है। – fdreger

संबंधित मुद्दे