Pejuang Kode
Published in

Pejuang Kode

React atau Vue?

Penasaran dengan Framework JavaScript pilihan saya?
Kenapa cuma React dan Vue? Angular-nya mana?
Kenapa ga sekalian Preact, Inferno, Svelte, atau framework-framework lainnya?
Berikut ini akan saya ceritakan kisah perkenalan dan hubungan saya dengan berbagai Framework JavaScript yang pernah saya coba, sekaligus framework mana yang akhirnya menjadi pilihan saya. Metode pencariannya kira-kira masih serupa dengan kisah saya dalam tulisan Menemukan Pasangan Hidup yang Tepat. 😁

πŸ“š Latar Belakang

Baru-baru ini saya pindah bidang pekerjaan dari Backend ke Frontend. Salah satu alasan utamanya adalah semakin pesatnya perkembangan JavaScript selama beberapa tahun terakhir, mulai dari lahirnya NodeJS sampai dengan munculnya berbagai framework seperti Angular, React, & Vue. Keempat framework tersebut adalah pemain besar di kancah per-JavaScript-an internasional. Oleh karena itulah saya coba pelajari keempatnya.

Empat? Angular + Vue + React = 4? πŸ€”

Di sini Angular saya hitung 2, karena ada AngularJS (Angular 1.x) & Angular (Angular 2 dst.), hehe.. 😁 Keduanya saya anggap berbeda karena memang keduanya benar-benar framework yang berbeda, baik dari segi API maupun implementasinya β€” source code Angular 2 benar-benar ditulis ulang dari nol.

πŸ”„ React β†’ AngularJS β†’ Angular 2 β†’ React

Sekitar 2,5 tahun yang lalu, saya mulai (serius) belajar JavaScript. Pada awalnya saya tertarik untuk mempelajari React terlebih dahulu karena β€œkatanya” bagus, tapi saya merasa sangat kesulitan dalam mempelajarinya, karena waktu itu pemahaman saya mengenai JavaScript masih sangat dangkal. Terlebih lagi dokumentasi React saat itu masih berantakan, sehingga sulit untuk diikuti oleh pemula β€” sekarang sudah lebih rapi, meskipun tidak serapi Vue, hehe.. 😁

Waktu itu saya masih belum tahu kalau ada Vue, karena memang belum begitu terkenal, sehingga alternatif lain yang saya tahu hanya Angular. Kemudian saya putuskan untuk mencoba belajar AngularJS. Kenapa tidak langsung Angular 2? Karena waktu itu Angular 2 masih di tahap beta release. Ternyata dokumentasi AngularJS cukup lengkap dan jelas untuk pemula, sehingga mudah bagi saya untuk mulai mempelajarinya.

Sekitar dua pekan kemudian, ternyata Angular 2 sudah rilis final β€” tidak beta lagi. Saya langsung berpindah ke Angular 2, yang tutorial resminya juga ternyata cukup bagus seperti AngularJS. Setelah mempelajari keduanya, saya mencoba untuk membuat sebuah aplikasi sederhana. Di situlah saya mulai merasa kesulitan, karena cukup banyak konsep baru yang diperkenalkan di Angular, ditambah lagi dengan pemahaman JavaScript saya yang kurang matang, sehingga saya makin merasa terbebani.

Setelah tenggelam dalam keputusasaan, saya menemukan gambar ini di sebuah halaman tutorial Thinkster:

Karena Vue belum terkenal, jadi yang dibandingkan hanya React dan Angular. πŸ˜…

Dari ilustrasi tersebut terlihat bahwa ternyata belajar Angular di awal memang terkesan mudah, tapi karena cukup banyak konsep baru yang harus dipelajari, upaya yang diperlukan untuk bisa membuat aplikasi yang lebih kompleks pun jadi semakin besar.

Akhirnya saya kembali mencoba belajar React meskipun masih terbata-bata. Alhamdulillaah saat itu ada yang bersedia membelikan tutorial berbayar dari Wes Bos yang cukup bagus dan saya mulai belajar dari sana.

Kemudian saya mulai iseng-iseng membuat aplikasi sederhana menggunakan React. Setelah component-nya cukup banyak, saya mulai kesulitan mengelola state aplikasi. Mulailah saya belajar Redux dan mencoba menerapkannya. Konsep dasar Redux memang cukup sederhanaβ€” seperti yang pernah saya presentasikan di BandungJS #4 β€” , tetapi begitu aplikasi kita semakin kompleks, makin banyak pula source code yang harus diketik, demi state management yang eksplisit, atau dengan kata lain no magic. Lagi-lagi saya merasa overwhelmed dan akhirnya mencoba mencari alternatif framework lain yang lebih sederhana. πŸ˜…

πŸ”„ Vue β†’ React

Akhirnya saya mengenal Vue dan penasaran ingin mencobanya. Salah satu yang membuat saya tertarik dengan Vue adalah dukungan resmi dari Vue terhadap library-library pendukungnya, seperti Vue Router, Vuex, dan Vue Server Renderer. Tidak seperti React yang cenderung membiarkan komunitas untuk membuat sendiri dan memilih library-library pendukungnya, ini salah satu yang membuat saya overwhelmed dengan React.

Singkat cerita, mulailah saya belajar Vue dan merasa sangat nyaman dengan API-nya. Vuex pun terasa sangat sederhana dibandingkan dengan Redux. Memang, di Vuex masih ada magic yang tidak segamblang di Redux, tetapi itu tidak mengurangi kejelasan source code-nya.

Semua kisah di atas itu terjadi ketika pekerjaan saya masih di bidang Backend, jadi semuanya saya kerjakan di luar jam kantor sebagai aktivitas sampingan, bukan pekerjaan utama saya. Baru sekitar dua bulan yang lalu saya pindah kerja ke perusahaan yang menggunakan React, sehingga pada akhirnya saya harus kembali lagi belajar React dengan segala kompleksitasnya. πŸ˜…

Jika sebelumnya saya hanya bisa belajar sendiri atau tanya-tanya di grup Telegram karena itu hanya bisa saya lakukan di waktu senggang saya, kali ini pengalaman saya belajar React sangat berbeda karena ada teman kantor yang bisa mengajari. Selain itu, saya bisa mempelajainya full time di jam kantor. Yeay! πŸŽ‰

Setelah beberapa pekan cukup dipusingkan dengan React Native, generator function, Redux-Saga, React Boilerplate, dan Webpack πŸ˜…, akhirnya saya mulai merasa nyaman dengan React. Menurut saya, dengan menggeluti React beserta kompleksitas komunitasnya yang sangat besar, kemampuan dan pemahaman kita terhadap JavaScript akan semakin matang, karena pada dasarnya semua konsep di React dan library-library pendukungnya itu tidak jauh dari konsep-konsep di JavaScript itu sendiri.

🀞🏼 React + Vue

Berdasarkan pengalaman saya sejauh ini, saya masih tertarik dengan kedua framework tersebut (Vue & React), tapi di lain sisi juga saya khawatir akan overwhelmed kalau harus mendalami keduanya. Saya tidak mungkin meninggalkan React, karena itu pekerjaan saya sehari-hari di kantor. Saya juga tidak ingin begitu saja meninggalkan Vue, karena sepertinya tahun 2018 ini akan menjadi tahun yang sangat menarik di Vue, seiring dengan semakin matangnya Vue dan semakin maraknya peminat Vue. 🀩

Karena masih bimbang, untuk saat ini saya coba mempelajari keduanya secara paralel, siangnya coding React di kantor, malamnya (dan weekend) coding Vue di rumah. Insya Allah saya bisa menjalaninya, toh juga selama 2,5 tahun terakhir ini alhamdulillaah saya masih bisa mempelajari JavaScript dan berbagai teknologi Frontend di waktu senggang saya meskipun di jam kerja saya masih harus berkutat dengan dunia Backend, hehe.. 😁

Lantas bagaimana dengan berbagai Framework JavaScript lainnya? Saya pernah sekilas mencoba beberapa di antaranya, tetapi untuk saat ini saya masih belum tertarik untuk serius menggunakannya, lagipula sepertinya dalam beberapa waktu ke depan posisi tiga besar β€” React, Vue, & Angular β€” ini masih belum akan tergeser oleh framework-framework lainnya. πŸ™ƒ

πŸ™πŸΌ Penutup

Demikian kisah saya dengan beberapa Framework JavaScript yang cukup terkenal, semoga bisa membantu menguatkan iman dalam menghadapi dunia JavaScript yang melelahkan β€” JavaScript Fatigue.

Bagi yang masih belum mempelajari sebagian atau semua framework di atas dan ingin menentukan framework mana yang ingin didalami, saran saya, silakan langsung coba saja salah satu. Kalau tidak cocok, pindah coba lagi yang lainnya. Begitu seterusnya, sampai benar-benar menemukan yang paling sesuai dengan preferensi dan kebutuhan. Kalau kita bersungguh-sungguh dalam melakukannya, insya Allah nantinya kita akan benar-benar menemukan β€œjodoh” framework yang paling tepat.

Kalau hanya mengandalkan artikel review atau perbandingan sana-sini, Anda akan merasa bingung sendiri, karena opini yang dibangun oleh masing-masing kubu sama kuatnya. Daripada waktunya habis buat baca artikel review, mending waktunya dipakai buat langsung hands on dengan framework-framework tersebut. 😁

Perkenalkan, saya Zain Fathoni, seorang Software Engineer di Ninja Van. Saya mulai gemar menulis tentang kehidupan berkeluarga dan programming, mengikuti jejak istri saya, Vika Budi Riandini, yang telah banyak menulis di blog Rumah Berbagi tentang kesehatan dan pengasuhan anak. πŸ‘¨β€πŸ‘©β€πŸ‘§β€πŸ‘¦

--

--

Kumpulan tulisan Zain Fathoni tentang kehidupan berkeluarga dan pemrograman https://zainfathoni.com/

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store