Sunday, February 24, 2008

Object Oriented Programming Language, java?

Berdasarkan tulisan temen, bahwa java bukan bahasa pemrograman yang mendukung object oriented murni, jadi gw nulis ini.
Klo dilihat dari kata-katanya 'mendukung object oriented murni', sebenernya g salah klo kita bilang java 'mendukung' object oriented murni. Karena klo kita mau, bisa saja kita menggunakan konsep OO murni untuk program kita, misal tidak menggunakan tipe2 primitif melainkan menggunakan kelas, atau tidak menggunakan operator-operator dasar melainkan method-method dari operand-nya.
Tapi setelah ditelaah lebih dalam, dan dari hasil googling, gw tiba pada suatu kesimpulan, dimana yang dimaksud object oriented murni adalah, suatu bahasa yang tidak memperkenankan adanya 'pencemaran' terhadap konsep 'everything is object', sementara java masih memperkenankan hal tersebut seperti penggunaan tipe-tipe dasar tadi.

Sekedar gambaran, dalam java :


/*convert to string*/

System.out.println(-1.toString());




jadi compile-error, soalnya java mengevaluasi -1 sebagai nilai literal, bukan object, tapi klo dalam ruby:


#convert to string

puts -1.to_s()



g jadi masalah karena, -1 dievaluasi sebagai instance dari kelas Integer

ok, coba gw break down, dari level dukungannya terhadap OOP, bahasa pemrograman bisa dikategorikan:
  1. Pure support, dimana seperti yang telah disebutkan tadi, bahasa-bahasa yang tidak memperkenankan pencemaran, bahasa ini antara lain adalah SmalTalk, Ruby, walaupun gw blm pernah nyoba ampe dalem, bahasa tersebut(cuma sebates helloworld ^^), tapi seh kata om google begitu...
  2. Full/Complete support, nah ini bahasa yang paling populer jaman sekarang, khusus didesain untuk OOP, seperti java, c#, dll. bahasa ini bisa menerapkan semua konsep dan karakteristik OOP(kalau si-programmer yang bersangkutan mau) Namun masih menyediakan dukungan terhadap paradigma konvensional.
  3. partiall support, untuk kategori ketiga ini sebenernya masih bisa dibreak down lagi, but for me they all look the same ;). umumnya bahasa-bahasa yang terkenal dalam paradigma prosedural, namun seiring dengan perkembangan teknologi, bahasa ini dikembangkan untuk bisa mendukung OOP, seperti C++, PHP, Fortran, Perl dll
  4. No support, yup, ini adalah bahasa pemrogaman yang bener-bener g bisa dipake OOP, umumnya bahasa seperti ini masih populer dikalangan akademik untuk dijadikan materi pembelajaran. yg bisa gw pikirin sekarang cuma pascal, dan assembly

hmm, kira-kira gitu, skali lagi klasifikasi diatas itu based on my perspective, klo misal ada yg mo nambah ato ngoreksi, i'm open :)

2 comments:

Anonymous said...

Zeft, may be the title of my post should be change into:
"Java is Not PURE OO Programming Language"

thanks ;)

- Fitrianingrum -

Zeft said...

Congratulation, for being my first :wink:
hehehehe....

your welcome phi..