Pemrograman berorientasi objek merupakan gaya bahasa pemrograman yang secara de facto sekarang banyak digunakan di dunia pengembangan perangkat lunak. Sekarang bukan jamannya lagi pemrograman berbasis objek atau bahkan pemrograman terstruktur. Sejak awal 90an pemrograman berorientasi objek banyak digunakan dengan berbagai pilihan bahasa pemrograman. Berbicara mengenai pemrograman berorientasi objek, saya teringat akan salah satu karya Grady Booch tentang OOAD. Di buku itu Booch menuliskan kalimat yang sungguh filosofis tentang bahasa OOP yang digunakan dengan cara yang salah.
... if we try to use languages such as C++ and Java as if they were only traditional, algorithmically oriented languages, we not only miss the power available to us, but we usually end up worse off than if we had used an older language such as C or Pascal. Give a power drill to a carpenter who knows nothing about electricity, and he would use it as a hammer. He will end up bending quite a few nails and smashing several fingers, for a power drill makes a lousy hammer. [Object-Oriented Analysis and Design with Application, 2007]
Catatan: Booch adalah salah satu tiga penggagas UML (Grady Booch, James Rumbaugh, dan Ivar Jacobson) yang aktif dalam pengembangan OOAD. Mereka boleh dibilang sebagai biang keladi kemajuan dalam OOAD.
Pernyataan Booch di atas memberikan gambaran filosofis mengenai OOP. Banyak sekali pemrogram yang secara salah menggunakan bahasa pemrograman OOP yang dicorak dengan gaya pemrograman berbasis objek (bukan berorientasi objek) apalagi dibawa ke gaya pemrograman terstruktur. Misalnya, tidak jarang kita melihat pemrogram menggunakan VB.NET yang termasuk bahasa OOP diprogram dengan gaya berbasis objek atau terstruktur. Ini fakta yang banyak saya lihat di lingkungan kita. Menurut Booch, ibarat menggunakan bor listrik sebagai palu. Jangankan bisa difungsikan menjadi palu dengan baik, justru paku menjadi bengkok bahkan sekalian menghantam jari kita. Dengan kata lain, gunakan alat yang tepat untuk tujuan yang tepat pula.
No comments:
Post a Comment