Nesne Yönelimli Programlama, hareketli parçaları enkapsüle ederek kodu anlaşılır kılıyor. Fonksiyonel Programlama ise hareketli parçaları en aza indirgeyerek kodu anlaşılır kılıyor.
Unit Test yazmak, fonksiyonel programlamayı fonksiyonel olmayan dillerdeyeniden icat etmektir
Asıl problem, «stateful» programların büyüdükçeiyi olmayan bir yöne doğru evrilmesidir.
Gerektiğinde imperative programlayın; mümkün olduğunda ise fonksiyonel.
YAZMASI VE BAKIM YAPMASI DAHA BASİT
DAHA AZ «CONCURRENCY» SORUNU
«TEMPORAL COUPLING» YOK
«STATE NEDİR?» DİYE SORMAK YOK#direnstate
HAFIZA KULLANIMI
8 byte vs 8 Gb
MULTI-CORE COMPUTING (PARALEL PROGRAMLAMA)
AssertEquals(f(x), f(x));
Çekirdek - 1Çekirdek - 2
FONKSİYONEL DİLLER
Clojure (Lisp)
ML
F#2002’de Microsoft Research yayınladı
MARTIN ODERSKY
C# Java (8)
FONKSİYONEL OLANLA OLMAYAN MODÜLLERİ AYIRIN
«İyi bir yazılım mühendisi olmak için en uygun teknikleri bulup bir denge sağlamak gerekir. Ayrıca teknik olmayan yanlar ve hedefler de var. Mesela kodun her ekip elemanı tarafından anlaşılabilmesi gibi. Doğru olan, en verimli yaklaşım hedeflerini net olarak belirleyerek, teknikleri o amaçla tutarlı bir şekilde kullanmaktir bence. Yoksa mesela her For döngüsünü Map'e çevirdiğinizde kodunuzun kalitesi artmaz; düşebilir bile.»