2009-11-11 6 views
5

क्या Google के Golang पॉल के ग्राहम के पोस्ट 'Why Arc isn't Especially Object Oriented' में संबोधित भाषाओं के साथ समस्याओं का समाधान करते हैं?क्या Google की जाने-भाषा पॉल के ग्राहम की पोस्ट 'क्यों आर्क विशेष रूप से ऑब्जेक्ट ओरिएंटेड' में समस्या का समाधान करती है?

+2

क्या समस्याएं हैं? वह पोस्ट भारी ऑब्जेक्ट उन्मुख डिजाइनों को ओवरस्यूज करने वाली समस्याओं के बारे में बात करती है, न कि भाषाओं के साथ समस्याएं। – mquander

+0

@mquander: और वास्तव में पोस्ट समस्या से अधिक नकली फायदे के बारे में है। – ctd

उत्तर

7

इस दिशा में मेरी प्रारंभिक भावना है "यह बहुत जल्द ही यह बताने के लिए कि" अगर आप शाब्दिक बंद या मैक्रोज़ के बिना एक स्थिर टाइप भाषा है

1) वस्तु उन्मुख प्रोग्रामिंग रोमांचक है। कुछ डिग्री के लिए, यह इन सीमाओं के आस-पास एक तरीका प्रदान करता है। (Greenspun की दसवीं नियम देखें।)

जाओ समारोह शाब्दिक (docs देखें) जो अगर मैं इस सही ढंग से आप पैरामीटर के रूप में कार्य पारित करने के लिए, चाहे कहीं परिभाषित या बनाई गई तदर्थ अनुमति देते हैं पढ़ रहा हूँ का समर्थन करता है। क्योंकि यह सूट तरह वे सॉफ्टवेयर लिखने

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

यह बिंदु उत्तर देने के लिए बहुत दूर है।

3) वस्तु उन्मुख प्रोग्रामिंग क्या काम की तरह लग रहा का एक बहुत उत्पन्न करता है। Fanfold के दिनों में, वहाँ एक प्रकार का प्रोग्रामर था जो एक पृष्ठ पर कोड की पांच या दस पंक्तियों को केवल पंक्तियों द्वारा विस्तृत रूप से स्वरूपित टिप्पणियों की पंक्तियों में रखेगा। ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग इन लोगों के लिए क्रैक की तरह है: आपको अपने स्रोत कोड में इस मचान को शामिल करने देता है। कुछ ऐसा जो कि लिस्प हैकर पर एक प्रतीक को दबाकर संभाल सकता है, एक सूची कक्षा और विधियों की पूरी फ़ाइल बन जाती है। तो यदि आप स्वयं को मनाने के लिए चाहते हैं, तो किसी और को यह कहना अच्छा है कि आप काम कर रहे हैं।

चूंकि जाना वास्तव में ऑब्जेक्ट उन्मुख भाषा नहीं है, इसलिए आप संभवतः उस समस्या को हल कर सकते हैं जिसमें आप सहज हैं।

4) एक भाषा ही एक वस्तु उन्मुख कार्यक्रम है, तो यह उपयोगकर्ताओं के लिए बढ़ा दी हो सकता है। शायद हो सकता है। या शायद आप द्वारा ऑब्जेक्ट उन्मुख प्रोग्रामिंग ला ला कार्टी की उप-अवधारणाओं की पेशकश कर सकते हैं। अधिभार, उदाहरण के लिए, कक्षाओं से आंतरिक रूप से बंधे नहीं है। हम देखेंगे।

गो वस्तुओं के लिए एक दिलचस्प दृष्टिकोण प्रतीत होता है, जहां आपको बड़ी वस्तु के पेड़ों की चिंता/विकास करने की आवश्यकता नहीं है। ऐसा लगता है कि आपके ऑब्जेक्ट उन्मुख फैशन में आपके डेटा को शुद्ध ऑब्जेक्ट उन्मुख वातावरण में लॉक किए बिना टूल में टूल मौजूद हैं।

5) वस्तु उन्मुख कपोल-कल्पना कार्यक्रमों में से कुछ विशिष्ट प्रकार, सिमुलेशन और सीएडी सिस्टम की तरह के डोमेन पर बड़े करीने से मैप करें।

...

+0

गो प्रथम श्रेणी और उच्च-आदेश कार्यों का समर्थन करता है, इसलिए यह अच्छा है। इसके अलावा, यह ला ला एमएल/हास्केल/रैकेट टाइपकासिंग का समर्थन करता है। जिस चीज को मैं व्यक्तिगत रूप से गो के बारे में प्यार करता हूं वह यह है कि, जबकि इसके भीतर मुहावरे हैं, डिजाइनरों को यह समझना प्रतीत होता है कि विभिन्न स्थितियों में विभिन्न उपकरणों के लिए कॉल किया जाता है - ग्राहम के विपरीत। मुझे गलत मत समझो, ग्राहम शानदार है। यह सिर्फ प्रोग्रामिंग मुहावरे के बारे में बहस करना अंततः फलहीन है: यह पक्षपातपूर्ण कारीगरों के बीच या पक्षपातपूर्ण दार्शनिकों के बीच विचार-प्रक्रियाओं के बीच उपकरणों के बारे में तर्क के लिए उबाल जाता है। – jcc333

5

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

आर्क की बात करते हुए, यह बेकार है, और जब तक मैं गलत नहीं हूं, लिस्प समुदाय में भी लोग सोचते हैं - मेरा मुद्दा यह है कि यहां तक ​​कि स्मार्ट लोग भी गलतियां करते हैं।

फिर, पॉल एक स्मार्ट लड़का है, लेकिन इस विशेष टुकड़े में उसका पूरा दृष्टिकोण ऐसा लगता है कि यह निशान है।

1

प्रतीक्षा करें, हालांकि, वास्तव में ऑब्जेक्ट उन्मुख है? यह उस मोर्चे पर पूरी तरह से अज्ञेयवादी लगता है। आप गो के भीतर ओओपी या एफपी या इंपीरेटिव प्रोग्रामिंग का उपयोग कर सकते हैं। मेरा मतलब है, प्रोलॉग-स्टाइल "प्रोग्रामिंग" एक खिंचाव होगा, लेकिन अन्यथा ...

असल में, मैं तर्क दूंगा कि गो इस संबंध में स्कैला जैसा दिखता है: कुछ वस्तु प्रतिमान झूठ बोल रहे हैं, और फिर भी, वहां हैं भी lambdas और टाइपकेसिंग चारों ओर झूठ बोल रहा है।

+1

गो ऑब्जेक्ट उन्मुख है। यह ऑब्जेक्ट ओरिएंटेशन के लिए सामान्य-प्रेषण दृष्टिकोण का उपयोग करता है, जैसा कि सामान्य लिस्प और डायलन करते हैं। – PuercoPop

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