Saya sebagian besar melewati tingkat pemrograman game saya. Ini bukan gelar ilmu komputer, sehingga banyak teori yang dihindari untuk pengembangan portofolio praktis dan apa yang saya lihat sebagai pembelajaran JIT, yang tampaknya lebih penting dalam industri game. Subjek pertama adalah "Pengantar Pemrograman Berorientasi Objek".
Ungkapan itu tidak mengganggu saya sampai saya belajar tentang paradigma pemrograman yang berbeda (saya mendapatkan daftar ini dari https://en.wikipedia.org/wiki/Comparison_of_programming_paradigms ):
- Imperatif
- Fungsional
- Prosedural
- Tersusun
- Didorong oleh acara
- Berorientasi pada objek
- Deklaratif
- Berbasis Automata
Saya mendapatkan bahwa ini bukan daftar lengkap, dan bahwa tidak semua konsep ini sama, dan kebanyakan dari mereka bahkan tidak eksklusif, tetapi saya tidak mengerti mengapa kebanyakan dari mereka hanya mendapatkan satu kata - imperatif; fungsional; deklaratif - tetapi ketika kita berbicara tentang pemrograman dengan objek, kita harus mengklarifikasi bahwa kita berorientasi pada objek-objek itu. Tidak bisakah kita menggunakan benda saja? Tidak bisakah kita memiliki benda? Mengapa mereka harus mengarahkan kita, sebagai bintang penuntun kita?
Melihat di sini ( https://en.wikipedia.org/wiki/Object-oriented_programming ), tidak ada penggunaan istilah "berorientasi" yang dialamatkan sebagai istilahnya sendiri. Hanya "objek" yang dijelaskan.
Juga, saya bisa melihat untuk alasan praktis mengapa Event-Driven digunakan, karena Pemrograman Acara sudah menjadi hal yang Anda lakukan ketika Anda menjalankan konferensi, dan Pemrograman Automata membuatnya terdengar seperti Anda sedang mengatur jalur produksi robot, jadi membantu untuk memiliki kata-kata klarifikasi tambahan di sana.
Apa yang membuat Pemrograman Objek, sebagai frasa, tidak cukup untuk menggambarkan apa yang kita lakukan ketika kita menggunakan objek dalam pemrograman kita?
Jelas dari nada bicara saya, saya tidak terlalu menyukai kata "berorientasi". Itu mengingatkan saya pada waktu saya sebagai reporter pengadilan, mendengarkan pengacara setelah pengacara menggunakan frasa "dalam kaitannya dengan" sebagai semacam kutu verbal. Itu tidak berarti apa-apa; itu hanya istilah yang mereka gunakan untuk mengisi udara sementara mereka mencoba memikirkan apa yang harus dikatakan selanjutnya. Namun, saya tidak mencoba mengadvokasi perubahan bahasa, saya hanya bertanya mengapa demikian. Jika seseorang tahu mengapa itu diketahui seperti itu karena alasan historis murni, maka itulah jawabannya. Itu akan menjadi amunisi jika saya memutuskan untuk membuang waktu menganjurkan perubahan bahasa.
Di sisi lain, jika sebenarnya ada alasan yang berguna mengapa suatu bahasa atau potongan kode harus menunjuk ke objek, dengan mengesampingkan semua arah lain, yang bertentangan dengan hanya memiliki mereka di toolbelt, sebagai alat , saya benar-benar akan tertarik untuk mempelajarinya. Saya suka belajar hal-hal yang bermanfaat.
sumber
Jawaban:
Saya percaya Anda membaca cara terlalu banyak ke dalam membangun tata bahasa yang sederhana. Lihatlah daftar paradigma Anda, diurutkan secara berbeda untuk alasan yang akan segera kita bahas:
Apa kesamaan kata-kata itu? Mereka semua kata sifat karena mereka dimaksudkan untuk memodifikasi kata "pemrograman". Lebih jauh lagi, dengan pengecualian "imperatif" mereka semua bukan kata sifat "alami", tetapi kata benda "adjectified" - kata benda yang benar-benar menggambarkan inti dari paradigma: fungsi, struktur, automata, dan objek.
Dan ada dua cara yang berbeda di mana kata benda itu adjectified: melalui akhiran seperti -al atau -ed, atau melalui menciptakan kata gabungan menggunakan tanda hubung. Sekarang, seperti yang ditunjukkan Doc Brown, sufiks yang dapat digunakan untuk kata sifat "objek" menghasilkan makna yang berbeda. Yang meninggalkan komposisi.
Dan saya sampaikan bahwa itu adalah kebetulan atau rasa murni bahwa Alan Kay memilih untuk menggunakan "orientasi" untuk kata sifat kompositnya "berorientasi objek". Itu bisa saja "berbasis objek", atau "berbasis objek", dan Anda mungkin membaca terlalu banyak. Bukankah "didorong" kedengarannya seperti obsesi tidak sehat?
sumber
Terus terang, ini adalah peninggalan sejarah. Pemrograman fungsional benar-benar pemrograman berorientasi fungsi, pemrograman deklaratif benar-benar pemrograman berorientasi deklarasi ... lagipula kita tidak hanya menggunakan fungsi? Tidak bisakah kita memiliki fungsi saja?
"Berorientasi objek" menggulung lidah lebih baik, dan secara historis sudah berurat berakar.
'Orientasi' datang karena kita tidak berbicara tentang pemrograman tetapi desain. Hanya karena kita menggunakan objek, atau menggunakan fungsi, atau menggunakan peristiwa tidak berarti bahwa metodologi desain kita dilakukan dengan memodelkan ketiganya. Dengan menentukan orientasi metodologi desain, ini membantu berkomunikasi dengan programmer bagaimana mereka harus menafsirkan dan memperluas desain itu - bagaimana fokus pemodelan mewarnai implementasi.
sumber
Menyebutnya yang membantu menjelaskan bahwa objek adalah bagian yang sangat penting dari paradigma.
Pemrograman Berorientasi Objek berakar pada Simula , yang pada dasarnya adalah ALGOL plus beberapa fitur pemrograman objek baru. Dan sesuai dengan sejarah itu, bahkan hari ini sepenuhnya mungkin dalam banyak bahasa (bahkan "bahasa OO murni") untuk mengkodekan sesuatu yang pada dasarnya hanya program prosedural dengan beberapa objek di dalamnya. Tapi ini dianggap gaya buruk oleh pengembang yang lebih berpengalaman.
Sebenarnya melakukan sesuatu "cara berorientasi objek" sangat berbeda dari "cara prosedural." Konsep yang paling penting adalah penggunaan pewarisan dan polimorfisme. Ketika Anda benar-benar mengerti dan menginternalisasi cara kerja kelas dan metode virtual, ini merupakan pengalaman yang membuka mata yang mengubah cara Anda menulis kode dalam banyak kasus, perubahan paradigma yang sebenarnya. (Dengan asumsi, tentu saja, bahwa Anda mulai menulis kode prosedural terlebih dahulu. Banyak siswa hari ini langsung ke Jawa atau C # sebagai bahasa pertama, dan IMO mereka kehilangan benar-benar memahami manfaat OO dengan melakukannya.)
Kami menyebutnya pemrograman berorientasi objek karena program yang ditulis dengan gaya OO tidak hanya berisi objek; struktur seluruh program didasarkan di sekitar mereka dan di sekitar cara mereka bekerja.
sumber