Dalam dunia pemrograman javascript sekarang ini, banyak sekali bermunculan tools, libraries, bahkan sampai framework, dalam beberapa tahun terakhir. Dimana, pada hal ini akan menyebabkan munculnya banyak sekali pilihan yang akan membuat orang bingung. Disatu sisi, ini merupakan hal yang baik, disisi lain, hal ini justru akan membuat orang kebingungan dan pasrah dengan kemunculan teknologi-teknologi terbaru ini.
Memilih framework yang tepat untuk aplikasi kita
“Apa saja framework javascript yang tepat untuk kita gunakan ?”. Pertanyaan seperti ini sering muncul karena banyaknya framework yang bertebaran dan bisa digunakan oleh semua orang. Sehingga tentunya pertanyaan ini tidak memiliki jawaban yang tepat. Disisi lain, penulis cukup puas dengan jawaban seperti “gunakan alat yang tepat untuk pekerjaan yang tepat”.
Meskipun penulis tentunya memiliki teknologi atau framework favorit sendiri, tentunya bukanlah hal yang baik untuk memaksakan preferensi pribadi kita sendiri terhadap orang lain. Terlebih pandangan yang menyatakan kalau “satu teknologi untuk semua project” bukanlah pandangan yang valid di dalam dunia pemrograman ini. Karena dunia pemrograman ini sudah terlalu kompleks untuk hanya mengandalkan satu teknologi saja.
Kita mungkin suka berfikir kalau apa yang kita lakukan adalah hal yang tepat, namun hal tersebut adalah hal yang sangat subjektif dan hanya terbatas akan hal-hal seperti apa yang kita suka dan apa yang kita tidak suka, apa yang membuat kita nyaman, pengalaman pribadi kita, dan tentu apa saja jenis produk yang ingin kita buat.
Ketika kita membicarakan mengenai framework javascript, tentunya sudah bukan rahasia lagi kalau banyak orang menyukai framework React, termasuk penulis sendiri. Framework ini sudah sangat populer sejak pertama kalinya diperkenalkan ke dalam dunia pemrograman, karena memang pencipta dari framework ini sendiri adalah facebook.
Artikel ini tidak akan terfokus pada React saja, karena memang masih ada banyak sekali pilihan framework lain yang tidak kalah dari React yang juga penulis gemari, seperti Angular yang diciptakan oleh google, atau Vue yang muncul baru-baru ini. Semua framework tersebut telah digunakan oleh perusahaan-perusahaan besar di seluruh dunia. Dan seperti yang sudah disebutkan tadi, tidak ada satupun teknologi yang cocok untuk semua hal. Lebih baik kita berfokus saja pada hal-hal seperti “teknologi yang benar untuk aplikasi tertentu”.
Meskipun kita memiliki banyak sekali kreativitas dan waktu untuk bereksperimen membuat website kita, terkadang kita tetap saja tidak yakin dan ragu untuk memilih framework atau library yang akan kita gunakan. Karena tentu kita tahu, kalau framework yang kita gunakan bisa juga merusah situs dalam kurun waktu yang lama, ketika kita sudah menyadarinya, semua sudah akan terlambat.
Apakah kita harus memilih Angular, Vue, React, atau library dan framework lain ? banyak orang merasa ragu karena banyaknya pilihan yang tersedia karena mereka takut untuk membuat keputusan yang salah. Jadi, berikut beberapa hal yang harus dipertimbangkan sebelum memilih sebuah framework. Penulis, tidak akan merekomendasikan beberapa framework secara spesifik tapi setidaknya kalau kita bisa menjawab beberapa pertanyaan inti dari daftar dibawah, seharusnya kita sudah bisa menentukan framework kita sendiri.
Produktivitas kita menggunakan framework tersebut
Framework apa saja yang akan membuat team kita lebih produktif ? apakah team kita memiliki latar belakang dengan Bahasa atau framework tersebut ? apakah framework itu mudah untuk dipelajari ? hal-hal ini perlu dijawab untuk bisa memilih sebuah framework yang tepat.
Penulis juga bukanlah seseorang yang suka untuk mempelajari framework hanya karena framework tersebut sedang “populer”, tanpa memiliki skill dan waktu yang cukup untuk mempelajarinya. Melakukan hal tersebut hanya akan berujung pada masalah. Pengalaman penulis berkata kalau tidak peduli seberapa bagus atau populer sebuah framework, semuanya masih bergantung pada developer dan skill yang dimiliki oleh developernya.
Tidak mengetahui beberapa aspek kunci dari suatu framework dapat berujung pada aplikasi yang kita buat berujung pada masalah, seperti masalah maintenance, atau tidak dibangun dengan code yang efektif dan efisien. Meskipun sebuah team juga bisa dilatih menggunakan suatu framework, tentunya tetap akan memakan banyak waktu agar mereka menjadi produktif dengan framework tersebut.
Cobalah membuat satu aplikasi menggunakan framework pilihan kita, seperti prototype atau aplikasi simpel. Dan setelah itu, coba bandingkan dengan team lain akan produktivitas mereka menggunakan framework tersebut. TIdak peduli apakah kita menggunakan Angular, Vue, atau React, cobalah membuat sesuatu yang kecil dengan framework tersebut dan buktikan sendiri.
Ketersediaan dokumentasi yang lengkap atau sumber belajar lain untuk dipelajari
Penulis menganggap kalau sebuah dokumentasi merupakan hal yang paling penting di dalam dunia pemrograman modern sekarang ini. Seorang developer yang baik akan bisa membaca dan menggunakan sebuah dokumentasi dengan baik. Sudah bukan rahasia lagi kalau di dalam dunia pemrograman ini, kalau seorang developer tidak boleh menghapal sesuatu, dan inilah gunanya sebuah dokumentasi bagi seorang developer. Karena seorang developer tidak disarankan untuk menghapal suatu konsep atau hal dalam sebuah teknologi, karena adanya keberadaan dokumentasi ini yang bisa kita akses kapan saja.
Ini merupakan hal yang paling penting, namun sering diabaikan. Meskipun terdapat beberapa framework yang menarik minat dan perhatian kita, namun kita juga membutuhkan dokumentasi, tutorial, buku, atau bahkan artikel, yang mungkin terdengar sangat membosankan, namun sangat membantu kita untuk mulai mempelajari framework tersebut.
Kita dapat mencari sumber pembelajaran ini dari dokumentasi resmi framework itu sendiri atau dari beberapa sumber lain yang sengaja disiapkan oleh para developer di internet untuk menambahkan sumber belajar kita. Kalau kita masih kesulitan untuk mempelajari framework tersebut, maka kita haruslah berhati-hati, karena siapa tahu framework yang kita gunakan masih sangat baru atau belum banyak digunakan oleh banyak komunitas programmer di internet.
Perlu kita sadari kalau mempelajari dari dokumentasi resmi saja terkadang tidak cukup, karena tidak semua dokumentasi resmi mudah dipelajari. Terdapat beberapa dokumentasi framework yang kurang lengkap, kurang rapih, atau membingungkan. Seperti contohnya framework EmberJs yang memiliki dokumentasi yang bagus namun sumber belajar lainnya kurang lengkap, tapi ReactJs atau Angular memiliki dokumentasi yang biasa-biasa saja, namun memiliki banyak sekali sumber pembelajaran lain di internet. Mungkin ini karena perbedaan popularitas dari framework itu sendiri.
VueJs memiliki dokumentasi yang biasa-biasa saja, namun juga memiliki sumber belajar lain di internet. AureliaJs hampir tidak memiliki sumber belajar lain, selain daripada dokumentasi resminya. Jadi semua tergantung daripada pilihan kita sendiri. Saya pribadi lebih memilih untuk memiliki pilihan lain, seperti sumber belajar lain, tutorial, dsb, yang membantu kita untuk mempelajari framework tersebut, meskipun dokumentasinya terkesan biasa-biasa saja.
popularitas framework tersebut
Sumber gambar: https://cdn-images-1.medium.com/max/1024/1*T551HACMn9A95dnwpPK-eQ.png
Penulis berpendapat kalau popularitas framework itu bukanlah hal yang penting. Karena framework itu datang dan pergi, begitu juga dengan popularitas sebuah framework. Dengan begitu, setidaknya kita menyadari kalau mempelajari sebuah framework hanya berdasarkan popularitasnya bukanlah hal yang baik dan benar
Mungkin saja kita senang dan bangga untuk mempelajari framework yang jarang digunakan oleh orang lain. Hal ini sah-sah saja, tapi dari pandangan dan perspektif dalam bisnis, ini merupakan hal yang kurang baik. Kebanyakan perusahaan atau client kita lebih menyukai framework yang sudah terkenal akan kegunaannya dan terjamin. Dimana kedua hal tersebut hanya terdapat pada framework yang terkenal dan populer saja.
Tentu saja juga terdapat beberapa alasan lain akan hal ini. Kalau framework terebut tidak populer, maka berarti akan hanya ada sedikit orang yang bisa menggunakannya. Maka, apa yang akan terjadi jika kita meninggalkan pekerjaan kita dan mencari pekerjaan baru ? pihak perusahaan akan berakhir pada mencari developer lain yang bisa menggunakan framekwork yang kita pakai dan tentu saja proses pencarian pengganti kita tidaklah semudah yang kita kira.
Proses ini akan sangat memberatkan pihak perusahaan. Sama saja halnya jika project tersebut mulai berjalan dan berkembang. Sekarang pihak perusahaan harus mencari developer lainnya yang juga bisa menggunakan framework tersebut untuk mempercepat proses pengembangan.
Terdapat juga beberapa alasan personal yang mengharuskan kita memilih framework yang populer dan digunakan oleh banyak orang. Seperti, apa yang akan terjadi jika kita menemukan masalah dalam menggunakan framework tersebut dan kita kesulitan untuk mencari komunitas yang bisa menolong kita ? karena kita hanya bisa mengandalkan dokumentasi yang tersedia, maka kita akan menghabiskan banyak waktu dan tenaga.
Selain itu, jika kita memikirkan karir kita di masa yang akan mendatang, bukankah akan lebih berprospek bagi karir kita semisal kita terspesialisasi dengan framework yang populer dan kita dapat menggunakanny dengan baik. Setidaknya akan ada banyak pekerjaan yang menanti kita dibandingkan dengan framework yang kurang populer.
Dan sudah pasti disini pemimpinnya adalah framework ReactJs dan Angular.
Terkadang kita juga perlu tahu kalau pilihan framework yang digunakan oleh perusahaan tempatmu bekerja atau client kita, bukanlah tergantung dari kita, bisa jadi tergantung dari bos atau member team kita yang terdahulu. Dan kemungkinan besar framework yang akan digunakan adalah ReactJs atau Angular. Ada pilihan-pilihan lain, hanya saja jumlahnya lebih sedikit.
Fitur inti
Ketika pada awal-awal kita ingin mempelajari secara singkat apa saja fitur inti atau utama yang dimiliki oleh suatu framework, apakah framework tersebut sudah cukup bagi kita untuk menyelesaikan masalah yang akan kita hadapi, dsb, kita bisa melakukannya dengan cara melihat dokumentasi resmi dari framework tersebut.
Jika kita memiliki pengalaman dengan front-end framework sebelumnya, proses ini akan menjadi lebih cepat dan mudah. Kita hanya perlu mencari beberapa topik berikut di dalam dokumentasinya :
- templating
- state management
- HTTP communication
- form processing and validation
- routing
Jadi, intinya adalah untuk memilih framework yang kita yakin akan kegunaannya untuk memecahkan masalah kita serta memiliki fitur yang lengkap untuk membantu kita dalam proses penyelesaian masalah kita sendiri.
Kegunaan
Setelah semua hal diatas, sekarang hal yang terpenting dan yang harus kita lakukan adalah mencoba framework ini sendiri. Mungkin hal ini terdengar sangat menyusahkan dan melelahkan bagi kita, tapi kita juga harus tahu kalau tidak peduli seberapa banyak dokumentasi yang kita baca atau seberapa banyak video tutorial yang kita telah tonton, semua hal tersebut tidak akan membantu kita sama sekali sampai kita mencobanya sendiri.
Cara yang paling mudah dan terbaik untuk mempelajari dan mengetahui apakah framework tersebut cocok untuk kita apa tidak, adalah dengan menggunakan mini project. Hal ini akan memberikan kita kesempatan untuk menyelesaikan masalah sehari-hari yang sering kita temui dengan framework yang akan kita pelajari.
Selagi kita mengerjakan project kita, kita juga perlu berfikir, apakah kita sudah menjadi produktif dengan framework ini ? apakah kita dapat dengan mudah mencapai tujuan kita dengan framework ini ? atau apakah kita masih perlu untuk mencari library lain untuk melengkapinya ? jadi selama kita mengerjakan project kita, sangatlah perlu bagi kita untuk mempertimbangkan segala sesuatu mengenai framework yang kita gunakan.
Kemudahan dalam integrasi (dengan library lain)
Tidak peduli seberapa kaya akan fitur framework yang kita pelajari sekarang ini, kenyataanya, kita akan selalu menemukan
masalah dimana mengharuskan kita untuk menggunakan tambahan dari luar framework itu sendiri, seperti library atau plugin yang kita butuhkan. Diluar sana banyak bisa kita temukan library yang terfokus untuk menyelesaikan sebuah masalah, seperti manipulasi DOM, pemrosesan data, edit text, dsb. Dan ketika kita ingin mengintegrasikan salah satu dari library tersebut dan setiap kali harus memakan waktu yang lama, mungkin framework yang kita pilih bukanlah pilihan yang terbaik.
Untuk melakukan pengecekan akan hal ini sangatlah mudah sebenarnya. Kita hanya perlu membayangkan situasi dimana kita akan membutuhkan bantuan dari satua tau dua library dalam berbagai macam skenario yang paling sering kita hadapi. Jika kita merasa kesulitan untuk menggunakan library tersebut dengan framework kita, maka mungkin kita harus benar-benar mengganti pilihan kita.
Apakah User peduli ?
Banyak sekali perdebatan mengenai framework ini yang terjadi, dimana menurut penulis, semua perdebatan tersebut bisa terjawab hanya dengan pertanyaan “apakah user peduli ?”. kenyataannya adalah kalau kebanyakan user tidak akan peduli dengan framework yang kita gunakan untuk membangun suatu aplikasi. Mereka hanya peduli pada kegunaannya saja.
Begitu juga dengan client kita sendiri. Menurut pengalaman dari penulis, client hanya peduli dengan sesuatu yang berjalan, memecahkan masalah mereka, cepat dan mudah untuk digunakan. Jadi, ingatlah, kalau tidak peduli framework apa yang kita gunakan, aplikasi yang kita bangun hanya bertujuan untuk memecahkan masalah untuk para customer, bukan untuk kita.
Sebagai seorang developer, kita seringkali terjebak pada dunia kita sendiri dan membuang-buang waktu kita akan pertanyaan-pertanyaan seperti “siapa yang benar ?”. Kita sering lupa kalau selama aplikasi yang kita buat bisa berjalan sebagaimana mestinya, customer akan senang menggunakannya. Selama framework yang kita gunakan bisa membangung aplikasi yang kita ingin buat, maka framework yang kita pilih bukanlah masalah.
Berpegang teguh pada satu front-end framework
Sumber gambar: https://www.konstantinfo.com/blog/wp-content/uploads/2016/10/Top-10-JavaScript-Frameworks-for-2016.jpg
Memilih front-end framework merupakan langkah pertama agar dapat sukses membuat aplikasi web kita. Baik project dalam skala besar atau skala yang kecil, maupun sendiri atau dalam team, setiap framework yang kita pilih akan memegang peranan penting setiap kali, jadi pilihlah framework pilihan kita dengan baik dan benar.
Penulis sangat percaya kalau framework sudah menjadi bagian penting bagi sebuah aplikasi atau teknologi yang ada sekarang ini dan yang akan dibangun di masa depan. Baik pemula maupun mereka yang sudah professiona, memilih framework ini adalah bagian penting bagi proses development mereka.
Seiring waktu berjalan, apa yang ditulis dalam artikel ini, mungkin bisa menjadi tidak relevan lagi, mengingat framework akan terus berubah dan berkembang, serta kepopuleran satu framework tidak akan tetap sama, namun artikel ini setidaknya telah memberikan gambaran besar mengenai framework mana yang baik bagi kita dan cocok dipilih untuk project kita.