Anda tidak perlu harus memilih di antara kedua paradigma tersebut. Anda dapat menulis perangkat lunak dengan arsitektur OO menggunakan banyak konsep fungsional. FP dan OOP bersifat ortogonal .
Ambil contoh C #. Bisa dibilang sebagian besar OOP, tetapi ada banyak konsep dan konstruksi KB. Jika Anda mempertimbangkan Linq , konstruksi paling penting yang memungkinkan Linq ada adalah sifat fungsional: ekspresi lambda .
Contoh lain, F #. Bisa dibilang itu kebanyakan FP, tetapi ada banyak konsep dan konstruk OOP yang tersedia. Anda dapat mendefinisikan kelas, kelas abstrak, antarmuka, berurusan dengan warisan. Anda bahkan dapat menggunakan kemampuan berubah-ubah saat membuat kode Anda lebih jelas atau ketika itu secara dramatis meningkatkan kinerja.
Banyak bahasa modern multi-paradigma.
Bacaan yang disarankan
Karena saya berada di kapal yang sama (latar belakang OOP, belajar FP), saya sarankan beberapa bacaan yang sangat saya hargai: