Saya tidak akan fokus pada objek dunia nyata, dan saya juga tidak akan fokus pada pesan. Sebagai contoh, saya telah menggunakan grafik, di mana Anda ingin memiliki objek yang "tahu cara menggambar sendiri".
Jika Anda bekerja di C, misalnya, yang tidak memiliki OO bawaan, Anda mungkin merasa nyaman untuk menyimpan pointer ke fungsi di dalam objek data. Jika ya, berarti Anda memasuki OOP.
Saya tidak suka menyebut Alan Kay seolah-olah dia adalah Musa yang memberikan tablet. Sebaliknya, dia dilatih dalam matematika dan bio, saya percaya. Sebagai orang matematika, ia mungkin memiliki keakraban dengan Lambda Calculus, yang cukup abstrak, tidak terkait dengan perangkat keras. Dalam LC, Anda bisa mengatakan semuanya adalah "objek" - seperti angka 0 dan angka 1 adalah objek yang mengevaluasi hal-hal yang berbeda ketika diberi argumen. Itu mengarah ke Smalltalk dengan cukup baik. Gagasan "pesan" adalah agar kita dapat menghindari berbicara tentang perangkat keras. Anda bisa mengatakan ketika Anda memanggil suatu fungsi (atau metode suatu objek) Anda mengirimkannya pesan, dan ketika itu kembali, ia mengirimkan pesan kepada Anda (atau untuk kelanjutan Anda). Itu dikaitkan sebagai cara menggambarkan cara untuk berkomunikasi antara program yang berjalan secara tidak sinkron pada perangkat keras terpisah. Tidak apa-apa, tetapi untuk pemrograman biasa itu terbawa. Untuk mendapatkan nilai dari ide OOP, Anda tidak perlu menyangkal relevansi tugas konkret yang Anda coba lakukan, atau menolak konkret perangkat keras yang Anda jalankan. Saya pikir mengajar tentang OOP dalam hal analogi yang dibikin membuat orang berpikir tentang desain perangkat lunak terlalu banyak dalam hal struktur data, yang mengarah pada desain yang berlebihan, mengarah pada kode mengasapi dan masalah kinerja besar-besaran, sehingga saya harus menghabiskan waktu membersihkan ketika itu menjadi cukup buruk.