August 25, 2016 thumb Pilih Native vs Framework, Mana yang lebih baik ?

haha… mungkin sudah basi kali ya bahasan yang satu ini. tapi bagaimana lagi, sekedar saya bahas di blog ini untuk sharing kepada teman-teman baik para newbie maupun yang sudah expert. tulisan ini merupakan pengalaman pribadi saya , yang saya alami semenjak terjun di dunia IT yang kira-kira sudah 8 tahunan ini. mulai proyek kelas jutaan sampai ratusan bahkan milyaran pernah saya kerjakan. tetapi setiap kali saya ditanya mana yang lebih bagus native apa framework. harus mungthug-munthug saya jelaskan.

sebenarnya Native dan Framework dua-duanya penting. bagi saya Native itu ibarat pisau (Knife), sedang Framework ibarat Pedang (Sword). pilih pedang atau pisau, tergantung situasi kondisi. kalau mau numis bawang, cukup pakai pisau, kalau mau jadi jagal unta ya harus pakai pedang.

Native is a Knife , Framework is a Sword, It’s not about how sharp the knife or how strong the sword. it’s all about how skillfull the hand that wields it….

untuk membandingkan Native dengan Framework berikut ini perbaindinganya-nya :

  1. menggunakan Native Relatif lebih mudah untuk dipelajari, tapi lebih susah ketika di implementasikan dalam kasus nyata, karena harus membuat segala sesuatunya sendiri. berbeda dengan Framework, mempelajarinya mungkin lebih susah, tapi untuk diimplementasikan pada kasus nyata akan jauh lebih ringan, karena semua sudah disediakan.
  2. Menggunakan Native running time jauh lebih cepat sehingga cocok untuk kondisi yang Low Resource atau menangani Big Data, sedangkan Framework tentu saja lebih boros, karena banyak dari Resource yang disediakan framework ternyata tidak kita gunakan.
  3. Native berarti membangun sendiri dari awal, tentu merupakan pekerjaan besar. dalam bisnis, ketika ada error maka programmer bisa segera melakukan fiksasi. berbeda dengan Framework sekalinya ada error pada level framework maka harus menunggu bug fix atau kalau memang bisa jeroan Framework di utak-atik sendiri biar bug fix (dan tentu saja mengutak atik jeroan framework berarti menggunakan bahasa native , karena pada dasarnya framework juga dibangun dari Native), selain itu kelemahan Framework adalah kalau sudah ada bug di versi 1 trus diminta upgrade di versi 2, dan di versi 2 banyak hal dari source code kita yang harus dirubah, padahal yang kita butuhkan di versi 2 cuma masalah kecil, maka siap-siap mengoreksi semua dari awal.
  4. dengan Native kita bisa membuat sebuah system yang “Just What We Need“, System yang benar-benar dipakai khusus untuk tujuan tertentu. dengan framework kita disuguhkan seabrek Library yang kadang tidak atau bahkan sama sekali dibutuhkan. tetapi ikut di Load, sehingga pengaruh di Running Time.

4 point diatas menurut saya sudah cukup mewakili. saya pernah memilki pengalaman, membangun SIMRS menggunakan Native, selesainya memang lamaaaaaa…. sekali,  tapi masalah SIM RS adalah masalah Big Data, dengan Native eksekusi yang biasanya memakan waktu Framework bisa lebih cepat, tapi ngodingnya minta ampun susahnya. saya juga pernah menggunakan Framework (kalau gak salah dulu WordPress ) untuk sebuah SIM RS, saya Wrap sedemikian rupa sehingga cocok untuk kebutuhan. tetapi ketika mengalami masalah Big Data, ketika jumlah data mencapai Jutaan. wal hasil komputer server jadi kemput-kemput.

Saya pernah mendapat bayaran tentinggi dari sebuah proyek, waktu itu diminta untuk membuat software yang setara HP Symbian yang RAM-nya 64 MB tapi dijalankan di HP J2ME (jaman berjayanya J2ME bro) yang RAM-nya cuma 2MB. mau pakai framework apa ? RAM-nya cuma 2MB, sehingga jurus Native pun harus dikeluarkan (sampe 1 huruf String saja itu berharga). hal ini juga berlaku bagi pengembang Web atau Android, itu sebanya selain SDK (Software Developer Kit) , Google juga mengeluarkan NDK (Native Developer Kit).

jadi kalau minta saran dari pengalaman yang saya dapat tentang pilih native atau Framework, saran saya adalah pelajari dulu Nativenya, karena nggak mungkin bisa Framework kalau nggak bisa Native. jangan ngaku pinter Fisika kalau Matematika saja nggak becus, jangan bilang jago Framework kalau Native saja nggak bisa. lho memang apa gunanya kan sudah disediakan semua oleh Framework ? ok saya kasih contoh.

suatu ketika saya pakai WordPress sebagai dasar SIM RS, saya kembangkan plugins supaya WordPress cocok untuk SIM RS. login berjalan dengan lancar dan semua user pun senang. masalah terjadi ketika ada kebijakan dari manajemen bahwa, user A hanya bisa login di jam tertentu, atau User B hanya bisa login dari komputer IP sekian. waktu itu tidak disediakan oleh wordpress, wal hasil saya harus ngoprek sendiri. setelah jadi, ada bug di bagian login, dan bug tersebut fix di versi updatenya. setelah itu saya update dan ternyata, fungsi-fungsi yang saya pakai di wordpress versi sebelumnya jadi deprecated 🙁.

jadi harus tahu kapan pilih Framework atau Native, berikut ini sedikit saran mau pilih Framework atau Native.

Pilih Framework Jika : 

  • Project Cepat dan Umum. misalnya bikin Shopping Cart, bikin Web Profile, Bikin Situs Jualan. yang memang sudah banyak Framework yang menyediakan. jangan bilang bikin situs Blogging pakai PHP Native.
  • Project Continuitas dan Integrasi Rendah seperti bikin software kantor yang tidak membutuhkan resource Big data yang besar, seperti Software manajemen data karyawan, Software manajemen nilai siswa dikelas, bisa pakai CMS atau kalau mau bikin yang custom cukuplah pakai Kohana, Yii, Pyro dll.

Pilih Native jika :

  • Project Custom : proyek yang menuntut customisasi tingkat tinggi. daripada nanti kita mengoprek jeroan Framework yang lebih banyak nggak ngertinya mendhing bikin sendiri dari awal. toh biasanya project – project seperti ini budget-nya tinggi (bisa ratusan bahkan milyaran). biasanya perusahaan besar yang meminta Proyek semacam ini seperti Pemerintah Daerah.
  • Project Continuitas dan Integrasi Tinggi : continuitas tinggi maksudnya programmer diminta untuk terus menerus memaintenance software tersebut, mengembangkan berbagai perubahan yang mana harus menyesuaikan dengan proses bisnis perusahaan,dimana semuanya salin terintegrasi dan salin terhubung. jangan sampai proses bisnis sudah berkembang, tapi software gak berkembang karena Framework sudah tidak dikembangkan.

sekalipun seperti ada patokan, pada dasarnya hal yang saya kemukakan diatas tidak selamanya benar. kadang saya menggabungkan baik Framework maupun Native menjadi satu kesatuan. saya pun terkadang menggabungkan berbagai library yang ada di internet. tinggal bagaimana pinternya kita mengolah bahan yang sudah ada menjadi satu kesatuan system yang ada. kadang kita butuh Native dan kadang kita butuh Framework, tapi juga kadang cukup pakai Library dari sebuah framework pun bisa (yang artinya saya mengambil sebagian dari sebuah Framework untuk saya masukan kedalam program, biasanya proyek Open Source banyak yang seperti itu, seperti jQuery, PHPExcell, Bootstrap dll).

jadi kesimpulanya adalah pelajari Native-nya dulu, Berlanjut ke Library baru kemudian ke Framework. wah lama dong gan ? apapun yang dipelajari dengan tidak mudah dan waktu lama, hasilnya juga tidak akan mudah hilang dan tahan lama pula (kayak iklan obat kuat :p ). jika kita bisa mempelajari baik Native, Framework, maupun Library pada akhirnya kita akan bisa meracik Framework sendiri yang benar-benar sesuai dengan kebutuhan kita. “Just what we need… no more.. no less“. seperti yang saya alami pribadi, akhirnya saya membuat sebuah Framework yang benar-benar sesuai denga kebutuhan saya sendiri, tentu saja Framework tersebut berisi berbagai Library dari yang lain Framework atau Library lain “The Power of FOSS Man” asal lisensinya diperhatikan.

dua tiga user aktif. bagus framework atau native, itu relatif….

oke demikian yang bisa saya sharing, ini murni pengalaman pribadi saya, boleh setuju boleh tidak, kalau ada yang salah silakan dikoreksi, kalau ada yang kurang boleh kok ditambahi. Sampai jumpa ditulisan berikutnya , Okey Donkey dan salam goblooge.

 

Comments

total comments