Ben C # ve Scala arasındaki teknik uygulama farklılıkları ve her iki çözümler uygulama fikirleri ve e-posta içinde dile endişeleri nasıl karşılaştırılacağı merak ediyorum Peek Geçmiş lambda Brian Goetz tarafından, posta listesine gönderilen Proje Lambda'ya (JSR 335) ?
E-postadan:
"Belki de lambdalar sadece iç sınıf örnekleri olmalı, bu gerçekten basit olurdu" yolunu araştırdık, ama sonunda "fonksiyonlar dilin geleceği için daha iyi bir yön" konumuna geldi.
ve Ötesi:
Dünyanın lambda objeleri görüşü, bu olası gelecekle çelişiyor. Dünyadaki lambda-işlevler görüşü değildir ve bu esnekliği korumak, nesnelerin görünümünde bile lambdaların yüklenmemesinden yana olan noktalardan biridir.
Sonuç:
Lambdas fonksiyonlar kapıları açar. Lambdas-are-nesneler onları kapatır.
Bu kapıların açık kaldığını görmeyi tercih ediyoruz.
Reddit iş parçasındaki bir kişiden bazı yorumlar şöyle diyor:
Aslında bu konuda Neal Gafter'e e-posta ile yolladım ve C # ve onun şu anki Java tasarımına ilişkin sınırlı anlayışına, delegelerin aslında işlev türleri değil de nesneler olduğu için oldukça benzer. Java'nın, C # 'nın lambdalarının dezavantajlarından ders alması ve bunlardan kaçınması gerektiğine inanıyor gibi gözüküyor (tıpkı Java'nın dezavantajlarından öğrenilen ve başlangıçta onlardan kaçındığı gibi).
Neden "Lambdas-işlevler" yaklaşımı gelecekte "Lambdas-nesneler" den daha fazla fırsat sağlıyor? Birisi hangi farklılıkların olduğunu ve kodun nasıl yazılacağını nasıl etkileyeceğini açıklayabilir mi?
Scala'daki şeylerin sadece işe yaradığını görünce, C # / Java'da (8) önerilen / önerilen yaklaşımlarla ilgili bir şeyleri özlediğimi düşünüyorum, muhtemelen geriye dönük uyumluluk ile ilgili endişelerle mi ilgili?