2009-11-25 7 views
9

क्या कोई भाषा में first class functions रखने के कोई नुकसान हैं?प्रथम श्रेणी के कार्यों के नुकसान

जोएल इस में entry कहते

"Object-oriented programming languages aren't completely convinced that you should be allowed to do anything with functions." 

मैं यहाँ भोली हो सकता है, लेकिन क्यों सभी भाषाओं प्रथम श्रेणी कार्यों का समर्थन नहीं करते अगर वहाँ ज्यादा मुद्दों

उत्तर

7

एक आदर्श दुनिया में जहां नई सुविधाओं को विकसित करने के साथ कभी भी लागत नहीं थी, केवल एक ही नकारात्मक पक्ष जो मैं कार्यात्मक प्रोग्रामिंग तकनीकों को शामिल करने के लिए देख सकता हूं, उन डेवलपर्स के लिए भ्रम होगा जो कार्यात्मक तकनीकों से परिचित नहीं हैं (और मैं वास्तव में नहीं देखें कि जितना अधिक नकारात्मक होगा)।

हकीकत में, प्रथम श्रेणी के रूप में कार्य करने वाले कार्यों को आम तौर पर संकलक को महत्वपूर्ण पुनर्लेखन की आवश्यकता होती है। ऐसा करने की लागत लंबी अवधि के लाभ के खिलाफ वजन घटाना है।

2

इस सुविधा को जोड़ने से एक हो सकता है नहीं कर रहे हैं परिवर्तन को पेश करने में हानि की आवश्यकता भाषा कंपेलरों, दुभाषियों, और अन्य उपकरणों के एक महंगा पुनः लिखने की आवश्यकता है। यह एक नुकसान भी हो सकता है यदि भाषा की संस्कृति इस सुविधा द्वारा प्रदान किए गए फायदों के साथ पर्याप्त परिचित नहीं है, इस मामले में सुविधा जोड़ने का प्रयास अपशिष्ट है।

1

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

+0

आवश्यक नहीं है। प्रथम श्रेणी के कार्यों वाले भाषाएं हैं जिनका अर्थ नहीं है और जीसी (एफई सी ++) नहीं है। यद्यपि जीसी के बिना बंद करना अधिक कठिन है। – liori

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