Kabarnya, Alan Kay adalah penemu istilah "berorientasi objek". Dan dia sering dikutip mengatakan bahwa apa yang kita sebut OO hari ini bukan yang dia maksud.
Sebagai contoh, saya baru saja menemukan ini di Google:
Saya membuat istilah 'berorientasi objek', dan saya dapat memberitahu Anda bahwa saya tidak memiliki C ++ dalam pikiran
- Alan Kay, OOPSLA '97
Samar-samar aku ingat mendengar sesuatu yang sangat berguna tentang apa yang dia lakukan berarti. Sesuatu di sepanjang baris "message passing".
Apakah Anda tahu apa maksudnya? Bisakah Anda mengisi lebih detail tentang apa yang ia maksudkan dan bagaimana perbedaannya dengan OO biasa saat ini? Silakan bagikan beberapa referensi jika Anda punya.
Terima kasih.
object-oriented
history
Charlie Flowers
sumber
sumber
Jawaban:
http://www.purl.org/stefan_ram/pub/doc_kay_oop_en
sumber
Kebanyakan jika tidak semua yang Alan Kay maksudkan dengan orientasi objek diwujudkan dalam bahasa Smalltalk.
Juga, dari http://en.wikipedia.org/wiki/Message_passing#Influences_on_other_programming_models :
sumber
"Kami bahkan tidak melakukan semua ide di PARC. Banyak ide Aktor Carl Hewitt yang dipicu oleh Smalltalk asli lebih sesuai semangat OOP daripada Smalltalks berikutnya. Bagian-bagian penting Erlang lebih seperti bahasa OOP nyata Smalltalk saat ini, dan tentu saja bahasa berbasis C yang telah dilukis dengan "OOP paint". "
Diambil dari komentar Alan Kay di:
http://computinged.wordpress.com/2010/09/11/moti-asks-objects-never-well-hardly-ever/
sumber
Salah satu poin utama yang saya ambil dari mengikuti karya Alan Kay dan yang lainnya seperti Jim Coplien adalah bahwa pemrograman berorientasi "objek" yang benar adalah tentang pemodelan komputer dan perangkat lunak dalam hal model mental MANUSIA / PENGGUNA, daripada menjadi hanya alat untuk PEMASOK.
Seperti yang saya pahami, visi Alan tentang OOP adalah menjadikan komputer sebagai alat yang memungkinkan pengguna manusia untuk membuat apa pun yang mereka inginkan: kemampuan penuh komputer secara langsung terpapar kepada pengguna akhir melalui model interaktif yang intuitif. Saya harus dapat melihat dan memahat objek runtime dan interaksi secara LANGSUNG, tidak hanya melalui kode.
Berikut adalah posting tentang rencana saya untuk mencoba beberapa versi ini dalam JavaScript sebagai bukti konsep: http://www.cemetech.net/forum/viewtopic.php?p=234494#234494
Dari perspektif pengembangan / pemrograman perangkat lunak, Jim Coplien berbicara tentang bagaimana kode dapat dan HARUS menyerupai model mental pengguna. Artinya, kode membaca dengan cara yang sama seperti yang akan terdengar oleh seseorang yang menggambarkan perilaku itu. Ini sebagian besar dicapai dengan berpikir dalam hal OBYEK, bukan dalam hal KELAS dan JENIS. Perilaku dijelaskan berdasarkan ketentuan ROL yang dimainkan oleh objek, bukan sebagai bagian dari definisi IDENTITAS objek. Anda harus dapat memodelkan interaksi pada istilah objek, yang diidentifikasi oleh ROLE yang mereka mainkan dalam interaksi. Ini adalah cara kerja model mental manusia: Pelayan, Pelanggan, Kasir, Akun Sumber, Akun Tujuan, ... Ini adalah PERAN, bukan JENIS, dan Anda ingin dapat menentukan metode untuk "objek apa pun yang memainkan peran ini pada saat itu ",
sumber