Menulis artikel tentang javascript bagi saya memang cukup “menakutkan”. Perkembangan Javascript yang sangat pesat membuat berbagai artikel tentang Javascript harus mengikuti perkembangan juga. Seperti artikel ini yang saya tulis pada pertengahan tahun 2013 silam atau 5 tahun kebelakang.
Banyak pertentangan dan komentar yang mungkin belum sempat dibaca maupun saya approve. Beberapa diantaranya ada yang setuju, dan sisanya menganggap penulis kurang update. Ya memang benar! 😀
Usut punya usut, tulisan tersebut memang saya tulis dengan latar belakang perkembangan mobile web browser terhadap perkembangan website yang ada “pada waktu itu”, 2013.
Kita setidaknya mungkin ingat, ReactJS muncul sekitaran Mei 2013, dan pada tahun itu pula kita sangat jarang mendengar tentang regulasi web teranyar bernama Progressive Web App, sebuah istilah yang bersangkutan dengan website modern. Apalagi mendengar mengenai Isomorphic Javascript yang berhubungan erat dengan SPA (Single Page Application).
Mari kita bahas, beberapa aspek diantara banyaknya aspek yang menjadikan Javascript menjadi mengagumkan.
HTML5 Trending Topic
Antara 2011 – 2014 bahkan hingga artikel ini ditulis adalah tahun dimana pemrograman HTML mengalami kepopuleran “yang sangat” dengan munculnya HTML5. Tentu saja ada sangkutannya dengan Javascript. Kemunculan HTML5 adalah alternatif dari penggunaan Ad*be Flash yang pada saat itu masih banyak digunakan sebagai penambah elemen kecantikan sebuah website, seperti animasi, audio dan lainnya.
Namun HTML5 dengan markup terbarunya ditambah dengan kecerdasan CSS3 dan Javascript, akhirnya mampu menyaingi Flash. Tragisnya, sekarang ini website-website dengan animasi maupun fitur-fitur audio sudah tidak lagi menggunakan Flash, melainkan HTML5 dan Javascript.
Bahkan pada 27 Januari 2015, Youtube mulai menggunakan HTML5 sebagai default playback player video mereka, menggantikan Flash. https://www.youtube.com/html5
Data Binding, Dependency Injection
Kebebasan javascript dalam penulisan alur program sangat luas. Salah satu yang populer adalah menggunakan model imperatif. Dan yang lebih modern menggunakan pendekatan deklaratif.
Saya tidak akan menyinggung banyak mengenai kedua pendekatan diatas. Namun perbedaan antara imperatif dan deklaratif sangat bersangkutan dengan gaya penulisan program dan pengembangan program, bukan dari hasil akhir program.
Semenjak awal Angular dan Kendo UI dirilis (masih ingatkah?) dengan gaya pendekatan deklaratif mereka yakni MVVM (Model View View Model). Dengan pola tersebut, workflow maupun pola cara menulis user interface dan embel-embelnya mulai berubah.
Kita mulai mengenal istilah mengenai Data-Binding, Dependency Injection yang pada waktu itu juga dipopulerkan oleh Angular 1 dengan jargonnya yaitu “Super Heroic Javascript Framework“. Dimana pola tersebut sedikit banyak mengubah gaya menulis untuk membuat sebuah UI merunut dari objek-objek data.
Metode tersebut menjadikan javascript lebih futuristik dan semakin mem-biru pada masa itu. Birunya Cinta (Rena KDI x Kang Brodin) 😀
PWA dan SPA
Banyak literatur mengenai ketiga kedua konteks sub judul diatas dimulai sejak sekitaran tahun 2014. Sebelum itu, ketiga konteks tersebut belum-lah se-terkenal seperti saat ini.
PWA atau Progressive Web App masih erat kaitannya dengan Hybrid App. Karena PWA bersangkutan juga dengan Native App, maka kita akan mendengar istilah yang populer lagi bernama Service Worker. Secara teknis, Service worker inilah yang menjadi jembatan PWA dalam pengaplikasiannya.
Service worker memanfaatkan mekanisme cache secara cukup efisien dan pengguna web masih dapat menggunakan web meski dalam keadaan offline.
Sedangkan SPA atau Single Page Application, menjadikan website berjalan lebih cepat dibandingkan dengan metode server side. Teknisnya, web dengan SPA jarang melakukan hot reload pada web browser pengguna ketika pengguna melakukan perpindahan halaman, atau melakukan interaksi lain.
Isomorphic
Isomorfis pada Javascript hampir sama seperti arti Isomorfis di KBBI (Kamus Besar Bahasa Indonesia) 😀 . Jika di KBBI berarti “hubungan yang sepadan”, dalam kaitan Javascript, Isomorfis adalah teknis yang memungkinkan Javascript dapat berjalan pada sisi klien dan juga server, sepadan. 😀
Konteks isomorfis javascript erat kaitannya dengan SPA, dalam hematnya metode isomorfis menjadikan website bertipikal SPA lebih “server friendly”. Konsep isomorfis umumnya juga dipakai untuk menjadikan website berbasis Javascript lebih SEO friendly.
———————————————–
Ada sedikit pengalaman mengenai konsep Isomorphic Javascript yang pernah saya alami dalam sebuah interview pekerjaan. Dan pengalaman interview tersebut masih saya ingat hingga saat ini karena bagi saya itu adalah hal yang sangat “memalukan”.
Kenapa memalukan? Karena ketika interviewer tersebut menanyakan tentang konsep Isomorphic Javascript, saya tidak dapat menjawabnya, bahkan dengan sepatah kata apapun. Aneh bukan? 😀 Itulah pengalaman buruk saya dengan Javascript yang menggagalkan harapan saya untuk masuk perusahaan besar tersebut. 😀
———————————————–
Sebagai penutup cerita, semua yang telah saya paparkan di point diatas, adalah empat aspek kecil dari banyaknya aspek-aspek yang menjadikan Javascript sangat berkembang pesat saat ini.
Semoga bermanfaat ! Salam sejahtera !