Bukan yang kuharapkan, tapi mungkin yang kita butuhkan

MMaximilian Schwarzmüller
Computing/SoftwareInternet Technology

Transcript

00:00:00Kita punya framework JavaScript baru,
00:00:02framework full stack,
00:00:04tapi dengarkan dulu sebelum kamu pergi.
00:00:06Ini cukup menarik karena dibuat oleh tim Remix,
00:00:10jadi orang-orang yang membangun Remix JS yaitu Ryan Florence dan Michael Jackson.
00:00:16Bukan, bukan Michael Jackson yang itu.
00:00:18Mereka juga adalah penulis asli dari React Router.
00:00:22Mereka membagikan visi mereka dan sebenarnya prototipe pertama atau bisa dibilang demo pertama dari framework JavaScript baru mereka,
00:00:31Remix versi 3.
00:00:32Jadi ini bukan nama yang benar-benar baru,
00:00:35namanya sudah ada,
00:00:37tapi ini adalah framework yang sepenuhnya baru.
00:00:40Dan di video ini saya akan mencoba memahami semua itu,
00:00:44menjelaskan apa itu dan tentu saja pendapat saya tentangnya,
00:00:48apakah kita benar-benar memerlukan framework JavaScript lainnya dan bagaimana menurut saya peluang kesuksesan atau adopsinya di era di mana model bahasa besar tentu saja secara default menghasilkan aplikasi React.
00:01:04Tapi mari kita bahas langkah demi langkah,
00:01:07apa sebenarnya Remix itu dan mengapa ini penting??
00:01:11Remix,
00:01:11kalau kamu melewatkannya,
00:01:13adalah meta framework React pada dasarnya sebagai alternatif dari Next JS.
00:01:19Dan Remix dirilis beberapa tahun yang lalu,
00:01:22Remix versi 2 dirilis sekitar tahun 2022 kalau tidak salah,
00:01:26dan kemudian di 2024 Remix versi 2 pada dasarnya digabungkan dengan React Router.
00:01:32Itulah mengapa sekarang ketika menggunakan React Router,
00:01:36kamu bisa menggunakannya sebagai library routing di aplikasi React seperti biasa,
00:01:41itu masih berfungsi,
00:01:43masih merupakan library yang luar biasa untuk itu.
00:01:46Tapi kamu juga bisa menggunakannya dalam mode framework untuk pada dasarnya membuat aplikasi React full stack di mana React Router lebih dari sekadar router,
00:01:58ia juga membantu dengan pengambilan data,
00:02:01pemuatan data,
00:02:02mutasi data,
00:02:02sama seperti Remix karena memang Remix yang digabungkan ke dalam React Router.
00:02:08Tapi tentu saja itu memunculkan pertanyaan,
00:02:11apa yang akan terjadi dengan Remix nantinya,
00:02:14dengan brand-nya??
00:02:17Remix dan ternyata akan menjadi framework baru dengan versi 3.
00:02:22Ini akan menjadi framework baru yang,
00:02:25yang penting,
00:02:26independen dari React.
00:02:28Ini bukan meta framework React,
00:02:30bukan alternatif Next JS lainnya.
00:02:33Melainkan framework JavaScript full stack yang benar-benar baru,
00:02:38ditulis dari awal,
00:02:40dari nol,
00:02:40dengan semua fitur dan API yang diinginkan Ryan Florence dan Michael Jackson dalam framework JavaScript baru.
00:02:49Jadi pada dasarnya memecahkan masalah yang mereka lihat dan alami di ekosistem JavaScript,
00:02:56dengan lanskap library dan framework yang ada kalau boleh saya sebut,
00:03:02khususnya tentu saja dengan React karena itu adalah library dan framework utama,
00:03:08tergantung bagaimana kamu menyebutnya,
00:03:11yang kita miliki di luar sana.
00:03:14Jadi, tentang apa Remix baru ini??
00:03:18Jumat lalu kita bisa mendapatkan demo pertama,
00:03:20pandangan pertama tentang API-nya.
00:03:22Dan saya akan menaruh link live stream lengkap di mana kamu bisa menonton seluruh acara pengumumannya di bawah video ini tentu saja,
00:03:29kalau kamu ingin melihat semuanya.
00:03:31Tapi perlu diingat bahwa itu akan sekitar empat jam non-stop berisi demo dan penjelasan.
00:03:35Saya sudah menontonnya jadi kamu tidak perlu kalau tidak mau,
00:03:38tapi pasti lihatlah kalau kamu ingin belajar lebih banyak.
00:03:41Dan di sini kamu melihat salah satu hal utama yang akan menjadi fokus framework baru ini,
00:03:46atau bisa dibilang hal utama yang membuat heboh di X..
00:03:49this.update.
00:03:50Tidak terlihat terlalu spektakuler, kan.
00:03:54Tapi sebenarnya ini mengimplikasikan dua hal yang developer JavaScript tidak terlalu terbiasa lagi.?
00:04:04Yang pertama, penggunaan keyword this.
00:04:07Maksud saya,
00:04:08orang-orang tua seperti saya belajar semua keunikan dan fitur dari this ketika kami mulai dengan JavaScript.
00:04:15Saat ini kamu tidak benar-benar menggunakannya banyak.
00:04:19Di React kamu mungkin tidak akan pernah menulis this.
00:04:23Tapi ini adalah keyword yang sudah ada di dalam JavaScript.
00:04:27Mereka memanfaatkan keyword this untuk mengekspos beberapa API kepada kamu.
00:04:33Di mana kamu mendapatkan akses ke API tersebut?
00:04:36Kamu masih menulis fungsi..
00:04:39Jadi kamu tidak menulis class meskipun kamu mungkin berpikir begitu dengan keyword this ini.
00:04:44Tapi ketika bekerja dengan Remix,
00:04:46kamu masih membangun komponen,
00:04:48dan kamu masih akan menggunakan fungsi untuk itu,
00:04:51sama seperti yang kamu tahu dari React.
00:04:53Tapi fungsi komponen tersebut akan terlihat sedikit berbeda.
00:04:57Tapi mari kita kembali ke this.update.
00:04:59Saya sebutkan ada dua hal penting tentang itu.
00:05:02This adalah salah satunya.
00:05:03Update adalah yang lainnya,
00:05:05karena di Remix versi 3 kamu harus memberitahu framework kapan harus memperbarui layar,
00:05:10kapan harus re-render.
00:05:11Dan tentu saja itu adalah sesuatu yang kita tidak terbiasa lagi,
00:05:15karena di React tapi juga di Vue dan Angular,
00:05:18kamu mengandalkan framework untuk menentukan kapan harus update.
00:05:22Di React ketika kamu memanggil setState,
00:05:24kamu memberikan nilai baru ke state yang kamu kelola dan itu kemudian juga akan memicu pembaruan UI.
00:05:30Tapi tidak harus langsung,
00:05:31melainkan React akan melakukan batching,
00:05:34akan mengumpulkan beberapa pembaruan state dan sebagainya.
00:05:37Tapi akhirnya akan memperbarui UI.
00:05:39Jadi dengan setState kamu seperti memberitahu React bahwa ia harus memperbarui UI,
00:05:44tapi kamu lebih memberitahunya bahwa beberapa nilai berubah dan sebagai efeknya UI akan diperbarui,
00:05:50UI akan di-render ulang.
00:05:51Dengan Remix berbeda.
00:05:53Dengan versi 3 Remix saya harus katakan,
00:05:55di sana kamu akan mengelola state-mu di variabel standar,
00:05:58tidak ada yang spesial.
00:06:00Tidak ada hook useState atau apa pun seperti itu,
00:06:03tidak ada hook sama sekali sebenarnya.
00:06:05Dan kamu kemudian cukup memanggil this.update kapan pun kamu tahu bahwa UI harus diperbarui.
00:06:10Jadi kamu bisa mengubah banyak variabel dan tidak memanggil this.update dan UI tidak akan diperbarui.
00:06:16Atau kamu mengubah banyak variabel dan memanggil this.update dan UI akan diperbarui.
00:06:21Begitulah cara kerjanya.
00:06:23Dan sepertinya beberapa orang,
00:06:25kamu tahu internet,
00:06:26orang-orang di internet itu mengerikan,
00:06:28beberapa orang punya masalah dengan itu.
00:06:30Saya bilang mari kita lihat bagaimana cara kerjanya.
00:06:34Maksud saya,
00:06:34ini pendekatan baru dan pendekatan lama pasti bekerja dengan baik.
00:06:38Saya rasa ada alasan mengapa ia digunakan di semua library dan framework tersebut.
00:06:43Tapi pendekatan lama juga pasti berpotensi menjadi masalah yang bisa mengarah pada situasi di mana tidak jelas mengapa sesuatu diperbarui atau tidak diperbarui.
00:06:53Dan di aplikasi yang lebih kompleks,
00:06:55terutama dengan versi React yang lebih baru yang telah menjadi cukup kompleks dengan banyak hook dan sebagainya,
00:07:01bisa sangat membingungkan untuk benar-benar memahami apa yang sedang terjadi.
00:07:06Dan itu adalah salah satu alasan mengapa mereka kembali ke API yang lebih sederhana di mana kamu memiliki kontrol penuh..
00:07:16Mereka juga menggunakan kata kunci this untuk mengekspos beberapa API lainnya kepada Anda,
00:07:21tapi sebenarnya tidak banyak karena jelas idenya adalah menjaga framework tetap sederhana dan fokus serta memberikan pengalaman developer yang baik dan memudahkan penggunaan framework ini.
00:07:32Selain itu,
00:07:32ada tujuan yang jelas dan mereka menyatakannya dalam sebuah posting blog yang dibagikan awal tahun ini,
00:07:38tujuan yang jelas untuk framework ini adalah agar mudah digunakan oleh large language model.
00:07:44Jadi idenya jelas adalah Anda akan bisa seperti memasukkan artikel dokumentasi atau contoh-contoh ke dalam riwayat chat Anda dengan large language model,
00:07:52memberikan beberapa informasi sebagai konteks dan kemudian membuat LLM dan asisten kode membantu Anda menghasilkan kode karena tentu saja mereka perlu melakukan itu karena ini adalah framework yang benar-benar baru sehingga jelas tidak ada large language model yang ada saat ini yang dilatih pada basis kode ini dan untuk masa mendatang yang dapat diprediksi mereka tidak akan dilatih padanya karena delapan puluh persen dari semua contoh kode front-end adalah react sepertinya,
00:08:20khususnya react dengan shadcn jadi tentu saja mereka perlu menemukan cara lain untuk memungkinkan developer membuat large language model sadar akan cara menulis kode remix we free yang merupakan alasan lain mengapa mereka menjaga AI tetap sederhana saya kira dan mengapa mereka ingin menjaganya tetap ekspresif dan mudah dipahami dan mudah digunakan karena bukan hanya manusia yang harus menggunakannya,
00:08:43tetapi juga model large language model,
00:08:45jadi itu jelas salah satu tujuan yang mereka miliki dan Anda bisa melihat itu dalam contoh-contoh yang mereka bagikan.
00:08:52Selain itu,
00:08:53tujuan lain yang mereka miliki dan mereka menyatakannya berkali-kali dalam keynote tersebut dalam presentasi itu adalah bahwa mereka menggunakan web primitif.
00:09:02Mereka menggunakan fitur-fitur yang tersedia di browser modern dan tidak hanya browser tetapi juga di back end dan saya akan membahas back end dalam beberapa detik.
00:09:11Tetapi mereka menggunakan hal-hal yang sudah dibangun di dalam browser.
00:09:15Mereka sangat mengandalkan event native dan kemampuan bawaan untuk men-dispatch custom event.
00:09:21Jadi Anda bisa membuat custom event di browser dan men-dispatch-nya dan mereka sangat mengandalkan itu,
00:09:27mereka mengandalkan abort signal untuk mengomunikasikan bahwa sebuah komponen telah unmounted misalnya dan untuk memungkinkan Anda menghentikan event listener Anda secara otomatis.
00:09:37Jadi mereka menggunakan apa yang sudah dibangun di dalam browser karena saya benar-benar merasa seperti kita para web developer.
00:09:44Kita tidak mengikuti apa yang dapat dilakukan oleh browser modern dan tidak hanya browser modern.
00:09:50Ada kemampuan tertentu yang sudah ada selama bertahun-tahun dan kita tidak menggunakannya.
00:09:55Kita mungkin bahkan tidak tahu tentang mereka jika Anda benar-benar menyelami apa yang ditawarkan DOM apa yang ditawarkan browser API apa yang tersedia di sana.
00:10:04Ada banyak yang bisa Anda lakukan di sana dan banyak hal di mana Anda mungkin tidak memerlukan library pihak ketiga tambahan dan pada akhirnya itulah yang mereka coba manfaatkan.
00:10:15Tetap sederhana dan gunakan kemampuan bawaan tersebut,
00:10:18itulah pada akhirnya pendekatan mereka di sini.
00:10:20Sekarang seperti yang saya katakan,
00:10:22ini masih sebuah framework.
00:10:24Anda tidak akan membuat node DOM dengan createElement dan semua API DOM tersebut,
00:10:29melainkan seperti yang disebutkan sebelumnya,
00:10:31Anda masih akan membuat komponen dengan membuat fungsi dan dengan menggunakan kode JSX di dalamnya.
00:10:37Mereka menunjukkan semua itu.
00:10:39Hanya saja manajemen state bekerja dengan cara yang benar-benar berbeda bahwa secara umum lebih ramping bahwa Anda tidak akan memiliki hook atau apa pun seperti itu.
00:10:48Juga karena fungsi-fungsi komponen tersebut tidak akan dipanggil lagi dan lagi seperti yang terjadi di react.
00:10:54Sebaliknya Anda akan memiliki dua jenis fungsi dan tergantung pada bagaimana Anda menulisnya,
00:11:00mereka akan dipanggil hanya sekali atau sebagian dari mereka mungkin dipanggil beberapa kali dan inilah sesuatu untuk orang-orang yang mungkin pernah bekerja dengan react pada tahun 2000,
00:11:11saya kira 17 sudah pada saat itu Anda mungkin ingat kita memiliki dua jenis komponen.
00:11:15Kita memiliki komponen stateful berbasis class yang bisa mengelola state dan yang bisa update ketika state tersebut berubah dan kita memiliki komponen stateless dan itu adalah fungsi komponen saat itu dan kemudian kita memiliki react hooks dan semua komponen menjadi fungsi komponen pada akhirnya dan mereka bisa menjadi stateful atau stateless.
00:11:35Remix versi 3 mengambil pendekatan react old-school tersebut bisa dikatakan tetapi bukan dengan class atau fungsi tetapi dengan fungsi yang selalu tetapi jenis fungsi yang berbeda.
00:11:46Jika Anda memiliki fungsi yang mengembalikan JSX,
00:11:48itu adalah komponen stateless pada akhirnya.
00:11:51Anda tidak bisa memanggil update ini di dalamnya dan mengharapkan fungsi komponen dieksekusi lagi.
00:11:57Bukan seperti itu cara kerjanya.
00:11:58Anda bisa menerima props dan jika komponen parent di-render ulang fungsi komponen Anda akan dieksekusi lagi dan seterusnya.
00:12:05Tetapi Anda tidak bisa mengelola state di dalamnya.
00:12:08Anda mengubah fungsi komponen menjadi fungsi komponen stateful bisa dikatakan dengan tidak mengembalikan kode JSX tetapi dengan mengembalikan fungsi yang mengembalikan kode JSX.
00:12:19Jadi fungsi komponen yang berisi dan mengembalikan fungsi yang kemudian mengembalikan kode JSX yang kemudian akan menjadi atau yang kemudian bisa menjadi komponen stateful dan di sana ketika Anda memanggil fungsi this dot update yang Anda kembalikan akan dieksekusi lagi,
00:12:34setidaknya begitulah pemahaman saya jadi kita memiliki tipe komponen yang berbeda,
00:12:39tetapi sekali lagi API yang sangat sederhana pada akhirnya cara yang sangat sederhana untuk membedakan antara fungsi komponen stateful atau stateless.
00:12:47Dan kemudian ada backend karena remix versi 3 bukan hanya framework front-end,
00:12:52melainkan framework full stack.
00:12:54Ini dimaksudkan untuk menjadi framework full stack.
00:12:57Tapi ngomong-ngomong,
00:12:58mereka juga akan mengirimkan library komponen yang memudahkan untuk membangun komponen form yang kompleks dan sebagainya.
00:13:05Saya juga harus menyebutkan ini tetapi kembali ke back end.
00:13:08Ini juga akan dilengkapi dengan bagian back-end.
00:13:11Ini bertujuan untuk menjadi framework full stack front-end dan back-end digabungkan.
00:13:16Sekali lagi tanpa react sepenuhnya,
00:13:18sebaliknya mereka me-rebuild semuanya dari awal bisa dikatakan tetapi di back end Anda akan mendapatkan router,
00:13:24router yang cukup mampu dan powerful karena jelas karena mereka telah membangun react router selama 10 tahun terakhir,
00:13:31mereka tahu banyak tentang routing jadi Anda akan mendapatkan router yang powerful,
00:13:36Anda mendapatkan kemampuan untuk mengembalikan kode JSX dan komponen remix di route Anda dan meng-hydrate komponen-komponen tersebut di server.
00:13:44Mereka datang dengan alternatif mereka sendiri untuk react server components,
00:13:48alternatif yang lebih sederhana yang memungkinkan Anda mengembalikan komponen yang dibuat untuk update setelah disajikan di client dengan mengambil ulang bagian-bagian DOM.
00:13:58Jadi ketika Anda menghapus sesuatu misalnya,
00:14:01Anda bisa mengirim request dari client ke server tersebut dan mendapatkan kembali beberapa kode HTML yang bisa di-hydrate lagi untuk memperbarui bagian-bagian DOM.
00:14:10Jadi mereka memberi kita semua fitur ini untuk membangun aplikasi full stack modern seperti single page yang cepat sama seperti yang bisa Anda lakukan dengan next JS atau mode framework react router atau framework lain seperti tan stack start tetapi lebih sederhana,
00:14:26itu tujuan yang jelas,
00:14:27memiliki cara sederhana untuk membangun aplikasi tersebut.
00:14:30Itulah yang ingin mereka lakukan.
00:14:32Ada lebih banyak lagi dalam presentasi ini.
00:14:35Ini panjang tetapi itu semacam bagian yang paling penting saya rasa,
00:14:38itulah kesimpulan utama saya.
00:14:40Mereka ingin memberi kita framework full stack yang powerful dan sederhana.
00:14:44Mereka menulisnya dari awal.
00:14:46Kita memiliki updating manual dan sebagainya.
00:14:49Jadi semua yang saya jelaskan, apakah kita membutuhkan itu??
00:14:56Itu pertanyaan besarnya dan saya kira pertanyaan besar lainnya.
00:15:00Apakah ini akan berhasil??
00:15:02Jelas kedua pertanyaan itu cukup sulit dijawab,
00:15:04tapi saya akan berusaha sebaik mungkin.
00:15:06Apakah kita membutuhkan itu??
00:15:08Nah,
00:15:08saya pikir kita memiliki banyak framework JavaScript di luar sana dan jelas akan ada banyak orang yang mengatakan kita memiliki terlalu banyak jadi jawabannya kemudian adalah tidak.
00:15:19Saya selalu berpikir bahkan pada tahun 2018 ketika kita memiliki framework baru setiap minggu bahkan saat itu saya berpikir bahwa selalu baik untuk memiliki inovasi dan mencoba ide-ide baru.
00:15:30Saya tidak berpikir kita membutuhkan framework baru yang hanya seperti react dengan beberapa perbedaan kecil.
00:15:37Saya tidak berpikir kita membutuhkan itu tetapi pendekatan yang benar-benar baru dengan updating yang dipicu secara manual dan semua hal kecil lainnya yang mereka miliki.
00:15:46Saya pikir itu adalah ide yang bagus.
00:15:49Ini pasti layak dicoba.
00:15:50Kedengarannya menarik.
00:15:51Ini mungkin memberi kita alternatif yang lebih sederhana untuk react yang luar biasa,
00:15:56tetapi telah menjadi cukup kompleks selama bertahun-tahun.
00:16:00Jadi ya, kita mungkin membutuhkan itu.
00:16:02Apakah ini akan berhasil??
00:16:04Itu tentu saja pertanyaan lain,
00:16:06karena terutama sekarang di era AI dan model bahasa besar.
00:16:09Jelas model-model itu biasanya akan merekomendasikan React secara default.
00:16:13Di sisi lain,
00:16:14orang yang tidak tahu cara menulis kode tentu saja bukan target audiens secara langsung,
00:16:20setidaknya tidak langsung.
00:16:21Saya akan kembali ke itu nanti.
00:16:23Jadi tidak masalah di sana.
00:16:25Namun developer berpengalaman mungkin tertarik menggunakan Remix dan cukup mengarahkan model bahasa besar dengan bantuan contoh-contoh resmi dan sebagainya untuk menghasilkan kode Remix,
00:16:36semata-mata karena mereka ingin memiliki basis kode yang lebih sederhana.
00:16:40Karena pada akhirnya sebagai developer,
00:16:42kita masih menyentuh kode kita.
00:16:44Kita mungkin menghasilkan sebagian besar darinya,
00:16:47tapi kita masih mengontrol model bahasa besar.
00:16:50Kita masih menyesuaikan bagian-bagian dari kode.
00:16:53Kita mungkin menulis bagian yang lebih besar dari kode itu jika kita punya fitur yang sangat spesifik dalam pikiran yang sepertinya tidak bisa dipahami oleh AI dengan benar.
00:17:03Jadi jelas kita masih peduli tentang tech stack sebagai developer.
00:17:07Saya masih peduli setidaknya dan saya yakin beberapa dari kalian juga peduli.
00:17:12Jadi di sana mungkin menarik untuk mencoba sesuatu yang lain dan selama framework itu mudah digunakan dengan model bahasa besar.
00:17:20Ada cukup banyak sumber daya untuk mengajari model bahasa besar cara menggunakannya,
00:17:25yang tentu saja sepertinya menjadi fokus dan prioritas mereka.
00:17:28Itu terdengar bagus bagi saya.
00:17:30Jadi itu mungkin benar-benar memberi mereka peluang sukses yang valid.
00:17:34Ini jelas akan sulit,
00:17:36tapi ya,
00:17:36itu memang selalu akan terjadi seperti itu,
00:17:39saya rasa.
00:17:39Jadi saya melihat peluang tapi tentu saja,
00:17:42ini adalah pasar yang ramai untuk mengatakannya seperti itu.
00:17:45Sekarang yang penting adalah bahwa Remix dimiliki oleh Shopify sejak tahun 2022..
00:17:52Shopify membeli Remix, bisa dibilang begitu.
00:17:55Jadi tim Remix menjadi bagian dari Shopify.
00:17:57Nah Shopify jelas tentu saja tertarik untuk memiliki framework yang terawat secara aktif dan yang sedang digunakan setidaknya di dalam Shopify.
00:18:07Dan dengan itu saya tidak hanya bermaksud di dalam perusahaan untuk halaman marketing dan branding Shopify mereka.
00:18:14Maksud saya untuk toko-toko Shopify.
00:18:16Sangat mungkin bahwa tujuannya adalah untuk menjadikan Remix sebagai opsi bagi vendor Shopify yang ingin membangun toko mereka sendiri di atas Shopify dan yang ingin cara mudah untuk menyesuaikan toko-toko tersebut dan membangun etalase toko khusus atau halaman-halaman yang membentuk keseluruhan toko.
00:18:35Dan mereka tentu saja memiliki framework yang mudah digunakan dan mudah digunakan dengan model bahasa besar,
00:18:42bisa sangat besar.
00:18:44Ini masih bukan jaminan,
00:18:45tentu saja,
00:18:46tapi memiliki Shopify di belakang Remix tentu saja bernilai banyak,
00:18:50saya kira.
00:18:51Dan oleh karena itu saya cukup positif tentang masa depan Remix.
00:18:55Juga,
00:18:55tentu saja karena mereka memiliki komunitas yang mungkin kecil tapi sangat antusias sejauh yang saya tahu.
00:19:02Mereka memiliki track record yang luar biasa,
00:19:05jelas sudah mengembangkan React Router dan sebagainya.
00:19:08Jadi ya,
00:19:09saya sangat bersemangat untuk melihat apa yang akan kita dapatkan.
00:19:13Saya bersemangat untuk akhirnya menggunakannya sendiri karena saat ini itu tidak benar-benar memungkinkan.
00:19:20Dan ini adalah pemikiran saya tentang itu.
00:19:23Jadi seperti biasa,
00:19:24beri tahu saya apa pendapat kalian jika kalian pikir kita membutuhkannya dan apakah mereka akan menang.
00:19:30Dan tonton seluruh bagian empat jam dari konferensi itu jika kalian tertarik dan ingin belajar lebih banyak..

Key Takeaway

Remix v3 adalah framework JavaScript full stack yang ditulis ulang dari nol dengan pendekatan manual updating dan fokus pada kesederhanaan, web primitives, serta kemudahan penggunaan oleh AI untuk menjadi alternatif yang lebih sederhana dari React.

Highlights

Remix v3 adalah framework JavaScript full stack yang sepenuhnya baru dan independen dari React, dikembangkan dari awal oleh tim pencipta React Router

Framework ini menggunakan pendekatan manual updating dengan this.update, di mana developer harus secara eksplisit memberitahu framework kapan harus me-render ulang UI

Fokus utama adalah kesederhanaan dan kemudahan penggunaan oleh Large Language Model (LLM), dengan API yang ekspresif dan mudah dipahami

Remix v3 memanfaatkan web primitives dan fitur native browser modern seperti custom events dan abort signals, mengurangi ketergantungan pada library pihak ketiga

Framework ini dimiliki oleh Shopify sejak 2022 dan ditargetkan untuk vendor Shopify yang ingin membangun toko kustom dengan cara yang lebih mudah

Timeline

Pengenalan Remix v3 dan Latar Belakang

Video dimulai dengan pengumuman framework JavaScript baru yang dibuat oleh tim Remix, yakni Ryan Florence dan Michael Jackson yang juga merupakan penulis asli React Router. Framework ini disebut Remix versi 3, namun sebenarnya adalah framework yang sepenuhnya baru dan berbeda dari Remix sebelumnya. Pembicara menekankan bahwa ini menarik karena berasal dari tim yang berpengalaman membangun Remix JS. Video ini akan membahas apa itu framework baru tersebut, memberikan pendapat tentangnya, dan mendiskusikan apakah kita benar-benar memerlukan framework JavaScript lainnya serta peluang adopsinya di era di mana large language model secara default menghasilkan aplikasi React.

Sejarah Remix dan Evolusi ke Versi 3

Pembicara menjelaskan sejarah Remix sebagai meta framework React yang menjadi alternatif dari Next.js. Remix dirilis beberapa tahun lalu, dengan versi 2 diluncurkan sekitar tahun 2022, kemudian di tahun 2024 Remix v2 pada dasarnya digabungkan dengan React Router. Sekarang ketika menggunakan React Router, developer bisa menggunakannya sebagai library routing biasa atau dalam mode framework untuk membuat aplikasi React full stack dengan fitur pengambilan data, pemuatan data, dan mutasi data. Penjelasan ini memberikan konteks penting tentang bagaimana Remix berkembang dari meta framework React menjadi sesuatu yang lebih besar dan independen.

Remix v3 sebagai Framework Independen dari React

Bagian ini mengklarifikasi bahwa Remix v3 bukan lagi meta framework React atau alternatif Next.js lainnya, melainkan framework JavaScript full stack yang benar-benar baru, ditulis dari awal (from scratch). Framework ini memiliki semua fitur dan API yang diinginkan oleh Ryan Florence dan Michael Jackson dalam framework JavaScript baru. Tujuannya adalah memecahkan masalah yang mereka lihat dan alami di ekosistem JavaScript, khususnya dengan lanskap library dan framework yang ada, terutama React yang merupakan library dan framework utama di industri saat ini. Ini menandai perubahan signifikan dari pendekatan Remix sebelumnya.

Demo Pertama dan Fokus pada this.update

Pembicara membahas demo pertama yang ditampilkan dalam live stream empat jam tentang Remix v3, dengan fokus pada API-nya. Salah satu hal utama yang menjadi sorotan adalah penggunaan this.update, yang mengimplikasikan dua hal tidak biasa bagi developer JavaScript modern: penggunaan keyword this (yang sudah jarang digunakan di React modern) dan manual updating. Framework ini memanfaatkan keyword this untuk mengekspos beberapa API, dan developer masih menulis fungsi komponen seperti di React, namun dengan cara yang sedikit berbeda. Ini menjadi pembeda utama dari framework JavaScript modern lainnya yang mengandalkan reactive state management.

Perbedaan Manual Update dari React

Bagian ini menjelaskan perbedaan fundamental antara Remix v3 dengan React dalam hal updating UI. Di React, Vue, dan Angular, framework menentukan kapan harus update secara otomatis ketika state berubah melalui setState. Namun di Remix v3, developer mengelola state di variabel standar tanpa hook useState, dan harus secara eksplisit memanggil this.update kapan pun UI perlu diperbarui. Developer bisa mengubah banyak variabel tanpa memanggil this.update dan UI tidak akan berubah, atau memanggil this.update setelah mengubah variabel untuk memicu pembaruan UI. Pendekatan ini memberikan kontrol penuh kepada developer tentang kapan rendering terjadi, berbeda dari batching otomatis di React.

Filosofi Kesederhanaan dan Kontrol Manual

Pembicara membahas reaksi internet terhadap pendekatan manual updating ini dan memberikan perspektifnya sendiri. Meskipun beberapa orang memiliki masalah dengan pendekatan ini, pembicara berpendapat bahwa ini adalah pendekatan baru yang layak dicoba, sementara pendekatan lama (automatic updating) memang bekerja dengan baik namun bisa menimbulkan masalah di mana tidak jelas mengapa sesuatu diperbarui atau tidak. Di aplikasi kompleks, terutama dengan React modern yang memiliki banyak hook, bisa sangat membingungkan untuk memahami apa yang terjadi. Ini adalah salah satu alasan mengapa tim Remix kembali ke API yang lebih sederhana dengan kontrol penuh bagi developer, mengurangi kompleksitas dan meningkatkan prediktabilitas.

Tujuan Utama: Kemudahan untuk Large Language Model

Bagian ini mengungkapkan tujuan yang sangat penting dari Remix v3: agar mudah digunakan oleh large language model (LLM). Tim Remix menyatakan dalam posting blog bahwa developer akan bisa memasukkan artikel dokumentasi atau contoh ke dalam chat dengan LLM, memberikan konteks, dan membuat LLM membantu menghasilkan kode. Ini penting karena sebagai framework baru, tidak ada LLM yang dilatih pada basis kode ini, dan untuk masa mendatang yang dapat diprediksi mereka tidak akan dilatih padanya karena sekitar 80% dari semua contoh kode front-end adalah React, khususnya React dengan shadcn. Oleh karena itu, mereka perlu menemukan cara lain untuk memungkinkan developer membuat LLM sadar akan cara menulis kode Remix v3, yang merupakan alasan lain mengapa mereka menjaga API tetap sederhana, ekspresif, dan mudah dipahami.

Pemanfaatan Web Primitives dan Fitur Browser Native

Tim Remix sangat menekankan penggunaan web primitives dan fitur yang tersedia di browser modern serta backend. Mereka sangat mengandalkan native events dan kemampuan bawaan untuk men-dispatch custom events di browser. Framework ini juga mengandalkan abort signals untuk mengomunikasikan bahwa komponen telah unmounted dan untuk menghentikan event listeners secara otomatis. Pembicara merasa bahwa web developers tidak mengikuti apa yang dapat dilakukan browser modern, dan banyak kemampuan yang sudah ada selama bertahun-tahun namun tidak digunakan atau bahkan tidak diketahui. Ada banyak yang bisa dilakukan dengan DOM dan browser API tanpa memerlukan library pihak ketiga tambahan, dan Remix v3 mencoba memanfaatkan kemampuan bawaan ini dengan prinsip kesederhanaan.

Komponen JSX dengan Pendekatan Berbeda

Meskipun menggunakan web primitives, Remix v3 tetap merupakan framework di mana developer membuat komponen dengan fungsi dan menggunakan kode JSX, bukan membuat node DOM dengan createElement. Namun, manajemen state bekerja dengan cara yang berbeda - lebih ramping tanpa hooks, karena fungsi komponen tidak akan dipanggil berulang kali seperti di React. Developer akan memiliki dua jenis fungsi komponen: fungsi yang mengembalikan JSX (stateless component) dan fungsi yang mengembalikan fungsi yang mengembalikan JSX (stateful component). Ini mirip dengan pendekatan React old-school di tahun 2017 dengan class components dan functional components, namun di Remix semua menggunakan fungsi dengan jenis yang berbeda. Pendekatan ini memberikan cara yang sangat sederhana untuk membedakan komponen stateful dan stateless.

Stateless vs Stateful Components

Pembicara menjelaskan lebih detail tentang perbedaan dua jenis komponen di Remix v3. Jika fungsi mengembalikan JSX langsung, itu adalah komponen stateless yang tidak bisa memanggil this.update untuk memicu re-render. Komponen ini bisa menerima props dan akan dieksekusi ulang jika parent component di-render ulang. Untuk membuat komponen stateful, fungsi tidak mengembalikan JSX langsung, melainkan mengembalikan fungsi yang kemudian mengembalikan JSX. Ketika memanggil this.update di komponen stateful, fungsi yang dikembalikan akan dieksekusi lagi. Ini adalah API yang sangat sederhana dan cara yang jelas untuk membedakan antara fungsi komponen stateful atau stateless, memberikan kontrol eksplisit kepada developer tentang bagaimana komponen berperilaku.

Framework Full Stack dengan Router Powerful

Remix v3 bukan hanya framework front-end, melainkan framework full stack yang menggabungkan front-end dan back-end. Tim akan mengirimkan library komponen untuk memudahkan pembuatan form yang kompleks. Di sisi backend, framework ini dilengkapi dengan router yang sangat capable dan powerful - yang masuk akal karena tim telah membangun React Router selama 10 tahun terakhir. Developer bisa mengembalikan kode JSX dan komponen Remix di route mereka dan meng-hydrate komponen-komponen tersebut di server. Mereka juga memiliki alternatif sendiri untuk React Server Components, alternatif yang lebih sederhana yang memungkinkan developer mengembalikan komponen yang dibuat untuk update setelah disajikan di client dengan mengambil ulang bagian-bagian DOM.

Fitur Full Stack Modern seperti SPA

Ketika menghapus sesuatu misalnya, developer bisa mengirim request dari client ke server dan mendapatkan kembali beberapa kode HTML yang bisa di-hydrate lagi untuk memperbarui bagian-bagian DOM. Remix v3 memberikan semua fitur untuk membangun aplikasi full stack modern seperti single page application yang cepat, sama seperti yang bisa dilakukan dengan Next.js, React Router dalam mode framework, atau framework lain seperti TanStack Start. Namun, tujuan yang jelas adalah melakukannya dengan cara yang lebih sederhana. Ini adalah visi mereka: memberikan cara sederhana untuk membangun aplikasi full stack modern tanpa kompleksitas yang berlebihan, dengan API yang straightforward dan mudah dipelajari.

Apakah Kita Membutuhkan Framework Baru Ini?

Pembicara mengajukan dua pertanyaan besar: apakah kita membutuhkan framework ini dan apakah ini akan berhasil. Meskipun kita memiliki banyak framework JavaScript dan banyak orang mengatakan sudah terlalu banyak, pembicara selalu berpikir bahwa inovasi dan mencoba ide-ide baru adalah hal yang baik. Ia tidak berpikir kita membutuhkan framework baru yang hanya seperti React dengan beberapa perbedaan kecil, tetapi pendekatan yang benar-benar baru dengan manual updating dan detail-detail lainnya adalah ide yang bagus dan layak dicoba. Kedengarannya menarik dan ini mungkin memberi developer alternatif yang lebih sederhana untuk React, yang meskipun luar biasa, telah menjadi cukup kompleks selama bertahun-tahun. Jadi ya, kita mungkin memang membutuhkan alternatif yang lebih sederhana ini.

Peluang Kesuksesan di Era AI

Pembicara membahas peluang kesuksesan Remix v3 di era large language models yang biasanya merekomendasikan React secara default. Namun, orang yang tidak tahu cara menulis kode bukan target audiens langsung, sehingga ini bukan masalah besar. Developer berpengalaman mungkin tertarik menggunakan Remix dan mengarahkan LLM dengan bantuan contoh-contoh resmi untuk menghasilkan kode Remix, semata-mata karena mereka ingin memiliki basis kode yang lebih sederhana. Sebagai developer, kita masih menyentuh kode kita meskipun mungkin menghasilkan sebagian besarnya dengan AI - kita masih mengontrol LLM, menyesuaikan bagian-bagian kode, dan menulis bagian yang lebih besar jika ada fitur yang sangat spesifik. Jadi developer masih peduli tentang tech stack, dan framework yang mudah digunakan dengan LLM serta memiliki cukup sumber daya untuk mengajari LLM cara menggunakannya bisa menjadi peluang sukses yang valid.

Dukungan Shopify dan Masa Depan Remix

Yang penting adalah bahwa Remix dimiliki oleh Shopify sejak tahun 2022, yang berarti tim Remix menjadi bagian dari Shopify. Shopify tentu saja tertarik untuk memiliki framework yang terawat secara aktif dan digunakan, tidak hanya di dalam perusahaan untuk halaman marketing mereka, tetapi juga untuk toko-toko Shopify. Sangat mungkin bahwa tujuannya adalah menjadikan Remix sebagai opsi bagi vendor Shopify yang ingin membangun toko mereka sendiri di atas platform Shopify dan menyesuaikan etalase toko atau halaman-halaman yang membentuk keseluruhan toko. Memiliki framework yang mudah digunakan dan mudah digunakan dengan large language model bisa sangat besar dampaknya. Meskipun ini masih bukan jaminan, memiliki Shopify di belakang Remix tentu saja bernilai banyak dan memberikan fondasi yang kuat untuk pertumbuhan framework ini.

Kesimpulan dan Ajakan Diskusi

Pembicara menyimpulkan bahwa ia cukup positif tentang masa depan Remix karena dukungan Shopify dan komunitas yang mungkin kecil namun sangat antusias. Tim Remix juga memiliki track record yang luar biasa, sudah mengembangkan React Router dan sebagainya, yang memberikan kredibilitas tinggi. Pembicara mengungkapkan kegembiraan untuk melihat apa yang akan ditawarkan framework ini dan ingin akhirnya menggunakannya sendiri, meskipun saat ini belum benar-benar memungkinkan karena masih dalam tahap awal. Di akhir video, pembicara mengajak penonton untuk memberikan pendapat mereka tentang apakah kita membutuhkan framework ini dan apakah Remix v3 akan sukses, serta merekomendasikan untuk menonton seluruh konferensi empat jam jika tertarik untuk belajar lebih dalam tentang framework baru ini.

Community Posts

No posts yet. Be the first to write about this video!

Write about this video