Sunday, May 11, 2014

Lecture Note: Holy War

Tulisan lecture note dari pak Lala Septem Riza kali ini mengenai Holy War. Saya baru tahu ada istilah ini yang mengacu ke debat penggunaan bahasa pemrograman. Ada-ada saja ya. Walaupun kelihatannya "ada-ada saja" tapi ada benarnya juga loh, soalnya di dunia industri orang-orang dituntut untuk mengetahui cara penggunaan bahasa pemrograman agar bisa mengimplementasikan keilmuannya.
Berikut kutipan tulisan beliau:

[LECTURE NOTE] Holy war! Ini bukan holy war (perang suci) pada abad 16 dan 17 antara tentara Muslim dan Kristen di daratan Eropa dan Asia. Tetapi, ini adalah perang suci yang terjadi diantara programming language di science . Kata "holy war" sering dipakai oleh scientists untuk melukiskan perdebatan sengit di antara mereka. Mungkin karena dua/lebih pihak yang beradu, sama - sama memberikan kontribusi bagi perkembangan ilmu dan pengetahuan walau bertentangan. Dan karena itu mungkin disebut "suci".
Di bidang programming language, kita bisa melakukan kategorisasi/taksonomi, misalkan: ada low dan high level. Dua pembagian ini, bisa mengakibatkan dua hal yang bersifat trade off, yaitu antara kecepatan computation time (run time) dan kecepatan programmer menuliskan program. C dan FORTRAN (kalau boleh dimasukkan-RED) adalah contoh bahasa yang tercepat dari sisi run time karena low level, tapi memakan waktu lama untuk membuat codenya. Butuh puluhan/ratusan Line of Code (LoC) untuk membuat grafik/plot sederhana. Tapi, bahasa JAVA, R, PYTHON, MATLAB, RUBY, VB, etc., lebih lambat dalam komputasi, tapi programmer lebih cepat dalam membuat code. Pembagian lain yang bisa kita buat, misalkan antara prosedural, object oriented (OOP), dan functional programming (FP). Kita sangat familiar dengan prosedural (e.g., PASCAL, dll) dan OOP (e.g., JAVA, C++, dll), sedangkan contoh dari FP adalah SCALA, LISP, HACKELL, etc. Mereka saling mengunggulkan diri mereka masing2x . FP mengganggap dirinya "pure", karena FP punya definisi yang jelas tentang sebuah fungsi. Secara matematis, fungsi akan memberikan nilai yang pasti dan sama ketika argumen yang dimasukkan ke dalam fungsi itu adalah sama. Dan definisi ini dipenuhi oleh FP, tapi tidak oleh OOP (e.g., JAVA). Dengan kata lain FP lebih "jujur" dari pada OOP (Jangan marah buat penggemar OOP, karena saya juga penggunanya :D). Disisi lain, konsep OOP sangat bagus karena memudahkan kita merepresentasikan code kita sedekat mungkin dengan dunia real. Dan masih banyak lagi pembagian yang bisa kita buat, seperti: batch vs interaktif, general vs specific purpose, dll.
Salah satu holy war yang berkecamuk saat ini adalah perang antara bahasa R dan PYTHON. Dua bahasa itu sangat sering dipakai di science, khususnya di data analysis . Data analysis adalah bidang baru yang mirip/beririsan dengan data mining, mmm sepertinya dua bidang ini pun mungkin bakal mendeklarasikan peperangannya, kita tunggu saja xixixi. Beberapa survey dan pendapat tentang R dan PYTHON, menunjukkan betapa sengitnya peperangan mereka. Kita bisa lihat dibeberapa website, misal:
http://r4stats.com/articles/popularity/http://www.kdnuggets.com/2013/06/kdnuggets-annual-software-poll-rapidminer-r-vie-for-first-place.htmlhttp://readwrite.com/2013/11/25/python-displacing-r-as-the-programming-language-for-data-science#awesm=~oCUp7LydXhqqhgBahkan, di level fakultas di sinipun, berdebatan antara dosen R dan dosen PYTHON sangat panas .
Alasan saya menulis ini, agar kita semua sadar akan adanya dinamika di bidang kita. Tak jadi soal anda ada di pasukan R, PYTHON, JAVA, C, atau apapun itu. Karena apapun pasukan anda, anda dituntut untuk tahu/belajar ttg bidang anda, bahkan kalau bisa, tahu tentang kelemahan musuh anda, bukan . Dan itu, bagus untuk karier kita kedepan (khususnya bagi mahasiswa).

1 comment:

  1. R itu maksudnya Ruby? ._.

    Btw Haskell lho bukan Hackell ._.

    ReplyDelete

Comment is caring :)