मैं यह समझने की कोशिश कर रहा हूं कि जेडीके 8 लैंबडा एक्सपर्ट ग्रुप (ईजी) ने जावा प्रोग्रामिंग लैंग्वेज में नए फंक्शन टाइप को शामिल नहीं करने का फैसला क्यों किया।
मेलिंग सूची में जाने से मुझे फ़ंक्शन के प्रकारों को हटाने के बारे में चर्चा के साथ एक धागा मिला ।
कई बयान मेरे लिए अस्पष्ट हैं, शायद संदर्भ की कमी के कारण और कुछ मामलों में टाइप सिस्टम के कार्यान्वयन पर मेरे सीमित ज्ञान के कारण।
हालाँकि, कुछ ऐसे प्रश्न हैं जो मुझे विश्वास है कि मैं इस साइट में सुरक्षित रूप से तैयार कर सकता हूं जिससे मुझे बेहतर तरीके से समझने में मदद मिल सके कि उनका क्या मतलब है।
मुझे पता है कि मैं मेलिंग सूची में प्रश्न पूछ सकता हूं, लेकिन धागा पुराना है और सभी निर्णय पहले से ही हैं, इसलिए संभावना है कि मुझे नजरअंदाज कर दिया जाएगा, ऊपर से यह देखकर कि ये लोग पहले से ही अपनी योजनाओं में देरी कर रहे हैं।
फ़ंक्शन प्रकारों को हटाने के समर्थन में और सैम प्रकारों के उपयोग का समर्थन करने के अपने जवाब में, ब्रायन गोएट्ज़ कहते हैं:
कोई पुनरीक्षण नहीं। फ़ंक्शन के प्रकारों के लिए यह कितना उपयोगी होगा, इस बारे में एक लंबा सूत्र था। संशोधन के बिना, फ़ंक्शन प्रकार हॉबल्ड हैं।
मैं उस सूत्र का उल्लेख नहीं कर पाया जिसका वह उल्लेख करता है। अब, मैं समझ सकता हूं कि संरचनात्मक फ़ंक्शन प्रकार की शुरूआत जावा में नाममात्र प्रकार की प्रणाली में कुछ जटिलताओं का कारण हो सकती है, जो मैं समझ नहीं पा रहा हूं कि कैसे पैराट्राइज्ड एसएएम प्रकार संशोधन के संदर्भ में भिन्न हैं।
क्या वे दोनों एक ही संशोधन की समस्याओं के अधीन नहीं हैं? क्या किसी को समझ में आता है कि किस तरह के फ़ंक्शन प्रकार पैराट्राइज्ड एसएएम प्रकारों से भिन्न होते हैं?
एक अन्य टिप्पणी में गोएत्ज़ कहते हैं:
टाइपिंग के दो बुनियादी दृष्टिकोण हैं: नाममात्र और संरचनात्मक। एक नाममात्र की पहचान उसके नाम पर आधारित है; एक संरचनात्मक प्रकार की पहचान इस बात पर आधारित होती है कि यह किससे बना है (जैसे "int का अंतर, int" या "int to float से फ़ंक्शन"।) अधिकांश भाषाएँ ज्यादातर नाममात्र या अधिकतर संरचनात्मक चुनती हैं; ऐसी बहुत सी भाषाएं नहीं हैं जो "किनारों के आसपास" को छोड़कर नाममात्र और संरचनात्मक टाइपिंग को सफलतापूर्वक मिलाती हैं। जावा लगभग पूरी तरह से नाममात्र है (कुछ अपवादों के साथ: सरणियाँ एक संरचनात्मक प्रकार हैं, लेकिन नीचे हमेशा एक नाममात्र तत्व प्रकार होता है; जेनेरिक में नाममात्र और संरचनात्मक का भी मिश्रण होता है, और यह वास्तव में कई के स्रोत का हिस्सा है जेनेरिक के बारे में लोगों की शिकायतें।) जावा पर एक संरचनात्मक प्रकार प्रणाली (फ़ंक्शन प्रकार) को तैयार करना ' नाममात्र प्रकार की प्रणाली का अर्थ है नई जटिलता और किनारे के मामले। क्या फ़ंक्शन प्रकार का लाभ इसके लायक है?
आप में से जो टाइप सिस्टम के कार्यान्वयन में अनुभव रखते हैं। क्या आप इन जटिलताओं या किनारे के मामलों के किसी भी उदाहरण को जानते हैं जिसका वह यहां उल्लेख करते हैं?
ईमानदारी से मैं इन आरोपों से भ्रमित हो जाता हूं, जब मुझे लगता है कि स्कैला जैसी एक प्रोग्रामिंग भाषा, जो पूरी तरह से जेवीएम पर आधारित है, में अंतर्निहित प्लेटफॉर्म के संशोधन की समस्याओं के साथ-साथ संरचनात्मक प्रकारों जैसे कार्यों और ट्यूपल्स के लिए समर्थन है।
मुझे गलत मत समझो, मैं यह नहीं कह रहा हूं कि फ़ंक्शन प्रकार एसएएम प्रकारों से बेहतर होना चाहिए। मैं सिर्फ यह समझना चाहता हूं कि उन्होंने यह फैसला क्यों लिया।