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..