Ngobrolin Deno - Ngobrolin WEB
Yuk mari kita diskusi dan ngobrol ngalor-ngidul tentang dunia web. Agar tetap up-to-date dengan teknologi web terkini. Topik, tautan dan pertanyaan menarik bisa dilayangkan ke https://bit.ly/ngobrolinweb Kunjungi https://ngobrol.in untuk catatan, tautan dan informasi topik lainnya.
Ringkasan Episode
Bantu KoreksiEpisode ini membahas tentang Deno 2, runtime JavaScript/TypeScript alternatif Node.js yang dibuat oleh Ryan Dahl (pencipta Node.js asli). Topik utama mencakup sejarah Deno, perbedaan dengan Node.js, keunggulan utama seperti security by default dan TypeScript first-class citizen, serta ekosistem lengkap yang meliputi Fresh framework, JSR (package registry), Deno KV (database), dan Deno Deploy (platform hosting). Diskusi juga menyinggung perbandingan dengan runtime lain seperti Bun serta kelebihan dan kekurangan masing-masing.
Poin-poin Utama
- •Deno 2 adalah versi terbaru dari runtime JavaScript/TypeScript yang dibuat oleh Ryan Dahl (pencipta Node.js asli) sebagai perbaikan dari berbagai penyesalan dalam desain Node.js
- •Salah satu penyesalan terbesar Ryan Dahl terhadap Node.js adalah tidak bisa mengontrol NPM (Node Package Manager), yang kemudian menjadi monopoli dan memiliki masalah keamanan
- •Keunggulan utama Deno: security by default (semua akses harus di-explicitly grant), TypeScript first-class (bisa jalan langsung tanpa transpilasi), dan support ES modules secara native
- •Deno menggunakan engine V8 (sama seperti Node.js) namun ditulis dengan Rust, sedangkan Bun menggunakan JavaScriptCore dari Safari
- •Ekosistem Deno mencakup: Fresh (web framework dengan Preact), JSR (package registry alternatif NPM yang mendukung TypeScript dan ESM), Deno KV (key-value database), dan Deno Deploy (platform hosting)
- •Deno 2 mendukung NPM packages secara native, menjembatani kesenjangan dengan ekosistem Node.js yang sudah ada
- •Deno mengadopsi model bisnis vendor lock-in yang komprehensif dengan enterprise support, mirip dengan platform seperti Vercel atau Firebase, menyediakan solusi end-to-end dari development hingga deployment
0:09Yuhuu, halo.
0:15Pemirsa-pemirsa, para pemirsa.
0:17Kereta akan segera diberangkat kan.
0:20Oh keren pasti.
0:22Kan itu gue tungting-ting-ting.
0:24Kalau mau ke Bandung dengernya itu.
0:26Bioskop lagi.
0:28Kalau us, pake suara itu juga enggak.
0:32Punya us lah.
0:34Us punyanya enggak us.
0:36Enggak sih, punyanya us sendiri.
0:38Us itu yang paling nge-brand us itu.
0:46Us, us, us, yes.
0:48Iya, sepanjang perjalanan tuh us, us, us.
0:52Sepanjang perjalanan ya berapa unit.
0:56Lama-lama ke-brand us loh.
0:58Kita jadi ngomongin kereta.
1:00Kalau teman-teman semuanya apa kabar?
1:02Mudah-mudahan, sehat-sehat.
1:06Apa namanya, enggak bosan, seminggu ketemu kita.
1:10Kalau senin hari-hari lain.
1:12Kita tidak bosan.
1:14Pasang malam waktunya ngobrolin web.
1:18Kita tidak bosan-bosan ketemu teman-teman.
1:20Tidak bosan-bosan ngobrolin web.
1:22Tidak bosan-bosan ngobrolin web, karena...
1:26...papinya banyak ya.
1:28Iya, enggak bisa habis.
1:30Kita udah mau dua tahun.
1:32Tapi topiknya enggak bisa habis.
Lihat transkrip lengkap
1:34Kita diuntungin ekosistem yang agak FOMO juga.
1:38Enggak FOMO sih, cuma banyak.
1:40Ya.
1:42Remote-nya banyak, bermunculan.
1:44Tapi misalnya ekosistemnya kayak Java atau apa gitu.
1:48Sebelah gitu, kayak Android misalnya.
1:52Wah, ngajak ribut.
1:54Pemprovokasi.
1:56Oh, iya.
1:58Kalau Android masih mending ya.
2:00Kalau kayak misalkan iOS gitu, Swift.
2:02Ya, kita berarti...
2:04...ngobrolin Swift-nya gitu.
2:06Berarti setan sekali nunggu WWDC aja.
2:10Update-nya di situ kan.
2:12Separi dan teman-temannya.
2:16Mungkin ada minor-minor update gitu loh.
2:20Ya, jadi malam hari ini...
2:24...saya akan ngomongin tentang...
2:26...Deno ya.
2:28Seperti yang kita janjikan minggu lalu.
2:30Kayaknya menarik karena Deno akan segera...
2:32...merilis versi 2-nya.
2:34Nah, kita ini...
2:36...kayaknya belum ada yang...
2:38...belum ada yang menggunakan ya.
2:40Tapi kita udah tahu sih...
2:42...Deno ini dan cukup...
2:44...cukup menjanjikan.
2:46Bersama dengan...
2:48...Boon juga.
2:50Boon.js.
2:52Ada banyak ya sekarang ya.
2:54Runtime JavaScript selain Node.
2:56Ada...
2:58...Deno.
3:00Kemudian muncul Boon.
3:02Codeflare juga punya sendiri.
3:04Dan punya...
3:06...Lambda juga itu dia...
3:08...sendiri juga.
3:10Dia ngeluarin yang open-source juga.
3:12Jadi ada banyak.
3:14Nah, salah satunya yang paling...
3:16...setelah Node.js adalah...
3:18...Deno.
3:20Tapi yang berbeda aliran sendiri...
3:22...yang berbeda aliran sendiri itu cuma...
3:24...Boon.
3:26Kalau Cloudflare dia pakai...
3:28Gak pakai lib UV masalahnya.
3:30Gak tahu, Cloudflare pakai apa.
3:32Kalau yang lain...
3:34...mungkin pakai lib UV.
3:36Kalau Deno...
3:38...yang menarik adalah Node sama Deno itu...
3:40...sama-sama menggunakan V8.
3:42Yang dibuat orang yang sama sih.
3:44Iya.
3:46Dan...
3:48...yang membedakan...
3:50...cuman Boon ya, pun dia pakai...
3:52...Java Script4-nya Safari atau WebKit ya.
3:54WebKit.
3:56Deno itu...
3:58...Node perjuangan lah.
4:00Perjuangan, tapi dia juga...
4:02...yang bikin.
4:04Bukan pakai Node, tapi gak puas.
4:06Ada sesuatu yang beda...
4:08...yang pengen dikasih, tapi yang bikin sendiri.
4:10Yang gak puas, penasaran...
4:12...yang bikin yang baru.
4:14Jadi cerita...
4:16...sejarahnya sedikit...
4:18...yang bikin Node gas itu kan Rian Dahl.
4:20Sama juga yang bikin Deno juga.
4:22Nah, ketika dia bikin Node...
4:24...dia tidak menyangka...
4:26...bakal sepopuler...
4:28...sekarang.
4:30Dan yang salah satu...
4:32...penyesalan terbesarnya adalah...
4:34...tidak bisa mengontrol...
4:36...NPM.
4:40Jadi nanti mereka akan...
4:42...berinnovasi ke arah sana juga.
4:44Karena NPM itu lumayan apa ya?
4:46Kalau sekarang mungkin udah lumayan...
4:48...teratur ya. Kalau dulu itu...
4:50...karena yang...
4:52...handle itu komunitas, jadi...
4:54...sangat berantakan.
4:56Cukup sering kejadian ada...
4:58...paket yang...
5:00...tiba-tiba...
5:02...dimatiin atau mematikan dirinya sendiri.
5:04Terus paket yang lain...
5:06...ikut merasakan akibatnya.
5:08Terus ada yang...
5:10...inject malicious code.
5:12Iya, inject malicious code.
5:14Terus ada yang mining juga.
5:16Jadi kan misalkan monggo dibi kita...
5:18...bagikan kembali.
5:20Monggo dibi mungkin...
5:22...nggak pake N gitu, monggo dibi.
5:24Kadang-kadang kan kita typo.
5:26Jadi manga, kalau misalnya dia orang Jawa ya kan...
5:28...monggo dibi, dia tulisnya...
5:30...mangga gitu.
5:36Sampai akhirnya...
5:38...NPM jadi...
5:40...perusahaan sendiri.
5:42Dan itu juga...
5:44...pro-kontra ya.
5:46Iya.
5:48Susah ya.
5:50Community run...
5:52...mesti ada masalahnya.
5:54Di protes jadi perusahaan...
5:56...ya di protes.
5:58Karena ada...
6:00...kebijakan tertentu...
6:02...kebijakan tertentu...
6:04...yang istilahnya...
6:06...mengutamakan...
6:08...profit kan. Ini kan perusahaan...
6:10...yang berbasis profit.
6:12Kalau...
6:14...perusahaan tidak berbasis profit...
6:16...namanya bukan perusahaan, namanya yayasan.
6:18Iya, namanya yayasan. Betul.
6:20Jadi kalau ada perusahaan...
6:22...yang tidak mengambil untung...
6:24...itu aneh justru.
6:26Mendingan dia bikin yayasan aja...
6:28...sekalian.
6:30Atau jadi tempat...
6:32...juga dia rugi mulu jadi tempat...
6:34...cuci uang.
6:36Nggak, jadi tempat cuci uang.
6:38Criminal mind gitu.
6:40Cuma NPM itu kan jadi...
6:46...masih nggak pengapa-ngapain problematik...
6:48...karena bisa dibilang monopoli...
6:50...juga ya. Coba yang...
6:52Registrinya satu-satunya ada di NPM.
6:56Registri package banyak...
6:58...ya kan nggak...
7:00...itu fokus di NPM.
7:02Package manager banyak.
7:04Private... private info kan...
7:06...bisa. Bisa sekarang. GitHub...
7:08...bisa. GitHub bisa.
7:10Iya, tapi kan...
7:12...kalau package manager banyak.
7:14Ada IAN, ada PNPM, ada apa lagi...
7:16...gitu. Ada banyaklah pokoknya.
7:18Tapi, registrinya tetap di NPM.
7:20Registrinya semuanya ada di NPM.
7:22Sepertinya sistem JavaScript ini...
7:28...harus mulai belajar dengan...
7:30...ekosistemnya Linux kali ya.
7:32Repo-nya itu bisa tersebuah...
7:34...distribusi kemana-mana.
7:36Iya ya, benar juga ya.
7:38Biar nggak monopoli.
7:40Debian kita mau ambil dari...
7:42...kemana ada mirror-nya nih selalu.
7:44Iya ada mirror-nya di lokal gitu ya.
7:46Apalagi NPM itu terkenal...
7:50...dengan ukurannya...
7:52...juga besar ya.
7:54Itu juga yang coba...
7:56...diperbaiki sama bun juga ya.
7:58Dino ya.
8:00Dino.
8:02Bacanya Dino.
8:04Dinosaurus ya.
8:06Logonya Dino.
8:08Ya kan itu kan sebenarnya kan...
8:10...ketidak kreatifan...
8:14...memilih nama kan.
8:16Dino, dibalik aja.
8:18Dino.
8:20Malas mikir nama lagi.
8:22Nanti kalau misalnya terakhir banget...
8:24...apa, itunya done.
8:26D-O-N-A.
8:28Dibalik-balik aja.
8:30Ya, jadi kan si Rian Dal ini...
8:32...time pertamanya itu adalah bikin Node.js.
8:36Bukan bikin bahasa kan ya.
8:38Bikin runtime.
8:40Yang akhirnya dia pilih...
8:42...bahasanya JavaScript.
8:44Dengan engine V8.
8:46Dengan engine V8.
8:48Nah, terus...
8:50...dengan pengalaman dia...
8:52...sudah menjalan apa, sudah...
8:54...mendevelop si Node ini.
8:56Akhirnya dia bikin sesuatu yang baru.
8:58Pengen start dari awal lagi.
9:00Makanya dia bikin Dino...
9:02...dengan cara yang lebih ideal menurut dia.
9:04Dia bikin perusahaannya.
9:06Dia bikin gimana skema monetisasi.
9:08Terus...
9:10...produk-produk ekosistemnya dikembangin.
9:12Mungkin diinitiasi...
9:14...oleh perusahaannya.
9:16Tapi dikembangin juga oleh kemampasan.
9:18Kayaknya semua yang dia penasaran sebelumnya.
9:20Pokoknya dia bikin Node kan...
9:22...bikinnya kayak santai...
9:24...ekspektasinya nggak tinggi.
9:26Ya taunya dipakai seluruh dunia.
9:28Kalau misalnya di Ubah-Ubah...
9:30...atau di Utak Atik yang terlalu ekspektif.
9:32Dia moksi dunia.
9:34Jadi kayaknya semua unik-uniknya...
9:36...dia catet kali ya.
9:38Terakhir pas dia ada waktu luar...
9:40...dituangin semua di Dino.
9:42Kan ada itu.
9:44Ada talk dia kan...
9:46...waktu launching Dino itu.
9:48Ada talk di Node.js Conference...
9:50...yang dia bilang 10 Mistakes...
9:52...when I develop Node kan.
9:56Itu salah satu yang cukup konversial juga.
9:58Kalau di artikelnya buka.
10:00Kalau linknya kan video...
10:02...ada artikel recapnya nggak?
10:0410 Mistakes.
10:08Sama perbedaan Dino awalnya apa sih?
10:10Sama Node.
10:12Perbedaannya.
10:14Awalnya dia dikembangkan...
10:16...dengan Go...
10:18...kemudian pindah keras.
10:20Kedua...
10:22...kalau Note kan pakai C++ ya.
10:24Kedua...
10:26...dia bisa...
10:30...menjalankan TypeScript...
10:32...tanpa harus transpilasi.
10:34Yang saya tahu itu.
10:36Yang lain belum tahu.
10:38Kalau perbandingannya ada itu...
10:40Tapi bukan TypeScriptnya...
10:42...dia compile secara...
10:44...core kan.
10:46Dicompile kan.
10:48Bukan kayak diignore...
10:50...kayak Node.
10:52Bukan kayak Node yang minus-minus ignore...
10:54...itu kan.
10:56Bukan.
10:58Dia engine-nya bisa ngebaca TypeScript gitu.
11:00Dicompile dulu ya sebetulnya.
11:02Dibalik layar.
11:04Jadi engine-nya itu...
11:06...sudah bisa mengerti TypeScript.
11:08Ya langsung aja langsung...
11:10...jalanin gitu.
11:14Jadi bisa langsung import...
11:16...kalau si Node kan harus...
11:18...require dulu jaman dulu tuh.
11:20Kalau jalanin Node.
11:22Nah ini videonya sih.
11:26Ada ringkasannya tuh...
11:28...di Project Chat.
11:30Oh ada ya?
11:32Ternyata 2018 loh.
11:34Udah lama. Udah 6 tahun.
11:36Sebaru-barunya kita mikir...
11:38...ini baru. Itu udah lama udah 6 tahun.
11:40Ini baru ya.
11:42Ya pada saat...
11:44...dia muncul kan kita masih meraba-raba...
11:46...kan ini...
11:48...ini gak sih? Ini...
11:50...isilahnya gimana ya?
11:52Ini adalah barang...
11:56...yang dia bikin. Terus dia menjelek-jelekan...
11:58...barangnya. Terus dia bikin baru gitu.
12:00Itu kan kayak ada konotasi negatif gak sih?
12:02Ya tergantung...
12:04...perspektif.
12:06Menarik. Apa?
12:08Fenomenanya menarik. Ya kalau...
12:10...negatif atau enggak kan tergantung orang lihat.
12:12Cuma maksudnya mindset-nya sih yang...
12:14...cucu aja jarang ada.
12:16Ini ringkasannya pendek banget sih.
12:18Secure TypeScript Runtime...
12:20...on V8. Dynamic...
12:22...languages.
12:24Berhubungan dengan security banyak...
12:26...kan ya?
12:28Terus gak pakai promise di awal.
12:30Terus juga...
12:32...pakai apa? Common JS.
12:34Bukan pakai ISM langsung.
12:36Kan dulu belum ada kali ya?
12:38Dan dia menyesali...
12:40...pakage JSON.
12:42I don't know why.
12:44Cuma yang lucu ini.
12:46Soalnya di Indo kan...
12:48...importnya bisa langsung dari URL.
12:50Gak perlu pakage JSON.
12:52Safe-nya di...
12:54Bisa langsung.
12:56Tetap ada di Cache lah.
12:58Tapi bisa langsung...
13:00...define kayak gitu. Udah ya?
13:02Udah gitu doang. Cuma lucu aja sih...
13:04...tweet-nya Brandon Aito yang bikin...
13:06...JavaScript dalam 7 hari.
13:08Iya.
13:10Aku sejak...
13:12...95.
13:14Regret terus ya?
13:16Kalo lagi ngedesain program...
13:18...terus kayaknya lucu nih tambahin.
13:20Itu akan selalu menyesal...
13:22...yang dilakukan.
13:24Nah, temen-temen harus banget...
13:26...nonton sih. Kalo saya bilang sih...
13:28...harus banget nonton. Karena...
13:30...banyak hal yang menarik ya. Selain ngomongin...
13:32...tentang Node dan Dino.
13:34Jualan gitu ya.
13:36Sempet ada yang cukup kontroversi.
13:38Dia kan...
13:40...waktu abis dari Node...
13:42...dia kan masuk ke tim Google kan ya.
13:44Dia dipekerjakan oleh Google.
13:46Entah ngedeain apa. Kayaknya machine learning...
13:48...something lah gitu.
13:50Tapi di talk ini...
13:52...dia sempet bilang...
13:54...that is a mistake.
13:56Padahal dia kerjain...
14:00...di Google.
14:02Ya, dia mengkritik orang lain...
14:04...dan mengkritik diri sendiri.
14:06Ya, pointnya semua ada kritik.
14:08Harus lah, harus ada orang gitu.
14:10Maksudnya kritiknya kan ada alesannya mungkin.
14:12Nah, link satunya tuh...
14:14...perbandingannya. Maksudnya bagus...
14:16...ada poin-poinnya.
14:18Itu browser apaan sih?
14:26Kok tab-nya lucu?
14:28Tab-nya...
14:30...masa namanya Min.
14:32Tapi...
14:34...chromium-based.
14:36Ya sih, familiar.
14:38Tab-nya aja yang lucu.
14:40Nah, ini nih. Zoom in.
14:42Zoom out, tikit aja...
14:48...biar sidebar-nya ada.
14:50Zoom out sekali. Nah...
14:52Node.js 2019.
14:56Ditulis dengan C++.
14:58Anak atas.
15:00Kok Dino dulu?
15:02Dino.
15:04Dino.
15:062018.
15:08Dino confuse the one with a Dino.
15:10Ancient creature.
15:14Blah-blah-blah.
15:16Karena ada kekurangan dari...
15:18...karyanya dia sendiri...
15:20...untuk JS.
15:22Dino is a secure JavaScript...
15:24...typescript runtime built on VK.
15:26Based on...
15:28...V8 Rust Tokyo.
15:30Tokyo itu apa?
15:32Tokyo itu library Rust...
15:34...untuk menjalankan...
15:36...asynchronous, kalau nggak salah.
15:38Kayak buat mensupport...
15:40...behavior asingnya Dino.
15:42Asingnya Rust.
15:46Terus kalau Node.js...
15:50...ditulis...
15:54...dengan C++ dan JavaScript.
15:56Kayaknya 2019...
15:58...Taipo deh, sebelum 2019.
16:002009 kali?
16:02Iya, Taipo.
16:04Lohko cara install.
16:08What is the difference?
16:102009 betul, Taipo.
16:12Benar ya?
16:14Yang pertama, security.
16:16Karena Node nggak ada...
16:18...security sama sekali.
16:20Kalau Dino, misalkan kita mau pakai...
16:22...HTTP...
16:24...HTTP gitu, gitu kan ya.
16:28Restrictive default security.
16:30Jadi kalau Node itu...
16:32...by default dia dibuka...
16:34...kita yang punya...
16:36...tanggung jawab untuk menutup, sedangkan Dino kebalikannya.
16:38Jadi defaultnya ketutup.
16:40Kalau mau buka, baru...
16:42...kita yang jalani.
16:44Karena sekarang dia sanggup bisa dijalani...
16:46...di server apapun, di IoT, kayak...
16:48...penggunaannya luas banget. Kayaknya dulu dia...
16:50...pas bikin Node S ya, kayak...
16:52"Apa lagi mau buat web server?"
16:54Iya, kan karena...
16:56...apa namanya? Karena...
16:58...dia belum berpengalaman...
17:00...itu kan...
17:02...belum berpengalaman menjalankan...
17:04...apa...
17:06...mendevelop sebuah runtime.
17:08Ini kok ada...
17:10Kok login...
17:12...kok gue login pakai...
17:14...account gue...
17:16...Youtube...
17:18...kok pakai... jadinya Riza...
17:20...yang comment.
17:22Gatau. Apa gara-gara udah diangkat...
17:24...jadi admin nih?
17:26Gak tahu deh.
17:28Udh, sudah diangkat jadi admin.
17:30Setelah menggita kandang, terus dia...
17:32...menyesal bikin lagi. Onet.
17:34Permutasinya empat huruf itu berapa ya?
17:36Bisa ada berapa macam...
17:38...empat huruf itu, kayak...
17:40...kalau dicampur-campur, permutasinya ada...
17:42...berapa harian, yaudah itu berarti dia buat...
17:44...itu lah runtime yang bakal...
17:46...NDOA.
17:48Terus aja.
17:52Ya. Ini...
17:54...apa, orang-orang seperti itu...
17:56...yang masuk kategori...
17:58...ih, gue bikin Node.js...
18:00...begini amat. Yuk bikin...
18:02...baru yuk. Gampang banget kayaknya.
18:04Apa kayak bikin framework...
18:06...gitu. Si apa?
18:08Si Ryan...
18:10...Carniato, ya? Di kantor...
18:12...bikin apa? Ngerjain framework.
18:14Malam di rumah...
18:16...bikin framework.
18:18Di kantor kayaknya nggak enak banget...
18:20...pakai framework-nya, padahal dia yang bikin...
18:22...dan teman-teman yang bikin. Sampai rumah dia bikin lagi...
18:24...bikin sendiri.
18:26Terlalu...
18:28...terlalu gabut atau gimana ya?
18:30Ya butuh penyaluran.
18:32Butuh penyaluran.
18:34Dia kayaknya...
18:36...kesel kali ya.
18:38Apa sih ini framework? Mau bikin ini...
18:40...aduh, sudah terlanjut banyak yang pakai...
18:42...rubah-rubah lagi. Biasanya...
18:44Iya, kalau dia rubah, itu dimarahi banyak orang.
18:46Not.js sama Dino juga ya.
18:48Not.js, siubah-ubah.
18:50Berantakan satu dunia...
18:52...gitu ya.
18:54Modules.
18:56Nah, yang tadi saya sebutkan.
18:58Dia juga menyesal menggunakan CommonJS.
19:00Karena importnya pakai Empire.
19:02Dan ribet...
19:06...kalau kita sekarang bikin library...
19:08...specifically...
19:10...jadi...
19:12Iya, jadi panjang kodanya.
19:14Jadi panjang.
19:16Sama...
19:18...itu...
19:20...merembit juga ke NPM.
19:22NPM itu kan menerima segala...
19:24...macam bentuk modul kan.
19:26Dari ESM...
19:28...CommonJS, macem-macem kan.
19:30Jadi...
19:32...kayak kebun binatang.
19:34Tidak teratur.
19:36Jadi...
19:38...apa namanya...
19:40...kadang dulu ada yang library maintainer...
19:42...itu...
19:44...harus punya...
19:46...berbagai versi supaya bisa dipakai di front-end...
19:48...sama di back-end.
19:50Ada tuh yang kayak gitu.
19:52Package management.
19:54Package management juga dia cukup menyesali.
19:56Makanya dia kurang suka dengan...
19:58...package JSON ya.
20:00Nah, itu atasnya. Kalimat atasnya working with...
20:02...not.js. You should also...
20:04...use NPM kayak...
20:06...management modulnya.
20:08Oh, jadi...
20:12...kayak beda ini ya, beda barang.
20:14Kalau pakai not.js, jadi kepaksa...
20:16...harus pakai NPM.
20:18Kemudian standard modulnya juga...
20:24Dino tadi nggak perlu...
20:26...pakai JSON ya?
20:28Gak perlu pakai apa?
20:30Package.json dia nggak perlu. Jadi kalau mau install...
20:32...dia...
20:34...standard.
20:36Oh, tapi tetap ada disipen...
20:38...di dalam...
20:40...not.modules kan?
20:42Ya, ya.
20:44Gak tau ya, not.modules atau bukan ya.
20:46Nanti kita coba aja.
20:48Standard modul.
20:50Dua-duanya ada...
20:52...standard modul ya. Modul built-in...
20:54...maksudnya.
20:56NPM package...
20:58...in edge of the...
21:00...not.js battle...
21:02...in edge of...
21:04...you can be sure that more specific task...
21:06...can also be performed.
21:08Third-party modules.
21:10Nah, Dino itu bisa directly.
21:14Jadi misalkan kita...
21:16...upload...
21:18...rebrary ke...
21:20...bucket S3 atau...
21:22...apapun ya.
21:24Terus kita bisa langsung dari URL...
21:26...aja.
21:30Jadi ini file-nya import...
21:32...from HTP...
21:34...blablabla.
21:36Kata Mas Andi itu...
21:38...gak ada not.module.
21:40Adanya deno.modules, enggak.
21:42Gak tau itu disimpannya...
21:44...dimana ya. Dia pasti download kan.
21:46Mungkin di...
21:48...global ya. Di global cage kali ya.
21:50Kayak PNPM kali ya.
21:52Jadi satu. Jadi gak...
21:54...makan tempat.
21:56Di directory.dino.
22:00Oke.
22:02Sendle file executable.
22:10Oh ini kalo pake...
22:12...kalo kita mau...
22:14First Class TypeScript.
22:16Nah...
22:18...ini salah satu keunggulannya.
22:20Ya, First Class TypeScript.
22:22Dianggap...
22:24...salah satu...
22:26...most critical benefits.
22:28Keuntungan...
22:30...paling...
22:32Iya, jadi gak perlu pake TSC...
22:34...untuk compilasi dulu atau...
22:36...transpilasi.
22:38Dia bisa langsung.
22:40Security. Yang tadi udah disebutkan...
22:42...kalo Dino itu by default dia...
22:44...security-nya udah dinyalain.
22:46Kalo not kebalikannya.
22:48Package management...
22:50...itu dia pake URL kan.
22:52Oh kayak ini ya.
22:54Kayak gue ya.
22:56Iya.
22:58Yes.
23:00Tapi kalo mau install dari NPM...
23:02...juga bisa kan ya?
23:04Bisa, bisa.
23:06Baru Dino 2 kan.
23:08Dino 2 baru bisa NPM kan.
23:10Iya gak sih?
23:12Oh iya ya.
23:14Gak tau juga.
23:16Selayaknya script tag.
23:18DATML.
23:20Enak ya.
23:22Istilahnya kita tidak tergantung...
23:24...ke satu entity.
23:26Dalam hal ini NPM registry.
23:28Jadi kalo misalkan katakan lah...
23:30...oh ternyata library-nya udah...
23:32...gak di maintain lagi nih.
23:34Udah di unpublish.
23:36Ya. Aplikasi kita rusak dong.
23:38Jadi kita bisa download dan kita bisa...
23:40...ake itu gitu.
23:42Jadi tidak tergantung kepada satu entity.
23:44Itu bagusnya.
23:46Atau bisa langsung sendor dari Max CDN.
23:48Iya.
23:50Kita bikin library gak usah...
23:52...capa-capa NPM publish itu loh.
23:54Kalo misalnya versioning...
23:56...atau apa. Cuma ya itu...
23:58...pegang mata 2 sih.
24:00Kan bisa berubah isinya.
24:02Betul.
24:04Tapi praktis aja.
24:06Jadi baru Dino 2 yang super NPM ya.
24:08Kalo sekarang belum ya.
24:10Terparti module tadi udah kita bahas nih kan.
24:14Oke. Mari kita lihat...
24:18...ke versi 2. Ini saya belum coba sih.
24:20Tapi kita pengen tau ada update apa.
24:22Oktober 4 ya baru ya.
24:26Baru akan launching.
24:28Gak ada sih mas itunya.
24:30Ryan Dalman.
24:32Ya kan bukan dia yang...
24:34...block.
24:36Dia cari duit.
24:38Dia bikin Dan sekarang.
24:40Dia lagi nyata dulu.
24:44Ten mistakes lagi.
24:50Publish.
24:522 minggu lalu.
24:54Fixed box. Edit feature.
24:56New permission flag.
24:58Kalo mau nge-import module...
25:00...via HTTP.
25:18Dia gak perlu express.js lagi mas.
25:20Dia bisa langsung sendiri.
25:22Dan dia udah punya framework juga.
25:26Kalo market gak bisa.
25:30Bisa.
25:32Bisa ya?
25:34Ada HTTP module.
25:36Bisa.
25:38Tapi gak bisa routing.
25:40Routingnya harus bikin sendiri.
25:42Switch else.
25:44Switch default.
25:46Bisa.
25:48Terus running program...
25:52...that use NPM package...
25:54...with not API add-on...
25:56...will now provide helpful hints.
25:58Dia kasih tau ya kalo ada error.
26:00Cannot find module.
26:04Language server quick fix.
26:06Salah satu yang menarik juga...
26:10...dari Gino adalah...
26:12...bisa install NPM, apa? Definitely type.
26:16Goodbye.
26:18Language servernya disediain.
26:20Definitely type.
26:22Betul.
26:24Language servernya disediain.
26:26Kemudian formaternya juga disediain.
26:28Dino format.
26:30Kalo boon sama note gak ada.
26:32Bisa pakai dino format.
26:34Jadi kita install dino...
26:36...buat jalanin format untuk not.js.
26:38Itu bisa.
26:42Kenapa?
26:44Biar...
26:46...kalo gak mau pakai...
26:48...gak mau pakai biome...
26:50...gak mau pakai ESLin...
26:52...atau pretier...
26:54...bisa pakai dino FNT.
26:56Ini kiblatnya...
27:00...sangat boong sekali ya FNT ini.
27:02Padahal dia pakai RAS ya?
27:06Iya.
27:08Sebelumnya dia pakai Go sih.
27:10Ya mungkin selama...
27:12...pas lagi jadi...
27:14...pada ke buku.
27:16Iya.
27:18Sebelum launching dia rewrite dulu.
27:20Ini unik juga sih.
27:22Note buffer crypto...
27:26...udah didukung.
27:28Window.
27:32Kalo kita pakai window...
27:34...di server kan gak bisa.
27:36Bisa dikasih tau bahwa itu adalah error.
27:38Sebelumnya gak error gitu.
27:40Ya gak errornya.
27:44Errornya jelas.
27:46Ada hintnya.
27:48Bukan undefined doang ya.
27:50Ada petunjuknya.
27:52Waduh lu pas baru belajar...
27:54...webdev terus cuma belajarnya...
27:56...kayak sembarangan doang kopas-kopas.
27:58Paling sebuli gak ngerti kenapa...
28:00...local storage-nya bikin error.
28:02Oh...
28:06...ini pencinta Go.
28:08Tapi kenapa rewrite pake Rust?
28:10Ya itu saya gak tau sih.
28:12Wait, pencinta Go-nya disini...
28:14...programming language Go...
28:16...golang atau catur Go?
28:18Mainan Go.
28:20Ya dikira-kira aja lah.
28:22Ini bug fix kita gak usah bahas lah ya.
28:26Apa lagi?
28:30Tutorialnya ada gak?
28:32Tutorial?
28:34Getting Started kali ya.
28:36Nah, sebelum ke tutorial...
28:42...liat deh produknya banyak.
28:44Dino pastinya.
28:46Ada Fresh, ini web framework-nya.
28:48Kemudian ada JSR.
28:52Kita lihat sesuatu ya.
28:54Kayak Blast Solution ya.
28:56Official Solution.
28:58Official Solution.
29:00Ala-ala...
29:02...Rafael kali ya.
29:04Jadi ini adalah...
29:06...web framework-nya...
29:08...si...
29:10...Dino...
29:12...yang sudah ada...
29:14...ini...
29:16...DSX-nya.
29:18Syntax-nya JSX ya.
29:20Enak ya.
29:22TSX by default.
29:24Oh, ini Mikodin Server Rendered...
29:28...Preact Component.
29:30Include Preact.
29:32Oh, pakai Preact ya.
29:34Oh, ini mirip-mirip kayak Hono kemarin ya.
29:38Jadi...
29:40...kita bisa bikin server, tapi...
29:42...endplate-nya pakai DSX...
29:44...model kayak gitu ya.
29:46Yang developer jamit sekarang...
29:48...udah familiar.
29:50Ini dia kayak fan service...
29:52...kayak ngemanjain...
29:54...ekosistem...
29:56...front-end atau full stack...
29:58...web web JS ya.
30:00Kayak dibikin senang, dibikin...
30:02...tertarik.
30:04TypeScript by default.
30:06Island-based signals.
30:08Semangat.
30:10Form the right way.
30:14Oh, dia pakai ini ya.
30:16Pakai web standar ya.
30:18Pakai web API.
30:20Semua senang.
30:22Nggak semua.
30:24Ada yang nggak suka juga kali.
30:26Nggak, cuma ini kan target audience...
30:28...target audience-nya...
30:30...berarti front-end dev kan...
30:32...atau web developer-nya yang bikin...
30:34...web app-nya based on...
30:36...apa tadi? Didn't know.
30:38Bisa stream.
30:40Html over the wire juga...
30:42...ini dong berarti.
30:44Hah? Kayak Htmx?
30:46Html over the wire.
30:48Kayak Htmx.
30:50Oh, nice.
30:54Itu itunya.
30:56Ini maksudnya kalau button-nya diklik ya?
30:58Coba aja.
31:00Coba ya.
31:04Pakai tailwind.
31:06WS, WS, kayak WS, WS.
31:08Pusing ya.
31:14WS, itu filter...
31:16...resource-nya.
31:18Ini WS atau Html?
31:20Atau Http?
31:22Fetch mungkin.
31:24Mana dia?
31:26Berarti Http, Fetch, berarti Fetch.
31:28Nah.
31:32Yang dikirim adalah?
31:34Oh, Html.
31:36Wow.
31:38Ya kan yang dikirim itu.
31:40Tapi itu ada partial-nya.
31:42Partial-nya aja.
31:44Ada attribute-nya tuh...
31:46...buat indikate f-.
31:50Yang dikirim full.
31:52Nah itu fresh, titik 2 partial, recipe 0.
31:54Iya, yang ini kan.
31:58Iya, yang dikirim berupa...
32:00...halaman Html full.
32:02Berarti bisa kayak Htmx kemarin dong?
32:04Iya, sama.
32:08Maksudnya page content-nya di-slot ke satu...
32:10...indicated parent element.
32:12Wow.
32:18Ada ini lagi ya, mainan baru ya.
32:20Oh, e-commerce udah ada yang banget.
32:24Niko TX.
32:28Brazil top e-commerce platform.
32:30Gimana ya, e-commerce di Brazil?
32:32Masa Indonesia kali.
32:36Loh, kok ini?
32:38Gak e-commerce.
32:42Bukan e-commerce.
32:44Bukan editor.
32:48Kalah link gitu?
32:50Nah itu screenshotnya editor.
32:52Oh, e-commerce platform tuh...
32:58...maksudnya kayak Shopify gitu kali ya?
33:00Oh dia bikin kali ya.
33:02Dia yang melayani...
33:04...orang-orang yang bikin domain sendiri, pakai domain sendiri.
33:06Oh, mirip ini dong.
33:10Mirip kayak Builder ya.
33:12Kayak Quick juga kan.
33:16Dia bikin produk di atasnya ini.
33:18Sphere kayak gini-ginian ada gak sih?
33:24Hardware-nya lucu, SphereKit.
33:26Sphere...
33:28...sama SphereKit aja, baru...
33:30...ekosistemnya gak begitu jalan.
33:32Karena Sphere...
33:34Ada bikin over the wire?
33:36Over the wire, gak tahu.
33:38Cuma kalau yang edge atau...
33:40...streaming, blablabla ya.
33:42Ada adapter-nya kan ya.
33:46Oke, ini fresh sudah.
33:48Berikutnya ada...
33:50Arthur-nya lucu ya.
33:52Gak penting sih.
33:54Arthur-nya lucu.
33:56GSR ini adalah...
34:02...kumpulan repository...
34:04...yang sudah dikurasi.
34:06Jadi ini hanya khusus untuk...
34:08...IS module, yang bisa IS module aja.
34:14Dia bikin lebih demokratis gitu.
34:16Kayak maksudnya gak...
34:18...ke patok, ke NTM doang.
34:20Dari URL apapun ada.
34:22Tapi buat starting point-nya dia kayak punya...
34:24Dia bikin yang blessed ya.
34:26Ini loh, contohnya kayak gini.
34:28Made for TypeScript NTSM.
34:30Supaya gak nyampur, supaya gak glotit.
34:34Tapi menurut...
34:38...beberapa...
34:40...kali di interview GSR ini...
34:42...yang menggantikan NTM.
34:44Karena dia beberapa package-nya...
34:46...juga dari NTM.
34:48Jadi server-nya tetap di NTM.
34:50Dia cuma indexing dan kurasi aja.
34:52Sama lebih kayak buat starting point kali ya.
34:56Buat standard-nya kayak gini loh.
34:58Kayak nunjukin kayak gini loh bentuknya.
35:00Mau pakai package...
35:06...manager apapun bisa.
35:10Dan buat random apapun bisa.
35:12Kita cari ya.
35:16Express.
35:18Ada gak?
35:20Gak ada.
35:22Ini juga mirip ya.
35:28Lah kan cuma narik dari...
35:30...NTM.
35:32Import-nya pakai...
35:34Bisa direct ya. GSR titik 2.
35:38Ono and Ono.
35:40Kalau mau...
35:44...pakai yang dari GSR.
35:46Udah bedanya itu aja ya.
35:48Oh ini dia.
35:50Itu produk kedua.
35:56Eh produk ketiga.
35:58Leno, fresh, GSR.
36:00Terus ada yang for enterprise.
36:02Oh menarik nih.
36:08Kadang kan kalau buat...
36:10Ini agensinya.
36:12Agensinya.
36:14Sama buat money maker-nya kan.
36:16Bukan kadang. Pasti kalau misalnya...
36:18...mau pakai di production...
36:20...lempat kerja ya pasti kan.
36:22Yang sering kita bahas kan.
36:24Gak boleh cuma suka-suka developer-nya...
36:26...yang pengen nambahin link in portfolio.
36:28Cuma maksudnya gimana kedepannya.
36:30Ada yang reliable...
36:32...yang bisa support atau enggak.
36:34Ya jawabannya ini.
36:36Netlify serverless...
36:38...yang Netlify function itu...
36:40...pakainya Dino.
36:42Kenal saya.
36:44Selain ternyata pakai juga.
36:46Deco yang tadi, aku baru tiga ya.
36:48Yang enterprise.
36:54Next-nya lagi ada...
36:56...Dino Deploy.
36:58Ini hosting, berarti...
37:00...pesainnya kayak Vercell...
37:02...atau Netlify.
37:04Ya, jadi...
37:06...kalau mau...
37:08Cloud Service ya?
37:10Cloud Service bisa pakai...
37:12...Komi.
37:14Terus ada satu lagi sebenarnya.
37:16Tapi di sini belum ada ya. Mungkin karena belum...
37:18...masih uji coba kali ya.
37:20Supaya hosting ini apa?
37:22Don't let customer code...
37:28...become a security nightmare.
37:30Sandbox.
37:32Sandbox, tapi...
37:34...kayak di partisi...
37:36...security focus.
37:38Ya itu use case-nya kayak...
37:46...yang di testimonialnya itu tadi.
37:48Netlify edge function.
37:50Kan, itu...
37:52...risikan banget ya. Orang bisa bikin...
37:54...edge function buat...
37:56...tujuan yang macem-macem...
37:58...dan aneh-aneh.
38:00Dia pakai sub hosting tadi.
38:02Benarnya ada satu lagi.
38:08Denum Cafe.
38:10E-value store...
38:12...database.
38:14Tapi mungkin karena masih beta, belum dimasukin kesini.
38:16Belum ada link-nya.
38:18Belum ada link-nya.
38:20Jadi ini kayak Redis ya.
38:22Berarti concept ya?
38:28Apa? Ecosistemnya lengkap banget ya?
38:30Check up no thank you.
38:34Langsung aja tuh.
38:38Dan karena dia...
38:50...bisa deploy ke edge.
38:52Jadi database-nya juga...
38:54...ngikutkan ke situ kan.
38:56Terus kalian, magic.
38:58Database for JavaScript.
39:00Database for JavaScript.
39:02Itu kan memanjakan...
39:04...kayak web dev.
39:06Kayak gini-gini.
39:08Jadi ini nggak sih?
39:10Vendor log in.
39:12Betul.
39:14Rantai sama...
39:16...se-ekosistemnya ya vendor log in sih.
39:18Pastilah Node.js juga vendor log in.
39:20Node.js.
39:26Bisa, bisa ya, bisa nggak.
39:28Tapi kan Node.js lebih terbuka dibandingkan ini.
39:30Iya sih, karena nggak selengkap ini.
39:32Nggak cover semua.
39:38Kalau misalnya tadinya pakai Node.js...
39:40...mau pindah ke golang, ya tetap...
39:42...back-end harus ter rewrite semua kan.
39:44Kalau itu ya udah beda platform.
39:48Udah beda alam kan.
39:50Kalau misalkan dari Node.js kita tadinya...
39:52Tapi kan Node.js juga ngejualan hosting juga kan.
39:56Eh dulu, dulu ya.
39:58Terus sekarang udah nggak.
40:00Oh iya, pernah.
40:02Dulu waktu Node itu yang berantem...
40:04...yang ada IO.js, ingat nggak?
40:06Nah itu yang pegang kalau nggak salah...
40:08...salah satu hostingnya yang terkenal tuh.
40:10Berantem?
40:12Serius?
40:14Ya sempat itu kan, sempat pisah kan.
40:16Jadi yang versi 0.12...
40:18...nggak naik-naik.
40:20Akhirnya komunitas nge-volks sendiri...
40:22...bikin IO.js.
40:24Pasti belum ada ngobrol-ngobrol.
40:26Jadi kan waktu itu yang pegang...
40:32...ada satu perusahaan, saya lupa namanya...
40:34...perusahaan hosting juga. Terus abis itu kan...
40:36...mereka akhirnya bikin...
40:38...yang namanya Node.js Foundation kan.
40:40Nah itu baru di gabungin lagi.
40:42Nah dulu sebelum...
40:44...sebelum Node.js Foundation.
40:46Pernah, pernah.
40:48Tapi perusahaannya apa ya namanya ya?
40:50Saya lupa namanya perusahaannya.
40:52Activate bukan ya?
40:54Bukan.
40:56Belum ada activate ini.
40:58Belum ada.
41:00Aduh mimpi.
41:02Wow.
41:04Itu Dino Cafe juga...
41:06...skelebe banget.
41:08"Built on Foundation DB"
41:10Foundation DB.
41:12iCloud pakai itu.
41:14Wow.
41:22Pahal gak sih?
41:24Huh? Apanya?
41:26Harganya?
41:28Ada pressing-nya gak ya?
41:30Oh ini dia.
41:32"Storage 5GB"
41:36"Merit units per month"
41:38"1.300.000"
41:40Ya tergantung buat apa sih...
41:44...kalau semua di-cash...
41:46...banyak di-cashing, itu...
41:48...pakai free atau pro juga bisa.
41:52Wow.
41:54Keren.
41:56Seru ya?
41:58Bisa nih.
42:00Iya. Coba.
42:02Kayaknya cocok banget...
42:04...buat ini.
42:06Buat...
42:08Apa mau bikin side hustle?
42:10Enggak.
42:12Ada satu modul yang lagi...
42:14...gue kerjain, collaborative editing.
42:16Sekarang pakai...
42:18...redis untuk...
42:20...untuk...
42:22...data type-nya.
42:24Data type untuk yang...
42:26...CRDT-nya itu...
42:28...kan butuh key value.
42:30Jadi kalau misalnya gue pakai...
42:32...yang sekarang ini lamban.
42:34Karena pakai redis...
42:36...yang self-hosted.
42:38Itu tuh berarti orang ngetik atau tiap orang...
42:40...apalah user berinteraksi...
42:42...itu kayak di-kirim ya.
42:44Di-save, di-store.
42:46Jadi...
42:48...sehari ini...
42:50...ada...
42:52...gue pakai...
42:54...index DB dulu.
42:56Index DB.
42:58Connect.
43:00Jadi sebagai temporary...
43:02...story. Jadi dari state ke index DB.
43:04Dari index DB sing ke...
43:06...web socket ke...
43:08...server.
43:10Di server database.
43:12Sehari ini database-nya pakai redis.
43:14Kayaknya...
43:16...lambat. Terakhir.
43:18Pakai redis lambat ya?
43:20Karena yang self-hosted kan.
43:22Oh...
43:24...hosting-nya yang bikin...
43:26...lambat ya.
43:28Firewall-nya yang bikin lambat.
43:30Banyak.
43:34Lihat modules tuh.
43:40Ada kan project-nya udah...
43:42...ya, deno.com.
43:46Yang mana nih?
43:48Deno.com.
43:50Modules, standard library.
43:52L5, asset, asing, bytes.
43:56Oh itu tadi.
43:58Iya.
44:00Larinya ke JSR juga ya.
44:02Back, JSR.
44:06JSR tadi.
44:08Node.js, npm.
44:10Node.js, npm. Yang ini.
44:14Yang dia support.
44:16Gak bisa diklik. Oh ini dia.
44:18Coba deh share screen.
44:22Oh belum share screen ya.
44:24Modern Node.js Project akan...
44:32...merjalan di deno.
44:34Tanpa harus siotak atik.
44:36Tapi ada...
44:38...key differences.
44:40Perbedaan antara dua runtime.
44:42Yang bisa...
44:44...kita manfaatkan...
44:46...kode kita jadi lebih simple dan...
44:48...lebih sedikit...
44:50...lebih langsing.
44:52Oh langsung begini ya. Node.2 something gitu ya.
44:54Untuk build-in Node.js ya.
44:56Build-in Node.js.
44:58Jadi kalau kita punya project Node.js...
45:02...yang menggunakan...
45:04...build-in...
45:06...function atau build-in module-nya Node.js.
45:10Jadi kita rewrite-nya...
45:12...tinggal di bagian import-nya aja ya.
45:14Ini dari apa?
45:18Berarti bisa langsung digitize ya.
45:20Practice ya.
45:26Moj.moj5.
45:28Ini dari npm.
45:32Moj.moj5.
45:34Moj.moj5.
45:38Ini dari npm.
45:40Kalau dari JSR tadi...
45:42...pada JSR2 ya.
45:44Kalau custom bisa nggak ya?
45:48Oh kalau custom tetap harus...
45:50Tapi kalau private?
45:52Ya nggak bisa ya.
45:54Kita lah.
45:56Private registry?
45:58Oh itu kali dari registry-nya...
46:00...origin kita manggilnya dari mana kali?
46:04Di setting.
46:06Tidak perlu, NPM install, sebelum menjalankan dengeran PENJS.
46:12Nah, baru ketemu. Nama perusahaannya Jo Yen. Dulu si Rian Dalenya kerja di situ.
46:20Jo Yen.
46:21Iya, dulu yang handle, misalnya yang... kayak apa ya?
46:25Kayak si...
46:28Siapa itu? Apa? Kayak spelt, yang bikin spelt sekarang kerjanya di Versel, gitulah akhirnya.
46:36Versel.
46:37Ya, jadi Node.js itu dulu banyak bergantung kepada developer-nya Jo Yen untuk develop.
46:46Sampai akhirnya mereka...
46:48Mungkin karena waktu itu si Node.js bergantung untuk development.
46:52Mungkin karena waktu itu si Rian Dalenya itu ini kali ya. Karena dia kerja, dipekerjakan.
46:58Jadi ya strategi mengikut strategi perusahaan.
47:02Iya. Kan yang bayar si perusahaannya kan, pasti ada kepentingan-kepentingan yang harus dipenuhi kan.
47:08Oke, ini ada pertanyaan yang bagus.
47:14Kalau bikin proyek baru apa mending nyoba pakai di ini?
47:17Ini ada pertanyaan yang bagus. Kalau bikin proyek baru apa mending nyoba pakai di Dino atau Node.js yang sudah banyak dipakai?
47:25Proyek barunya...
47:28Bergantung.
47:29Proyek barunya proyek pribadi atau proyek yang akan kalian maintain dalam waktu yang lama?
47:37Kalau pribadi Dino aja. Dino aja coba atau bun?
47:42Iya, coba dua-duanya.
47:43Iya, coba dua-duanya.
47:46Kalau sebenarnya sudah cukup safe. Bisa dibilang kalau mau pakai Dino di perusahaan pun bisa.
47:51Tapi harus recent lagi ya.
47:53Production ready ya.
47:55Iya, harus di-recent lagi. Jangan lupa.
47:57Production ready tapi timnya bersedia atau enggak?
48:00Kalau kerjaan perkara nya lebih ke tim juga kan.
48:04Masa yang mereka kerjain.
48:06Meskipun dia JavaScript juga, tapi kan ekosistemnya sedikit berbeda kan.
48:14Ya, bisa pakai NPM, tapi apakah semua NPM yang dibutuhkan untuk proyek itu bisa berjalan dengan lancar?
48:22Jadi itu yang harus diluasi dulu sebelum memutuskan untuk mengganti teknologi.
48:29Tapi bisa juga buat menguasai boss atau tim lead.
48:34Kalau cukup besar ya, pakai Dino Enterprise tadi kan bisa ada priority support dan lain-lain kan.
48:43Iya, betul.
48:44Ada masanya official support-nya.
48:49Wuh, ada yang minta live quote nih.
48:51Ada yang minta live quote.
48:56Woh, si kafe nya itu pakai Skylight.
49:00Oh iya?
49:01Tapi bukannya pakai foundation DB.
49:03Foundation DB? Apa jadinya kalau di lokal?
49:06Di lokal, Skylight.
49:09Terusasing foundation DB, gak tau.
49:13Kalau foundation DB itu apa?
49:15Itu tadi, oh buat hosted database-nya kalau udah di deploy, mungkin.
49:24Jadi aslinya dia Skylight gitu?
49:27Gak tau, gak tau.
49:29Coba documentation.
49:31Documentation nya Deno?
49:36Enggak, ini bukan hosting.
49:39Bukan.
49:40Foundation DB, Skylight. Apa hubungannya?
49:47Bukan, kalau tadi gue nebaknya, kirain kalau pas lagi di lokal, itu pakai Skylight.
49:55Terus pas udah di deploy, pakai foundation DB kali, gak tau.
49:59Ini distributed Skylight on foundation DB.
50:03Beda tapi.
50:05Oh bukan.
50:06MV, Skylight.
50:10Gak ngerti nih apa nih.
50:12Beda, foundation DB sendiri bukan, Skylight.
50:16Oh mungkin ada itu nya, apa namanya, bisa migrate nya ada migration tool.
50:21Ini ini, di docs nya Deno.
50:23Mungkin ada opsi-opsinya kali ya, connecting to databases.
50:27Oh, private area.
50:33Hmm, chat. Opsinya macem-macem ternyata.
50:39Tapi malah gak ada foundation DB.
50:45Coba baca.
50:47Bisa pakai SQL.
50:49Anjir, SQL nya langsung di JavaScript nya ya, seru ya.
50:53Gak perlu perlisma-perlismaan.
50:56Ya bisa aja kan, itu kan library.
51:01Gak maksudnya, kalau misalnya kalau dijalankan di client, aman gak sih?
51:09Client JavaScript maksudnya?
51:13Iya.
51:15Gak bisa lah.
51:16Gak ya, kalau Deno kan bisa taruh pastinya ya.
51:18Pasti server?
51:20Gak bisa, gak bisa.
51:21Skylight ada.
51:23Hmm, foundation DB nya yang gak ada.
51:26Firebase?
51:28Firebase aja ada tuh.
51:29Superbase juga ada.
51:31Superbase.
51:32ORM juga bisa.
51:33ORM kayak perlisma dan lain-lain.
51:35Oh, DinoDB itu ORM.
51:39ORM.
51:41Mungkin ngeluarin sendiri.
51:43Oh, ada lagi nih.
51:44Berarti ini produknya lagi nih ya.
51:46Tadi ada DinoCafe, KV, ada DinoDB.
51:50Banyak ya.
51:52Oh, ini.
51:53Eh, bukan ya.
51:54Ini kenapa ada titiknya?
51:55Gak.
51:56Ya ini, ex, apa dinolen.
51:59Ex-Dino.
52:00Itu klik, coba klik aja ex-nya.
52:03Ini apa, ex itu?
52:06Kumpulan per-party module.
52:09Hosting service for DinoScripts tuh.
52:12DinoX itu.
52:13Oh, ini registering nya dia ya, berarti ya.
52:18Registry, tapi buat DinoScript yang gak kompatibel sama EDM.
52:22Oke.
52:25Eka bikin DinoEki.
52:26DinoEki.
52:28Hari ini.
52:30Joke, joke.
52:33Coba diapresiasi.
52:34Cher, tolong komen ketawa dong.
52:37Ya, tapi tadi mystery foundation DB apaan?
52:44Oh, foundation DB itu untuk Dino, KV, Cafe.
52:49Itu hosted service nya dia buat.
52:53Iya, KV.
52:54Key value story nya, apa head-to-head nya Redis.
52:57Itu yang mau gue coba entar.
52:59Pengen tau.
53:00Punya built-in function buat HTTP server.
53:03Ya, Node.js juga ada kok.
53:05Node.js juga ada.
53:07Kita aja yang jarang pake, langsung pake express.
53:10Ada, udah ada.
53:11Males, males soalnya.
53:13Tapi syntax nya gak enak ya?
53:16API nya gak?
53:18Biasa aja.
53:20Biasa aja.
53:22Ya harus parsing request part itu.
53:25Males.
53:27Browsernya.
53:31Semua pasti tanya browser kan.
53:34Semua pasti tanya browser.
53:36Karena menarik tab-tab nya.
53:38Minimalist.
53:39Oh, nama Min itu dari Minimalist ya?
53:42Iya, Minimalist.
53:44Minbrowser namanya.
53:47Oh, baru nyadar dong.
53:50Kira-kira nama browsernya Admin atau apa?
53:53Ya, dia gak ada extension macem-macem.
53:59Udah ini aja buat browsing doang.
54:02Tapi Chrome extension bisa kan mestinya?
54:04Gak ada menu nya.
54:07Oh, gak dikasih itu.
54:09Gak dikasih, gak ada menu apa-apa tuh.
54:12Emang bukan buat itu.
54:14Iya, buat browsing aja.
54:16Jadi kalau buat coding sih gak cocok.
54:21Buat presentasi cocok.
54:23Ya, buat presentasi.
54:24Tadi Denu Cafe, coba buka deh.
54:26Denu Cafe.
54:27Dokumentasinya.
54:29Di project channel.
54:32Ini Docs.
54:37Jadi kita tadi bisa connect ke database sendiri.
54:42Mau MySQL, SQLite dan lain-lain.
54:46Bisa pake layanannya, si Denu Cafe.
54:50Ini loh, docs.denu.com/deploy-cafe-manual.
54:58Deploy.
55:03Gampang.
55:07Denu Cafe Quickstart.
55:12Oh, ini bagian dari platform deploy dia, berbayar mungkin.
55:16Layanan postingnya.
55:18Bisa jalan di lokal gak ya ini?
55:20Bisa dong harusnya.
55:22Harusnya bisa, karena langsung polling.
55:24Asal di lokal kita pake Denu.
55:27Udah, langsung gini aja.
55:31Gak perlu import, gak perlu apa.
55:34Tapi kayaknya ada di global.
55:37Iya, kayaknya ada di settingan konfigurasi gitu, baby.
55:42Bisa langsung di bawah semua ya?
55:45Ada CLI-nya apa?
55:49Kayak CLI-nya Firebase, itu kan bisa di lokal kan?
55:52Firebase init atau apalah.
55:54Iya.
55:56Kan misalnya ada file config, terus ada CLI-nya.
56:01Kalau testing ini pake memory.
56:06Wow, ada uasi testingnya juga.
56:09Udah disiapkan.
56:11Oh, ini ada tutorialnya.
56:24Tutorial buat kafe.
56:31Iya, khusus buat Denu Cafe.
56:33Good.
56:36Itu tulis.
56:46Gak bisa di enter.
56:50Gak bisa.
56:53Error ya.
56:55Error, oh gak ada error.
56:59Gak ada, emang gak jalan-jalan.
57:01Ini jalan.
57:03Ada itunya.
57:05Bisa.
57:06Belum, tadi gak bisa.
57:08Belum selesai loading, mungkin.
57:11Makan.
57:13Kok lambat?
57:18Iya.
57:19Paling murah lah, ini gratisan.
57:22Apa, mau saya buat sampel?
57:24Mungkin di rate limit juga.
57:26Oh lambat.
57:27Oke, coba di delete.
57:29Gak ada delay gitu.
57:31Tuh, iya kan?
57:33Berarti gak optimistik update ya?
57:36Iya, maksudnya dia gak update lokalnya dulu, baru update servernya.
57:40Jadi dia nunggu response-nya.
57:44Tapi apa bedanya sama Firebase ya?
57:46Maksudnya Firebase kan bisa key value juga kan?
57:49Bisa di trade sebagai key value.
57:51Bisa.
57:52Ya, ini integrate sama Denu,
57:54kalau kita pake service deploy-nya,
57:56kayak gak harus mikir-mikir apa pun lagi.
57:58Gak.
57:59Apa offering-nya luas juga ya?
58:01Katensinya juga.
58:03Seru sih nih.
58:06Apa, offering deploy-nya banyak juga, macem-macem.
58:10Iya sih, ini head-to-head-nya sama GCP.
58:16GCP atau Firebase lah.
58:19Yang itunya banyak, service-nya.
58:24Tapi dia punya runtime sendiri.
58:28Iya, sama sih AOS juga gitu.
58:29Iya runtime.
58:31Runtime buat bed-end-nya juga, kan?
58:33Maksudnya kita coding-nya, apa?
58:36Kita ngeserv-nya dari Denu.
58:39Nah, ini pernyataan yang menarik juga nih.
58:48Kalau sudah pakai Denu, jangan lupa front-end-nya pakai fresh framework
58:51biar sekalian mau account dari FW sebelah.
58:53Yang sebelah itu apa?
58:54Dia sebutin aja, gak apa-apa, kok.
58:56Pada pendapatnya kan, previous JS.
59:00Previous JS.
59:02Front-end-nya dia, si fresh ini kan dia server render, kan?
59:08Jadi kayak meta framework ya modelnya.
59:10Sama kayak itu ya.
59:12Server render, tapi bisa island.
59:16Bisa hydrate.
59:17Astrolah ya, berarti ya.
59:20Ya, kayak hybrid-nya Astro, HTMX.
59:24Ya, HTMX, Svelkit, dan lain-lainnya.
59:30Biasanya kalau lihat demo-nya, weh, keren.
59:34Tapi kalau nanti sudah pakai, aduh.
59:36Belum, ini belum ada, itu belum ada.
59:39Ini ada hard-stop gak malam ini?
59:46Nggak.
59:48Nggak ada?
59:49Jangan sampai jam 11 malam juga sih.
59:52Siapa yang mau sampai jam 11?
59:55Install deno deploy.
59:58Deno install.
1:00:03Oh, sorry, belum ini ya.
1:00:05Betul kan ya, deploy?
1:00:07Tadi ada ngasih siapa?
1:00:09Deploy platform tuh yang di kiri, sidebar.
1:00:13Ada deployment.
1:00:15Jadi merasa kayak heroku gak sih?
1:00:18Yes.
1:00:19Di PlusCity L.
1:00:22Benar.
1:00:24Ini ada gratisannya gak, free tier-nya?
1:00:32Coba cari di deno.com.
1:00:35Cari aja di deno.com.
1:00:37Ada kron-nya, ada kron, edge case.
1:00:42Deno deploy.
1:00:45Pricing.
1:00:47Free.
1:00:48Free, tuh free.
1:00:50Low traffic project.
1:00:53Nah, itu dilipir.
1:00:56Gede ini?
1:00:59Gede ini?
1:01:00Iya, dikasih yang lambat.
1:01:02Oke lah.
1:01:03Buat coba-nyoba kan?
1:01:05Buat coba.
1:01:07Buat coba-nyoba, oke lah.
1:01:09Nanti kalau udah ketahui kan, baru free-nya digilangin.
1:01:14Mereka mahal. Heroku momen ya.
1:01:18Bukan heroku, Cloudflare.
1:01:21Kalau Cloudflare, heroku sekarang semenjak di akusisi, gak ngasih gratisan lagi.
1:01:28Minimal ya.
1:01:29Iya, makanya jelitan udah pada banyak yang pake, tiba-tiba free tier-nya ditatik.
1:01:34Sama, Fly.io juga udah gak ada gratisannya.
1:01:39Kalau Fly.io dari awal udah gak curiga sih karena offering-nya punya banget kayak generous banget.
1:01:46Iya.
1:01:47Tapi, kalau tagiannya masih dibawah 5 dolar, digratisin.
1:01:54Oh, menarik sih.
1:01:57Fly.io.
1:01:59Fly.
1:02:01Soalnya dulu tuh pas awal-awal.
1:02:04Di akumulasi sampe 5 dah. Bukan, tetep di akumulasi sampe 5 dolar baru ditagih.
1:02:11Tidak, tiap bulan kalau dibawah 5 dolar gratis.
1:02:15Gratis, selalu dibulan.
1:02:18Akumulasi hari ini, bulan ini 2, bulan depannya 2, jadi 4, 6 tagih gak gitu kan.
1:02:26Soalnya dia tuh gak ada sleep-nya loh, Fly.io.
1:02:31Gak ada apa?
1:02:32Gak sleep, mau saya apa? Gak mati.
1:02:35Oh iya, nyala terus?
1:02:37Ya.
1:02:40Kalau Heroku kan dari dulu yang gratisan kan mati kan setahun berapa.
1:02:46Di tidurin.
1:02:51Di tidurin.
1:02:56Jadi, next-nya kita cobain ya.
1:02:59Apa nih yang mau dicoba? Coba tapi dikit aja.
1:03:02Coba, coba, coba.
1:03:04Hello world aja, besok-besok bikin episode baru.
1:03:07Dino fresh, maksud saya yang big wave banget.
1:03:11Kalau ini yang apa?
1:03:13Yang ini, getting started.
1:03:14Gimana sih? Gini ya?
1:03:15Ya, itu aja.
1:03:17Get started, Dino.
1:03:19Gak ada dark mode-nya.
1:03:21Belum bikin. Ini kan open source di itu aja.
1:03:26Eh, masih 145.
1:03:30Coba Dino aja ya, dua sekalian.
1:03:34RC, Dino Upgrade RC kalau gak salah.
1:03:38Apa?
1:03:40Dino Upgrade RC.
1:03:42Upgrade?
1:03:44Upgrade RC.
1:03:48Ya.
1:03:49Gak ada, white, tadi kan ada.
1:03:53Upgrade dulu.
1:03:55Oh, karena pakai Enix?
1:03:58Gak bisa.
1:03:59Gak bisa langsung?
1:04:00Oh.
1:04:03Pake ini aja apa?
1:04:06Kalau ini dia install-nya gimana ya?
1:04:08Yang baru.
1:04:09Ini install-nya kemana ya?
1:04:12Harusnya ya coba binary yang udah ada kan?
1:04:18Ada target ininya gak?
1:04:21Kayaknya udah di default-nya.
1:04:26Di USR bin gitu-gitu ya?
1:04:28Bin, iya bin.
1:04:37Bisa pakai Enix?
1:04:39Iya.
1:04:40Lagi nyoba, kemarin kan setup laptop dari awal kan.
1:04:46Jadi coba pakai Enix aja.
1:04:49Wah, laptop baru ya?
1:04:51Enggak, laptop second.
1:04:54Setup completion, please.
1:04:57Terus yang Dino yang sebelumnya?
1:05:00Apa kabarnya?
1:05:03Masih sama?
1:05:05Oh, di luar ini dulu.
1:05:11Beda satu.
1:05:19Dino upgrade.
1:05:23Yang RC.
1:05:25Nah, tuh misalkan.
1:05:28Dua tuh.
1:05:30Remote control.
1:05:31Iya, tapi nyampah.
1:05:33An install-nya gimana caranya?
1:05:36Delete aja.
1:05:38Okay.
1:05:41Standard-nya ini, standard apa?
1:05:44Standard nyoba kode TypeScript.
1:05:48Ini misalnya kita matikan aja.
1:05:55Dah, ini masih berapa nih?
1:06:00Denominv ya?
1:06:03Oke, sudah 2.0.
1:06:07Terus?
1:06:09Set sekarang kok nggak mau pakai film lagi?
1:06:14Biasanya film.
1:06:16Enggak.
1:06:18Tukar-tukar aja, biar nggak bosan.
1:06:21Terus habis itu jalanin apa?
1:06:23Habis itu.
1:06:25Pakain itu dong, pakain set dong.
1:06:27Jalaninnya.
1:06:29Jalaninnya Dino main TS.
1:06:32Ya boleh.
1:06:34Dino.
1:06:38Dino app.ts.
1:06:41Dino-nya nggak ada.
1:06:44Kenapa?
1:06:45Nah, itu apa?
1:06:46Itu Z, S, H, B, D.
1:06:49Fish, itu fish.
1:06:52Ini.
1:06:55Dua-duanya fish.
1:06:56Terminalnya masih di Z, itu pakai apa?
1:06:59Yang di Z.
1:07:01Beda fish kayaknya, ikan-nya banyak.
1:07:03Ini fish, sama.
1:07:05Tapi itu...
1:07:07Baik, baik, baik.
1:07:09Penasaran nih.
1:07:11Itu via JS versi 20, itu masih note ininya, engine-nya.
1:07:17Tapi di sini nggak ada.
1:07:19App.ts.
1:07:21Udah?
1:07:23Aman.
1:07:25Terkara Z.
1:07:27Terminal.
1:07:29Terminal.
1:07:31Dino version.
1:07:33Oh, gini.
1:07:35Kebuka, kan?
1:07:37Z.
1:07:39Harus dijalani lagi kali.
1:07:41Coba Dino.
1:07:43Harus restart.
1:07:45Si Z-nya.
1:07:49Mix-nya.
1:07:51Sudah.
1:07:53Terus?
1:07:55Terus lagi ke bawah next steps.
1:07:58Z-nya V-motion, betul.
1:08:00Z-nya V-motion, dong.
1:08:02Next.
1:08:04Making Dino project.
1:08:06Dino init my project.
1:08:08Oh dia pakai DinoJSON, benar tadi.
1:08:10Oh, oh iya.
1:08:12Tadi benar-benar bercanda.
1:08:14Aduh.
1:08:22Dino run.
1:08:24My project.
1:08:26Ini kayak gimana dia?
1:08:28Import.
1:08:30Tapi nggak ada, oh ada importnya juga.
1:08:32Akhirnya.
1:08:34Sama dong.
1:08:36Kalau nggak ada importnya gimana?
1:08:38Tapi kan semuanya tadi via url.
1:08:40Jadi file-nya kita.
1:08:42Bisa pakai url?
1:08:44Bisa, bisa, bisa.
1:08:46Cuma run.
1:08:48Dino run.
1:08:50CD.
1:08:52Oh, ini udah.
1:08:54Udah otomatis dikasih watch ya.
1:08:56Note demon, note phone.
1:08:58Enggak, note yang baru kan udah
1:09:00otomatis, udah ada juga.
1:09:02Udah.
1:09:04Dino mon, kirain bakal ada Dino mon.
1:09:06Dino mon juga ganti
1:09:08main.ts-nya
1:09:10diganti
1:09:12langsung dia otomatis.
1:09:14Reload.
1:09:16Ini kecilinnya gimana?
1:09:18Nggak ada ininya ya.
1:09:20Di ganti apa?
1:09:24A kurang B.
1:09:26Enggak.
1:09:28A tambah B tambah 1 deh.
1:09:30Jadi angkanya dibuat salah.
1:09:32Oh, iya bener.
1:09:34Bener ke update.
1:09:36Asalnya fungsinya yang salah.
1:09:38Langsung ke update.
1:09:40Cepet lagi.
1:09:42Ya, karena cuma hello world begini.
1:09:44Cepet lah.
1:09:46Jangan lebay.
1:09:48Kan iforia.
1:09:50A plus 1. Iforia.
1:09:52Ini ya.
1:09:54Dino test-nya nggak ada watch.
1:10:00Oh, ada.
1:10:02Tapi cepet banget loh, dia tadi
1:10:04waktu yang compile watch pertama
1:10:06lama, tapi begitu yang kedua dia
1:10:08udah nge-catch.
1:10:10Di-catch semua.
1:10:12Iya.
1:10:14Cepet ya? Keren.
1:10:16Oke, run your project.
1:10:18Ini bisa langsung. Run your test.
1:10:20Oh iya. Kita liat test-nya ya.
1:10:22Kita liat test-nya ya.
1:10:24Eh, sama.
1:10:26Mirip-mirip.
1:10:28Itu kata Iksan
1:10:30Scooter tuh.
1:10:32Susah jadi manusia.
1:10:34Dupada NOS.
1:10:36Itunya juga enak ya?
1:10:42Testing-nya sama.
1:10:44Mirip-mirip.
1:10:46Dia itu ya.
1:10:48Apa namanya kayaknya
1:10:50filosofinya mengikuti Node.js ya.
1:10:52Jadi supaya orang gampang pindahnya.
1:10:54Iya, kalau bikin susah
1:10:56nanti gampang.
1:10:58Bun udah pasti untuk saat ini
1:11:02yang udah paling cepet.
1:11:04Kalau sekarang.
1:11:06Oh iya, dia di landing page-nya
1:11:08yang dipromosiin itu kan.
1:11:10Ada bercar perbandingan
1:11:12dia cepet.
1:11:14Tapi kelebihannya Dino adalah
1:11:16ekosistemnya udah mulai lengkap.
1:11:18Kalau Bun kayaknya belum.
1:11:20Belum sampai sana.
1:11:22Bun kalau nggak salah, terakhir infonya
1:11:24udah support SQLite
1:11:26built-in ya. Jadi nggak perlu
1:11:28install macem-macem. Udah bisa langsung
1:11:30SQLite. Baru sampai situ sih
1:11:32infonya. Kalau yang lainnya
1:11:34akhirnya ekosistemnya lebih lengkap
1:11:36si Dino ini. Dan
1:11:38bisnis modelnya juga lebih
1:11:40jelas yang si Dino ini.
1:11:42Dan ekosistem sampai ke deploy ya.
1:11:44Itu kan biasanya
1:11:46nggak terlalu... Belum lengkap dari awal sampai akhir.
1:11:48Belum terlalu di pikirin.
1:11:50Sampai deploy. Terus kalau pakai database
1:11:52atau maksudnya pakai storage.
1:11:54Storage-nya juga di deploy.
1:11:56Jadi bisa jadi,
1:11:58kalau pakai Dino dari awal dan fresh
1:12:00dan deploy KV-nya sudah ada
1:12:02sudah bisa gantiin ini juga dong ya.
1:12:04Next.js.
1:12:06Nah itu tadi.
1:12:08Oh iya. Widowanya kan udah ke sana.
1:12:10Tadi.
1:12:12Satu ekosistem. Tapi super duper
1:12:14vendor login.
1:12:16Ini dia
1:12:18apa? Formaternya
1:12:20bisa jalan otomatis.
1:12:22Iya.
1:12:24Dikasih nggak server
1:12:26lendu server-nya?
1:12:28Itu ada LSP-nya.
1:12:30Sublime Text.
1:12:32Z? Z nggak ada Z?
1:12:34Nggak ada Z.
1:12:36Z nggak pakai itu ya?
1:12:38Enggak.
1:12:40Enggak lengkap.
1:12:42Cursor lho.
1:12:44IMAX ada.
1:12:46Apapun yang jalan di VS Code.
1:12:48Nggak, nggak. Dia nggak gitu.
1:12:50Set nggak ya?
1:12:52Disa sih.
1:12:54Kalau mau di setting, bisa.
1:12:56Tapi manual. Contohnya ini.
1:12:58Ini. Dikopi.
1:13:00Jalanin.
1:13:02Lendusnya apa nih?
1:13:04Eh, lendus salah ya.
1:13:06Deno gitu. Bener nggak sih?
1:13:08Ininya.
1:13:10Deno gitu.
1:13:12Deno.
1:13:14Format On Save.
1:13:16Deno. FMT.
1:13:18Udah. Ya kan?
1:13:20Gitu.
1:13:22Coba-coba. Bisa manual
1:13:24tapi.
1:13:26Ininya udah sama.
1:13:28Coba ya.
1:13:30Tapi udah otomatis dari tadi juga.
1:13:32Coba nggak pakai titik koma.
1:13:34Udah.
1:13:36Coba ininya ke sini.
1:13:38Itu udah.
1:13:40Oke. Sekarang kita coba
1:13:42pakai
1:13:44pakai itu. Library.
1:13:48TypeScript Support.
1:13:50Ini udah oke.
1:13:52Apa lagi? Apa yang
1:13:54yang perlu kita coba apa?
1:13:56Deno VS
1:13:58Boon ini gimana cara kita
1:14:00cobanya ya?
1:14:02Standard Library.
1:14:06Ada yang menarik nggak?
1:14:08Wah. Ini dua-duanya menghilang.
1:14:10Cafe Lokal.
1:14:14Oke. Ada nggak
1:14:16di sini?
1:14:18Eka-nya ngefreeze.
1:14:20Ivan-nya kabur.
1:14:22KV Lokalnya gimana caranya?
1:14:28KV.
1:14:34Sorry.
1:14:36Oke.
1:14:38Cobain KV.
1:14:40Deno KV Quick Start ya.
1:14:42Coba-coba.
1:14:46Nah.
1:14:48Ya makanya
1:14:50ini cobain. Ini langsung gitu.
1:14:52Coba aja.
1:14:54Kayaknya udah harus punya akun
1:14:58atau apa. Itu kan
1:15:00nanya-nanya deploy.
1:15:02Gini.
1:15:04Gak bisa.
1:15:06Ini apa error-nya?
1:15:08Open KV itu bukan fungsi.
1:15:12Bukan fungsi.
1:15:14Itu bukan dari
1:15:18Deno Runtime-nya soalnya.
1:15:20Deno deploy. Sekarang installnya gimana?
1:15:22Coba buka.
1:15:24Deno KV is available.
1:15:26Tadi ada tulisan.
1:15:28Deno KV is available in Deno CLI.
1:15:30On Deno
1:15:32deploy.
1:15:34Harus install Deno CLI dulu?
1:15:36Coba.
1:15:38On Deno deploy-nya apa isinya?
1:15:40Deno deploy?
1:15:44Ya. Deno deploy. Docs-nya buka itu.
1:15:46docs.deno.com/deploy/manual
1:15:58Ini.
1:16:00Kita gak coba yang
1:16:02Deno CLI dulu?
1:16:04Deno CLI.
1:16:06Bukannya tadi kita udah install
1:16:10Deno CLI ya? Beda lagi ya?
1:16:12Gak tau.
1:16:18Itu kan?
1:16:20Iya.
1:16:22Oh, ini.
1:16:24Ada deploy CTL.
1:16:26Bukan ini ya?
1:16:28Eh, mana dia?
1:16:30Deno add.
1:16:32Eh, ini-nya
1:16:34masih ada ya?
1:16:36Deno add gitu gak ya?
1:16:38Kayaknya bukan ya.
1:16:40Itu kan di global.
1:16:42Coba ketik
1:16:44search deploy CTL.
1:16:46Deno KV.
1:16:48Tadi ada kan?
1:16:50Ini.
1:16:52Deploy manual.
1:16:54docs.deno.com/deploy/manual
1:17:04Kok ke deploy sih?
1:17:08Kita kan belum mau deploy.
1:17:10Oh, harus install ini dulu.
1:17:12Deploy CTL ini.
1:17:14Deploy CTL. Jadi bukan Deno CTL.
1:17:16Deploy CTL.
1:17:18Keliatannya loh. Soalnya KV itu kan bagian dari
1:17:20Deno deploy.
1:17:22Kok gitu?
1:17:24Nah, itu nanti setelah
1:17:28install itu jadi ada
1:17:30deno.src. Kayaknya apa?
1:17:32namespace deno itu jadi kayak ada deno.src
1:17:34deno.kv atau apapun.
1:17:36Ini berarti ya?
1:17:38Oke, iya.
1:17:40The following required argument were not provided.
1:17:48Apa gini? Global.
1:17:52Eh, cuma ada yang comment tuh
1:17:54jangan docs yang deploy. Itu versi
1:17:56versel.
1:17:58Cafe lokal, coba.
1:18:00Cafe lokal.
1:18:02Versi verselnya.
1:18:08Versel itu jadi kata-kata
1:18:10versi hosted.
1:18:12Kayak nge-search kan
1:18:14Google.
1:18:16Hosted service yang
1:18:18vendor login. Versel.
1:18:22Versel kayaknya udah di benci sekali ya.
1:18:24Cuma makin di benci makin besar sih.
1:18:28Pasti makin sukses.
1:18:30Semakin banyak, haternya semakin banyak yang
1:18:32ini juga.
1:18:34Karena jumlah orang yang makin banyak yang makin
1:18:36benci ya jadi banyak.
1:18:38Cafe lokal.
1:18:40Cafe lokal.
1:18:42Belum dulu sih.
1:18:44Itu ada cafe soalnya.
1:18:46Di
1:18:48site bar kiri ada cafe. Mungkin
1:18:50di coba. Yang tadi ini.
1:18:52Oh gak ada cafe lokal.
1:18:54Dino cafe namespace.
1:18:58Dino deploy.
1:19:04Malah nyasar nemu ini
1:19:06tapi kuduh pake Docker.
1:19:08Service hosted.
1:19:12Enggak, kita mau yang lokal aja.
1:19:16Gak mau
1:19:18di deploy dulu.
1:19:20Ini bisa pake Node.js.
1:19:22To install kan.
1:19:24Kalo Node.js ya.
1:19:26Apakah si
1:19:28Dino nya.
1:19:30Dino
1:19:34Cafe tutorial.
1:19:36Tadi mana?
1:19:38Ini kan.
1:19:40Follow this tutorial to learn how to use
1:19:42QE.
1:19:44Try in playground.
1:19:46Configure
1:19:48ini.
1:19:50Dia langsung tuh.
1:19:52Kak kayaknya gak bisa
1:20:00pake Dino
1:20:02orang gitu aja deh. Dia harus pake
1:20:04Dino serve gitu.
1:20:06Coba yang lain aja gimana.
1:20:12Catching depth atau apa.
1:20:14Gak bisa kan.
1:20:16Gak bisa, gak bisa.
1:20:18Gak ada
1:20:20ininya. Gak ada scriptnya.
1:20:22Cuman ada dev doang.
1:20:24Disini juga masih ini.
1:20:28Kita coba
1:20:30deploy.
1:20:32Kok langsung deploy ya?
1:20:34Dari quick start langsung deploy ya.
1:20:36Karena itu dochsenya deploy.
1:20:38Iya.
1:20:40Coba balik ke...
1:20:42Coba balik ke kiri atas.
1:20:44Getting started.
1:20:46Kalau ini kan rantai manual
1:20:48yang active docksnya.
1:20:50Module and dependencies.
1:20:52Import.
1:20:54Importing module. Standard ya.
1:20:56Sama ya.
1:20:58Type script by default.
1:21:00Ini gak boleh.
1:21:02Ini juga penyesalannya si
1:21:04Rayan Dahal. Harus ada extension.
1:21:06Biar gak musing.
1:21:08Yes.
1:21:10Ini kita bisa pakai HTTPS.
1:21:12Bisa pakai NPM.
1:21:14Bisa pakai JSR.
1:21:16Versioningnya juga
1:21:18udah dipikirin banget ya.
1:21:20Iya, kalau mau ditambahkan disini.
1:21:22Terus kalau mau
1:21:24pakai deno.json bisa juga
1:21:26kayak gini.
1:21:28Kita coba ini kali ya.
1:21:30Howcy.
1:21:32Oh, ini yang bikin sapi.
1:21:38Yes, yang bikin sapi.
1:21:40Oh, ini untuk jalaninnya ya.
1:21:44Main ya. Main functionnya.
1:21:46Say.
1:21:48Say.
1:21:50Roll in web.
1:21:52Kok dia download? Oh ya, download lah.
1:21:58Ya, download dulu tetep.
1:22:00Allow. A.
1:22:02Allow, allow.
1:22:04Allow ya. Allow read ya.
1:22:06Yes.
1:22:08Error.
1:22:10Gimana cara pakenya?
1:22:16Permission. Permission tadi masalahnya.
1:22:18Permission?
1:22:20Iya.
1:22:22Granted.
1:22:24Oke. Terus?
1:22:26Coba.
1:22:28Undefined, join.
1:22:30Allow.
1:22:32All permission.
1:22:34Tak bisa juga.
1:22:36Iya, ada masalah
1:22:42di kausenya.
1:22:44Kausenya.
1:22:46Kita lihat ya. Ini kausenya langsung?
1:22:48Oh, karena
1:22:50udah disini.
1:22:52Kita pake npm kan? Ini error.
1:22:54Coba.
1:22:58Atau
1:23:00saynya?
1:23:02Ada ke open as option.
1:23:04A.
1:23:06Nggak bisa.
1:23:08Bukan saynya.
1:23:10Dalam kurung. Object.
1:23:12Object.
1:23:14Fieldnya text.
1:23:16Text titik dua.
1:23:18Oh, ini ya.
1:23:20Cara pakenya.
1:23:22Text titik dua.
1:23:24Coba.
1:23:26Mana?
1:23:30Nggak tahu.
1:23:32Itu di atas.
1:23:34Harus di konsolok.
1:23:36Oh, iya. Konsolok dulu ya.
1:23:38Nah.
1:23:44Yay.
1:23:46Akhirnya.
1:23:48Susah juga.
1:23:50Karena kita nggak tahu cara pakenya.
1:23:52Iya. Cuma sekalig kita tahu kan.
1:23:54Udah kan? Udah.
1:23:56Karena kita nggak tahu cara pake kausen.
1:23:58Iya.
1:24:00Ini kita bisa pake denoad.
1:24:02Dia otomatis ya.
1:24:04Tapi nggak bisa def.
1:24:06Dependensi.
1:24:08Terus kemudian. Coba ya.
1:24:10Tadi kan ada hono kan.
1:24:14Kita coba pake hono ya.
1:24:16Atau htmx.
1:24:18Nggak ada htmx.
1:24:20Hono.
1:24:24Berarti cara pakenya
1:24:26adalah ini kan.
1:24:28Denoad.
1:24:30JSX Hono.
1:24:32Ya JSR.
1:24:34Wih keren.
1:24:36Terus abis itu.
1:24:38Import hono.
1:24:42Import hono from hono.
1:24:44Hono.
1:24:52From.
1:24:56Hono apa?
1:24:58Loh.
1:25:00Oh, hono doang.
1:25:02Hono doang nggak pake
1:25:04Hono coroko.
1:25:06Nggak.
1:25:08Ya kopi aja ya. Dari tadi ya.
1:25:10Ini nggak pake export kan.
1:25:12Tapi kan.
1:25:14Terus dia, ininya mana?
1:25:18Runningnya mana?
1:25:20Listen-listennya nggak ada.
1:25:24Wah, nggak lengkap ini
1:25:26dokumentasinya.
1:25:28Coba export default app dulu.
1:25:30Export default app?
1:25:32Iya.
1:25:34Ini kan buat di
1:25:36tempat lain kan. Dipanggil dari tempat lain.
1:25:38App.listen kali.
1:25:40App.listen
1:25:424000
1:25:46Ini kita hapus aja ya.
1:25:48Ini perlu dihapus nggak?
1:25:52Boleh.
1:25:54Hapus juga.
1:25:56Koment aja deh.
1:25:58Terus, error.
1:26:00Relative import path hono.
1:26:06Kok nggak bisa?
1:26:10Kenapa harus pake gini?
1:26:12Ini. Ini ya?
1:26:16Iya itu, itu, itu.
1:26:22Gini.
1:26:24Yang modifiernya tadi kan?
1:26:28App.listennya nggak ada.
1:26:30Loh.
1:26:32Hono.js
1:26:36Gimana sih?
1:26:38Export.
1:26:40Dia export langsung ya?
1:26:42Nggak ada listen-nya gitu?
1:26:44Itu ada deno turbawa tuh.
1:26:46Quick start deno.
1:26:48Ini ya. Ini udah.
1:26:50Oh ini dia bikin sendiri ya?
1:26:52Bikin project baru ya?
1:26:54Iya.
1:26:56Itunya deno.jsonnya
1:26:58beda jadinya kali ya.
1:27:00Cuma kalau mau apa?
1:27:04Tanpa framework, ada nih.
1:27:06Bisa langsung
1:27:08ngeserve.
1:27:10Ini kan kita sekalian cobain
1:27:12apa namanya? Cobain import kan.
1:27:14Cloningnya lama sekali.
1:27:18MyApp, kita lihat deno.jsonnya.
1:27:20Hono.
1:27:22Start.
1:27:24Terus main.js
1:27:28Gimana?
1:27:30Deno.serve.
1:27:32Oh dia pake app.patch.
1:27:34Tapi ini nggak selesai-selesai nih.
1:27:38Oh.
1:27:40Ini udah. Oh udah.
1:27:42Terus?
1:27:44Ntm run.
1:27:46Ntm run sih.
1:27:48Deno.
1:27:50Start.
1:27:52Deno start.
1:27:54Deno start.
1:27:56Start.
1:27:58Oh deno run start kali.
1:28:02Kok nggak bisa?
1:28:04Balik ke...
1:28:06Karena belum masuk ke MyApp.
1:28:08CD MyApp.
1:28:10Deno start.
1:28:14Tau nggak bisa?
1:28:16Mas Rizal lagi di panggung ya kan.
1:28:18Wah seru ya.
1:28:20Ya latihan dulu lah.
1:28:22Halo.
1:28:24Hello hono.
1:28:26Sudah.
1:28:28Tapi ini...
1:28:30Ini pake template.
1:28:34Berarti dia tetap harus pake deno.serve ya.
1:28:42Balik ke myprojectnya.
1:28:44Mas Rizal coba sendiri bisa nggak?
1:28:46Myproject?
1:28:48Oh diikutin kayak gini?
1:28:50Import hono
1:28:52from hono.
1:28:54Terus?
1:28:56Hononya hanya besar nggak sih?
1:28:58Nggak.
1:29:00Nggak.
1:29:02App sama dengan si hono.
1:29:04Betul. App get.
1:29:06Terus deno.
1:29:08Deno.serve.
1:29:10App.fetch.
1:29:12Nah.
1:29:14Deno untuk JSON-nya.
1:29:16Apa?
1:29:18CD parent?
1:29:20Bikin yang start.
1:29:22Karena dia ada
1:29:24modul
1:29:26net-nya deh tadi kayaknya.
1:29:28Deno
1:29:30run.
1:29:32Hello.
1:29:34Net ya.
1:29:36Main.s.
1:29:38Gini?
1:29:40Kayanya ya.
1:29:42Iya. Deno run.
1:29:44Ini ada compiler ini.
1:29:46Butuh nggak?
1:29:48Gak usah.
1:29:50Gak usah dulu ya.
1:29:52Tes aja tes.
1:29:54Myproject.
1:29:56Deno run start.
1:29:58Hon.
1:30:02Deno.json-nya
1:30:06isinya apa?
1:30:08Benar.
1:30:10Coba.
1:30:12Enggak. Itu.
1:30:14Oke ini berarti.
1:30:16Kalau ini kan.
1:30:18Hono doang.
1:30:20Itu alias ya.
1:30:22Berarti gini kan.
1:30:24Nah.
1:30:26Yay.
1:30:28Harusnya hono.
1:30:34Coba. Cafe-nya.
1:30:36Cafe-nya masih bisa nggak? Cafe.
1:30:38Gak bisa ya. Gimana ini tadi ya?
1:30:40Iya.
1:30:42Cafe.
1:30:44Ini.
1:30:46Eh. Error nggak?
1:30:48Enggak nggak error?
1:30:50Karena nggak
1:30:52relisted. Harus relisted dong.
1:30:54Kan nggak watch. Oh iya nggak ada watch.
1:30:56Nggak ada watch-nya.
1:30:58Gak bisa.
1:31:00Oh unstable kv.
1:31:02Oh tadi nggak ada.
1:31:04Dia cuma jalan kalau deserve.
1:31:06Mungkin. Iya.
1:31:08I see.
1:31:10Oke.
1:31:12Deno.json.
1:31:14Ini ya.
1:31:16Berarti.
1:31:18Tambahkan.
1:31:20Unstable kv.
1:31:22Unstable kv watch.
1:31:24Watch. Nah.
1:31:30In.ts.
1:31:32Kv.
1:31:38Kosong.
1:31:42Udah bisa nih.
1:31:44Ini pakai apa ya?
1:31:46Ya itu kv.
1:31:48Tadi. Ini coba.
1:31:50Kv.
1:31:52At kv.get.
1:31:54Ada contohnya tuh buat
1:31:56Ecopass.
1:31:58Simple api.
1:32:00Simple api.
1:32:02Simple plan.
1:32:06Oh cuma itu post request.
1:32:08Kv.set ya?
1:32:10Iya.
1:32:12Kv.set. Betul.
1:32:14Berarti di sini.
1:32:18Itu aja. Await.
1:32:20Await. Cek itu loh.
1:32:22Di dalam app get aja. Sekarang.
1:32:24Jadi bisa direfresh-refresh.
1:32:26Oke, oke.
1:32:28Berarti ini kita
1:32:30Pakai. Gini ya?
1:32:32Ya.
1:32:34Return.
1:32:36Terus.
1:32:38Terus di sini. Await.
1:32:42Kv.set.
1:32:44Kv.set.
1:32:46Kv.set.
1:32:48Eh. Apa tadi?
1:32:50Setnya gimana?
1:32:54Ini ya?
1:32:56Masih lagi.
1:32:58Api nya mana api nya? Api reference?
1:33:00Kv.
1:33:02Enggak ada.
1:33:04Belum nemu.
1:33:06Kv.
1:33:08Ada api apa aja gitu maksudnya?
1:33:10Set preference ada.
1:33:12Set sama get.
1:33:14Set sama get aja.
1:33:16Tapi ini apa?
1:33:18Ya itu key value.
1:33:20Key nya. Value nya mana?
1:33:22Ini?
1:33:24Iya.
1:33:26Ya ini udah toko.
1:33:28Counter.
1:33:30Kan masih beta. Kok udah ada yang auto complete ya?
1:33:32Ya udah kita auto complete aja.
1:33:36Ya udah coba.
1:33:38Itu yang Kv.set counter yang di atas itu kayaknya salah deh.
1:33:40Ya bener-bener aja.
1:33:44Gini kan?
1:33:46Bukan dia akan selalu dua itu.
1:33:48Ini kan? Pakai ini kan?
1:33:50Tapi ini preference nya apa?
1:33:52Ya itu options ya.
1:33:54Logiknya kita selalu
1:33:58set counter satu.
1:34:00Begitu kita reload.
1:34:02Jadi dua.
1:34:04Karena counter tambah satu.
1:34:06Disable dulu aja pasti yang baris
1:34:10ke duanya itu.
1:34:18Deno import nya itu di atas.
1:34:20Salah. Yang line bawah.
1:34:24Yang line 14 itu ke atas.
1:34:28Gini?
1:34:30Ya boleh lah.
1:34:32Ini berarti counter.
1:34:36Oh gini.
1:34:40Iya.
1:34:42Ya udah.
1:34:44Coba aja.
1:34:48Itu interval server error.
1:34:50Invalid type.
1:34:54Expected array got string.
1:34:56Yang mana?
1:34:58Yang gate nya itu juga
1:35:00harus array.
1:35:02Ya.
1:35:04Object object.
1:35:10Better.
1:35:12Coba di
1:35:16counter itu isinya apa?
1:35:18Counter dot. Coba untuk complete ya.
1:35:20Jason dot stringy file.
1:35:22Counter.
1:35:24Jason dot stringy file.
1:35:28Counter.
1:35:30Value nya null.
1:35:36Value nya null tapi ya.
1:35:38Karena
1:35:42gak bisa null ditambahin satu.
1:35:44Jadi harus di initialized
1:35:46di paling atas dulu.
1:35:48Sebelum server nya
1:35:50dimulai.
1:35:52Ini ya?
1:35:54Itu tadi yang contoh preference apa?
1:35:56Ini apa?
1:35:58Oh kv.set.
1:36:00Ini ada nih kv.set.
1:36:02Key value.
1:36:06Key nya ini.
1:36:08Value nya ini.
1:36:12Kok
1:36:14array key nya?
1:36:16Salah.
1:36:22Berarti key nya ini.
1:36:24Value nya ini.
1:36:26Di luar.
1:36:28Coba.
1:36:30Dadah.
1:36:32Ya gitu lah.
1:36:40Kalau mau ngubah, set.
1:36:42Kalau mau ngubah, set lagi.
1:36:44Ya tapi kalau mau ini.
1:36:46Jadi yang
1:36:48line 7, line 8
1:36:50nya itu di luar. Di luar. Upgate.
1:36:52Gini.
1:36:54Nah.
1:36:56Terus yang await
1:36:58itu ditambahin. Ya.
1:37:00Sudah. Oh salah.
1:37:02Berarti harus 2 ya.
1:37:04Eh salah.
1:37:06Counter nya di array.
1:37:08Ya. Dah.
1:37:10Harusnya 2.
1:37:12Object. Object.
1:37:14Object. Object.
1:37:16Counter. Value.
1:37:18Value. Counter. Value.
1:37:20Yes.
1:37:22Dah.
1:37:24Yay.
1:37:28Yay.
1:37:30Cukup ya demo nya ya.
1:37:36Susah ya terserah ya.
1:37:38Tidak semudah yang dibayangkan.
1:37:40Karena belum hapal.
1:37:42Karena belum hapal.
1:37:44Terus sintaks nya agak-agak beda.
1:37:46Tidak semudah tutorial.
1:37:48Tapi ya gak masalah Cukup ya sih.
1:37:50Kita pas pertama kali
1:37:52banget belajar node.js, kita mau langsung
1:37:54Winsa kan.
1:37:56Cuma berarti itu perlu dipertimbangin
1:37:58juga sih. Maksudnya kita liat.
1:38:00Tadi kan kita liat deskripsinya.
1:38:02Kayak menggiurkan banget.
1:38:04Kita langsung pengen adopt.
1:38:06Terutama kalau kita punya tim.
1:38:08Kita bakal expect ya kan gampang.
1:38:10Mirip JavaScript. Mirip node. Yang bikin sama.
1:38:12Kalian belajar lah. Nah ternyata
1:38:14in practice ya apa?
1:38:16Itu ada buban juga.
1:38:18Maksudnya ada cost nya kan berarti.
1:38:20Betul. Betul.
1:38:22Berarti dia
1:38:24si Deno dan
1:38:26termasuk Gun juga ini dia serving nya
1:38:28jadi ini ya.
1:38:30Orang yang sudah punya pengalaman
1:38:32dengan node atau dengan runtime lain
1:38:34itu dia harus masuk kesitu.
1:38:36Orang dengan
1:38:38pengalaman baru, orang yang belum belajar
1:38:40juga harus di serve juga.
1:38:42Jadi ada dua user.
1:38:44Ada dua use case yang harus di handle
1:38:46dalam satu waktu ya.
1:38:48Dan tetap aja
1:38:50apa se user friendly
1:38:52apapun ada.
1:38:54Terusnya tadi misalnya tadi kita yang
1:38:56apa? Pusing-pusing Delocafed.
1:38:58Boyangin kalau buat product yang
1:39:00ada expectasinya.
1:39:02Ada detailnya.
1:39:04Pusing-pusing tempered major.
1:39:06Apaan ini.
1:39:08Illustrating. Bukan karena salah
1:39:12Deno nya.
1:39:14Bukan salah Deno nya. Cuman
1:39:16satu tadi kita kan bacanya buru-buru.
1:39:18Kalau buru-buru ya
1:39:20emang.
1:39:22Kayak tadi kan cara pakai Deno
1:39:24kevinya kan padahal disitu
1:39:26udah dikasih tau kan.
1:39:28Itu adalah.
1:39:30Awalnya gak ada
1:39:32masalahnya ya.
1:39:34Yang kedua baru.
1:39:36Yang mana
1:39:38yang mana.
1:39:40Tiba-tiba argumenya 2.
1:39:42Satu array. Satu gak tahu
1:39:44apa.
1:39:46Ya satu itu. Yang kedua tadi
1:39:48yang kita nyoba Deno kevy yang pertama
1:39:50kali itu error nya gak jelas.
1:39:52Yang kedua setelah Deno dot serve
1:39:54baru ada. Bahwa ini harus
1:39:56ada
1:39:58flag nya.
1:40:00Tanya redox nya yang mana aja.
1:40:02Tadi kan nyasar ke deploy karena
1:40:04kalau di search yang muncul di atas
1:40:06itu.
1:40:08Iya. Dia sangat kejualan
1:40:10deploy nya. Biar aja dokumentasinya.
1:40:12Abis quick start ada deploy basic.
1:40:14Langsung. Cari duit
1:40:16dulu dia.
1:40:18Ya biar sustain lah.
1:40:20Buat kebayainya.
1:40:22Buat bikin turn.
1:40:26Gak. Karena kan
1:40:28ini apa.
1:40:30Ini salah satu pentingnya
1:40:32apa. Sebelum kita learning
1:40:34something new kita harus unlearn dulu.
1:40:36Karena kita asumsi
1:40:38pernah pake redis key nya itu
1:40:40adalah string. Makanya kita asumsinya
1:40:42itu adalah string.
1:40:44Tidak dikasih tau
1:40:46key nya mana value nya mana.
1:40:48Ada dikasih tau cuman kita gak baca.
1:40:50Oh ya.
1:40:52Syntax untuk set sama-sama atau gak?
1:40:54Iya. Itu dia.
1:40:56Jadi kita harus unlearn dulu.
1:40:58Karena kita udah asumsinya tuh udah
1:41:00oh kayak redis nih.
1:41:02Kayak local storage nih. Sama.
1:41:04Jadi harus unlearn dulu.
1:41:06Memang benar. Dan bacanya
1:41:08juga yang gak bisa kita cuman skimming
1:41:10doang ya harus baca detail.
1:41:12Begitulah. Okay.
1:41:16Tapi seru. Tetep
1:41:18menarik. Tetep
1:41:20pengen nyoba.
1:41:22Kalau
1:41:24VS Bun gimana caranya ya?
1:41:26Gak bisa ya.
1:41:28Silahkan cari
1:41:30benchmark yang
1:41:32lain.
1:41:34Ya itu tadi ya masing-masing punya kelebihan
1:41:36dan kekurangan. Mungkin secara kecepatan
1:41:38Bun itu lebih cepat. Tapi secara
1:41:40kematangan.
1:41:42Katanya
1:41:44Deno2
1:41:46katanya cepet sih katanya ya.
1:41:48Iya. Saya juga denger
1:41:50di beberapa interview juga
1:41:52si Randallnya cukup
1:41:54pede gitu. Ya mungkin karena dia yang bikin ya
1:41:56dia bilang VAD tuh kenceng kok.
1:41:58Gak kalah sama JavaScript Core.
1:42:00Jadi kalau misalkan ada yang
1:42:02ngeklaim kalau Bun itu jauh lebih cepat
1:42:04Deno dan Node itu bisa
1:42:08bisa cepat itu kok. Bisa
1:42:10setara lah. Ya karena
1:42:12dia pas dia bikin Deno
1:42:14kayak dengan spesifik ya sampai milik
1:42:16dia udah tau dalemannya.
1:42:18Udah diputer-puter, diolah
1:42:20sedemikian rupa biar cepat.
1:42:22Maksudnya dari awal dia udah pertimbangin
1:42:24itu. Udah jadi go.
1:42:26Dan pertimbangan kenapa dia lebih memilih VAD
1:42:28dibandingkan JavaScript Core juga pasti
1:42:30dia udah ada konsiderasinya kan.
1:42:32Kenapa dulu dia pilih VAD gak pilih
1:42:34webkit punya aja. Padahal sama-sama
1:42:36available kan. Yang diambil justru
1:42:38VAD pasti ya dia udah tau alasannya apa.
1:42:40Pengen ada nanti dan itu runtimenya itu
1:42:44bisa milih pakai VAD
1:42:46pakai JS Core.
1:42:48Anjir masalah bet.
1:42:50Dulu sempat ada juga
1:42:54Microsoft mau bikin namanya Cakra.
1:42:56Bisa dijalankan
1:43:00dari Node spasi pakai
1:43:02flag Cakra enginenya
1:43:04Cakra bisa tuh.
1:43:06Tapi kayaknya udah gak jalan ya.
1:43:08Terus akhirnya buat Edge
1:43:10pakai full
1:43:12Chromium. Udah pakai Chromium
1:43:14aja.
1:43:16Biar bisa lonceng.
1:43:18Biar bisa lonceng cepet.
1:43:20Node tercipta dari kesalahan.
1:43:26Ya kan lesson learned.
1:43:28Yang dipelajari kan
1:43:30awalnya dia gak punya pengalaman
1:43:32berarti si Ryan Dahlnya waktu bikin
1:43:34Node itu adalah
1:43:36junior
1:43:38platform engineer.
1:43:40Junior platform engineer. Sekarang dia udah senior
1:43:42udah pengalaman berapa puluh tahun
1:43:44menjalankan
1:43:46ekosistema GS.
1:43:48Makanya dia pelajari dari sana kesalahan-kesalahannya
1:43:50berusaha untuk tidak
1:43:52diulangi di Deno.
1:43:54Dan dia literly jadi
1:43:56malahan sebagai gimmick ya.
1:43:58Kan talk yang tadi di talk
1:44:002018 itu judulnya aja
1:44:0210 Mistakes.
1:44:04Sebenarnya Deno itu
1:44:06bukan tercipta dari kesalahan menurut saya ya.
1:44:08Deno itu tercipta
1:44:10untuk menemani Node.
1:44:12Ini Khalil Gibran
1:44:16lagi bukan?
1:44:18Nah itu baru
1:44:20ini baru kocok
1:44:22Khalil Gibran.
1:44:24Deno itu hadir bukan untuk memecah
1:44:28belah tapi untuk mempersatukan.
1:44:30Ya gak nonton episode lalu bingung kenapa
1:44:36kebetulan Khalil Gibran masuk.
1:44:38Semua ini.
1:44:40Iya betul.
1:44:42Kalau V8
1:44:44bisa ngalahin, bukan ngalahin ya.
1:44:46Mungkin seimbang lah ya.
1:44:48Sebenarnya 11-12.
1:44:50Node juga kenceng.
1:44:52Apa yang membuat Node
1:44:54performanya kurang bagus?
1:44:56Yaitu ada security-nya.
1:44:58Dia harus jalanin legacy code-nya.
1:45:00Make sure
1:45:02code-code yang dulu kita versi
1:45:04berapa itu masih tetap jalan.
1:45:06backwards compatible
1:45:08sebisa mungkin ya.
1:45:10Karena dia kan bukan hal yang baru.
1:45:12Beda sama Deno atau
1:45:14Bun.
1:45:16Mereka bisa dengan gampang bilang
1:45:18kita gak compatible sama Node.
1:45:20Kalau mau kita siapin nih
1:45:22migration tools-nya misalkan gitu.
1:45:24Yaudah itu berarti create dari awal.
1:45:26Nah mereka juga
1:45:28harus mengakomodasi itu.
1:45:30Akhirnya kan semuanya juga mau bikin compatible
1:45:32sama Node kan.
1:45:34Check replacement kan langsung.
1:45:36Karena pasarnya di sana.
1:45:38Gak ada, susah.
1:45:40Gak ada yang lirik.
1:45:42Jadi malas
1:45:44orang. Karena pas apa
1:45:46si Node.js ini
1:45:48udah kebentuk ekosistemnya.
1:45:50Jadi kalau mau
1:45:52banyak yang pake, ya harus
1:45:54mengakomodir user dari
1:45:56Node juga.
1:45:58Oke.
1:46:00Cukup?
1:46:02Buat malam ini? Cukup ya?
1:46:04Cukup.
1:46:06Kapan-kapan Deno fresh
1:46:08sendiri lah.
1:46:10Bukan minggu depan ya, tapi
1:46:12beberapa episode mendatang kita mungkin
1:46:14akan bahas tentang fresh juga.
1:46:16Kita penasaran
1:46:18gimana ininya. Mudah-mudahan
1:46:20adalah setidaknya satu
1:46:22framework
1:46:24di JavaScript yang
1:46:26lengkap gitu ya.
1:46:28Selengkap ekosistemnya Laravel
1:46:30atau Ruby on Reds atau
1:46:32lagam yang lain. Jadi kan
1:46:34itu ya.
1:46:36Enak pakenya. Mungkin entah itu
1:46:38Deno fresh atau
1:46:40Astro atau yang lain ya gak apa-apa.
1:46:42Tapi ada option kesana.
1:46:44Bukan kalau yang lengkap dari web app-nya doang
1:46:46udah di Redwood. Cuma kalau
1:46:48Deno fresh ini kan karena
1:46:50se-ekosistemnya doang.
1:46:52Sampai ke deploy semua kan. Sampai runtime,
1:46:54sampai deploy, sampai hosting database.
1:46:56Iya, database-nya juga ada.
1:46:58Semuanya ada.
1:47:00Termasuk juga
1:47:02beserta ininya ya, vendor
1:47:04login-nya ya. Jangan lupa.
1:47:06Ya, itu kan plus-minus. Mau
1:47:08enak pas bikin. Kan bikinnya berarti gampang
1:47:10tuh. Gak usah debat ini, itu.
1:47:12Mau open router apa, database apa,
1:47:14test runner apa. Bikinnya gampang.
1:47:16Ya, ada risikonya.
1:47:18Betul-betul.
1:47:20Iya. JavaScript core
1:47:22difokuskan untuk efisiensi
1:47:24memori. Bisa jadi. Mungkin
1:47:26usage-nya lebih kecil kali ya.
1:47:28Wow, Rust juga udah ada
1:47:34full stack JavaScript ya.
1:47:36Menarik juga ini.
1:47:38Kita cek-cek nanti.
1:47:40framework di mana-mana. Help.
1:47:42Iya. Tapi kita harus belajar bahasanya.
1:47:44Itu kendalanya.
1:47:46Kalau kayak, ini kan
1:47:48JavaScript sama-sama JavaScript.
1:47:50Nah, itu buat developer
1:47:52Rust yang emang bukan
1:47:54saya, mungkin latar-latar
1:47:56belakangnya dari. System engineer ya,
1:47:58system engineer. Terlalu gak mau belajar
1:48:00JavaScript dan C-JavaScript, ya udah.
1:48:02Semua ada pasarnya, senang.
1:48:04Semua ada pasarnya.
1:48:06Oke.
1:48:08Karena semua ada pasarnya, kita ketemu lagi
1:48:10minggu depan. Nggak nyombong.
1:48:12Kalian lagi, brah. Karena
1:48:16besok pagi saya mau
1:48:18ke pasar, jadi kita
1:48:20sudah itu saja. Sudah malam.
1:48:24Nggak nyombong.
1:48:26Oke. Sampai jumpa minggu depan.
1:48:28Selamat malam, selamat istirahat. Bye bye.
1:48:30Bye bye.
Suka episode ini?
Langganan untuk update episode terbaru setiap Selasa malam!
Episode Terkait
17 Apr 2024
Ngobrolin OOP di JS - Ngobrolin WEB
Yuk mari kita diskusi dan ngobrol ngalor-ngidul tentang dunia web. Agar tetap up-to-date dengan teknologi web terkini. ...
30 Apr 2024
🔥 UI Component Library: Pakai atau Gak?! Untung Rugi, Tips Memilih, & Pengalaman Developer!
Video ini membahas tuntas tentang UI Library! Kita akan bahas keuntungan dan kerugiannya, kapan sebaiknya tidak digunaka...
6 Mei 2025
Ngobrolin TanStack - Ngobrolin WEB
Yuk mari kita diskusi dan ngobrol ngalor-ngidul tentang dunia web. Agar tetap up-to-date dengan teknologi web terkini. ...