ฉันสงสัยว่าสิ่งที่แตกต่างระหว่างดำเนินการทางเทคนิค C # และสกาล่าและวิธีการแก้ปัญหาทั้งเปรียบเทียบกับความคิดของการดำเนินงานและความกังวลเปล่งออกมาในอีเมลPeek อดีตแลมบ์ดาโดยไบรอันเก๊ส่งไปยังรายการทางไปรษณีย์ของโครงการแลมบ์ดา (JSR 335) ?
จากอีเมล:
เราสำรวจถนนของ "บางที lambdas ควรจะเป็นอินสแตนซ์ของคลาสภายในซึ่งจะง่ายมาก" แต่ในที่สุดก็มาถึงตำแหน่งของ "ฟังก์ชั่นเป็นทิศทางที่ดีกว่าสำหรับอนาคตของภาษา"
และต่อไป:
มุมมอง lambdas-are-objects ของโลกขัดแย้งกับอนาคตที่เป็นไปได้นี้ มุมมอง lambdas-are-function ของโลกไม่ได้และการรักษาความยืดหยุ่นนี้เป็นหนึ่งในจุดที่สนับสนุน lambdas ที่ไม่ทำให้เกิดภาระด้วยแม้แต่ลักษณะที่ปรากฏของวัตถุ
สรุป:
Lambdas-are-function เปิดประตู Lambdas-are-objects ปิดพวกเขา
เราต้องการเห็นประตูที่เปิดทิ้งไว้
และความคิดเห็นบางส่วนจากบุคคลในเธรด Redditพูดว่า:
จริง ๆ แล้วฉันส่งอีเมลถึง Neal Gafter เกี่ยวกับเรื่องนี้และความเข้าใจที่ จำกัด ของฉันเกี่ยวกับการอธิบายของเขา C # และการออกแบบ Java ในปัจจุบันค่อนข้างคล้ายกับที่ผู้ได้รับมอบหมายเป็นวัตถุจริงและไม่ใช่ประเภทการทำงาน ดูเหมือนว่าเขาเชื่อว่า Java ควรเรียนรู้จากข้อเสียของแกะแกะ C # และหลีกเลี่ยงพวกเขา (เช่น C # เรียนรู้จากข้อเสียของ Java และหลีกเลี่ยงพวกเขาในตอนแรก)
ทำไม "แลมดาส์ - ฟังก์ชัน - ฟังก์ชั่น" ทำให้เปิดโอกาสในอนาคตได้มากกว่า "แลมบ์ดา - กำลัง - วัตถุ" บางคนสามารถอธิบายความแตกต่างที่มีอยู่และพวกเขาจะมีอิทธิพลต่อวิธีการเขียนโค้ดอย่างไร
เมื่อเห็นว่าสิ่งต่าง ๆ ใน Scala "แค่งาน" ฉันคิดอยู่เสมอว่าฉันพลาดอะไรบางอย่างเกี่ยวกับวิธีการที่นำเสนอ / ใน C # / Java (8) บางทีมันอาจเกี่ยวข้องกับข้อกังวลเกี่ยวกับความเข้ากันได้แบบย้อนหลัง?