ฉันพยายามเข้าใจว่าเพราะเหตุใด JDK 8 Lambda Expert Group (EG) จึงตัดสินใจไม่รวมฟังก์ชันประเภทใหม่ลงในภาษาการเขียนโปรแกรม Java
ไปกว่ารายการทางผมพบว่าหัวข้อที่มีการอภิปรายเกี่ยวกับการกำจัดของประเภทฟังก์ชั่น
ข้อความหลายข้อคลุมเครือสำหรับฉันอาจเป็นเพราะการขาดบริบทและในบางกรณีเนื่องจากความรู้ที่ จำกัด ของฉันเกี่ยวกับการใช้งานระบบพิมพ์
อย่างไรก็ตามมีคำถามสองสามข้อที่ฉันเชื่อว่าฉันสามารถกำหนดได้อย่างปลอดภัยในไซต์นี้เพื่อช่วยให้ฉันเข้าใจได้ดีขึ้นว่าพวกเขาหมายถึงอะไร
ฉันรู้ว่าฉันสามารถถามคำถามในรายการส่งเมลได้ แต่เธรดเก่าและการตัดสินใจทั้งหมดได้ทำไปแล้วดังนั้นโอกาสที่ฉันจะถูกเพิกเฉยเหนือสิ่งอื่นใดที่เห็นว่าคนเหล่านี้มีแผนล่าช้าอยู่แล้ว
ในคำตอบของเขาที่ให้การสนับสนุนการลบประเภทฟังก์ชั่นและรับรองการใช้งาน SAM ประเภท Brian Goetz พูดว่า:
ไม่มีการดัดแปลง มีเธรดที่ยาวเกี่ยวกับประโยชน์ของการปรับประเภทของฟังก์ชัน ประเภทฟังก์ชั่นจะ hobbled
ฉันไม่พบกระทู้ที่เขาพูดถึง ตอนนี้ฉันสามารถเข้าใจได้ว่าการแนะนำฟังก์ชั่นโครงสร้างอาจหมายถึงภาวะแทรกซ้อนบางอย่างในระบบจาวาส่วนใหญ่ที่ระบุสิ่งที่ฉันไม่เข้าใจคือประเภท SAM parametrized แตกต่างกันในแง่ของการทำให้ใหม่
พวกเขาทั้งคู่ต่างก็ประสบปัญหาการทำให้เหมือนกันหรือไม่? ใครบ้างเข้าใจว่าประเภทฟังก์ชั่นแตกต่างจากประเภท SAM parametrized ในแง่ของการทำให้ใหม่?
ในความคิดเห็นอื่น Goetz พูดว่า:
มีสองวิธีพื้นฐานในการพิมพ์: ชื่อและโครงสร้าง ตัวตนของชื่อจะขึ้นอยู่กับชื่อของมัน ตัวตนของโครงสร้างประเภทนั้นขึ้นอยู่กับสิ่งที่มันประกอบไปด้วย (เช่น "tuple of int, int" หรือ "ฟังก์ชั่นจาก int ถึง float") ภาษาส่วนใหญ่เลือกใช้ชื่อหรือโครงสร้างส่วนใหญ่เป็นส่วนใหญ่ ไม่มีภาษาจำนวนมากที่ประสบความสำเร็จในการผสมการพิมพ์ที่ระบุและโครงสร้างยกเว้น "รอบ ๆ ขอบ" Java เป็นชื่อเกือบทั้งหมด (มีข้อยกเว้นเล็กน้อย: อาร์เรย์เป็นชนิดโครงสร้าง แต่ที่ด้านล่างจะมีประเภทองค์ประกอบเล็กน้อยเสมอ; generics มีการผสมของชื่อและโครงสร้างเช่นกันและนี่เป็นส่วนหนึ่งของแหล่งที่มาของหลาย ๆ ของการร้องเรียนของประชาชนเกี่ยวกับข้อมูลทั่วไป) การปลูกถ่ายระบบประเภทโครงสร้าง (ประเภทฟังก์ชั่น) ลงบน Java ' ระบบประเภทระบุหมายถึงความซับซ้อนและกรณีขอบใหม่ ประโยชน์ของฟังก์ชั่นประเภทนี้คุ้มค่าหรือไม่?
ผู้ที่มีประสบการณ์ในการใช้งานระบบพิมพ์ คุณรู้ตัวอย่างของความซับซ้อนหรือกรณีขอบที่เขากล่าวถึงที่นี่หรือไม่?
จริง ๆ แล้วฉันสับสนกับข้อกล่าวหาเหล่านี้เมื่อฉันพิจารณาว่าภาษาโปรแกรมเช่น Scala ซึ่งใช้ JVM ทั้งหมดมีการสนับสนุนประเภทโครงสร้างเช่นฟังก์ชั่นและสิ่งอันดับแม้ว่าจะมีปัญหาการแก้ไขของแพลตฟอร์มพื้นฐาน
อย่าเข้าใจฉันผิดฉันไม่ได้บอกว่าประเภทฟังก์ชั่นควรจะดีกว่าประเภท SAM ฉันแค่อยากเข้าใจว่าทำไมพวกเขาถึงตัดสินใจ