Lompat ke konten utama
EP 100

Ngobrolin Deno

Ringkasan Episode

Bantu Koreksi

Episode 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

Yuhuu, halo.

Pemirsa-pemirsa, para pemirsa.

Kereta akan segera diberangkat kan.

Oh keren pasti.

Kan itu gue tungting-ting-ting.

Kalau mau ke Bandung dengernya itu.

Bioskop lagi.

Kalau us, pake suara itu juga enggak.

Punya us lah.

Us punyanya enggak us.

Enggak sih, punyanya us sendiri.

Us itu yang paling nge-brand us itu.

Us, us, us, yes.

Iya, sepanjang perjalanan tuh us, us, us.

Sepanjang perjalanan ya berapa unit.

Lama-lama ke-brand us loh.

Kita jadi ngomongin kereta.

Kalau teman-teman semuanya apa kabar?

Mudah-mudahan, sehat-sehat.

Apa namanya, enggak bosan, seminggu ketemu kita.

Kalau senin hari-hari lain.

Kita tidak bosan.

Pasang malam waktunya ngobrolin web.

Kita tidak bosan-bosan ketemu teman-teman.

Tidak bosan-bosan ngobrolin web.

Tidak bosan-bosan ngobrolin web, karena...

...papinya banyak ya.

Iya, enggak bisa habis.

Kita udah mau dua tahun.

Tapi topiknya enggak bisa habis.

Lihat transkrip lengkap (2640 segmen lagi)

Kita diuntungin ekosistem yang agak FOMO juga.

Enggak FOMO sih, cuma banyak.

Ya.

Remote-nya banyak, bermunculan.

Tapi misalnya ekosistemnya kayak Java atau apa gitu.

Sebelah gitu, kayak Android misalnya.

Wah, ngajak ribut.

Pemprovokasi.

Oh, iya.

Kalau Android masih mending ya.

Kalau kayak misalkan iOS gitu, Swift.

Ya, kita berarti...

...ngobrolin Swift-nya gitu.

Berarti setan sekali nunggu WWDC aja.

Update-nya di situ kan.

Separi dan teman-temannya.

Mungkin ada minor-minor update gitu loh.

Ya, jadi malam hari ini...

...saya akan ngomongin tentang...

...Deno ya.

Seperti yang kita janjikan minggu lalu.

Kayaknya menarik karena Deno akan segera...

...merilis versi 2-nya.

Nah, kita ini...

...kayaknya belum ada yang...

...belum ada yang menggunakan ya.

Tapi kita udah tahu sih...

...Deno ini dan cukup...

...cukup menjanjikan.

Bersama dengan...

...Boon juga.

Boon.js.

Ada banyak ya sekarang ya.

Runtime JavaScript selain Node.

Ada...

...Deno.

Kemudian muncul Boon.

Codeflare juga punya sendiri.

Dan punya...

...Lambda juga itu dia...

...sendiri juga.

Dia ngeluarin yang open-source juga.

Jadi ada banyak.

Nah, salah satunya yang paling...

...setelah Node.js adalah...

...Deno.

Tapi yang berbeda aliran sendiri...

...yang berbeda aliran sendiri itu cuma...

...Boon.

Kalau Cloudflare dia pakai...

Gak pakai lib UV masalahnya.

Gak tahu, Cloudflare pakai apa.

Kalau yang lain...

...mungkin pakai lib UV.

Kalau Deno...

...yang menarik adalah Node sama Deno itu...

...sama-sama menggunakan V8.

Yang dibuat orang yang sama sih.

Iya.

Dan...

...yang membedakan...

...cuman Boon ya, pun dia pakai...

...Java Script4-nya Safari atau WebKit ya.

WebKit.

Deno itu...

...Node perjuangan lah.

Perjuangan, tapi dia juga...

...yang bikin.

Bukan pakai Node, tapi gak puas.

Ada sesuatu yang beda...

...yang pengen dikasih, tapi yang bikin sendiri.

Yang gak puas, penasaran...

...yang bikin yang baru.

Jadi cerita...

...sejarahnya sedikit...

...yang bikin Node gas itu kan Rian Dahl.

Sama juga yang bikin Deno juga.

Nah, ketika dia bikin Node...

...dia tidak menyangka...

...bakal sepopuler...

...sekarang.

Dan yang salah satu...

...penyesalan terbesarnya adalah...

...tidak bisa mengontrol...

...NPM.

Jadi nanti mereka akan...

...berinnovasi ke arah sana juga.

Karena NPM itu lumayan apa ya?

Kalau sekarang mungkin udah lumayan...

...teratur ya. Kalau dulu itu...

...karena yang...

...handle itu komunitas, jadi...

...sangat berantakan.

Cukup sering kejadian ada...

...paket yang...

...tiba-tiba...

...dimatiin atau mematikan dirinya sendiri.

Terus paket yang lain...

...ikut merasakan akibatnya.

Terus ada yang...

...inject malicious code.

Iya, inject malicious code.

Terus ada yang mining juga.

Jadi kan misalkan monggo dibi kita...

...bagikan kembali.

Monggo dibi mungkin...

...nggak pake N gitu, monggo dibi.

Kadang-kadang kan kita typo.

Jadi manga, kalau misalnya dia orang Jawa ya kan...

...monggo dibi, dia tulisnya...

...mangga gitu.

Sampai akhirnya...

...NPM jadi...

...perusahaan sendiri.

Dan itu juga...

...pro-kontra ya.

Iya.

Susah ya.

Community run...

...mesti ada masalahnya.

Di protes jadi perusahaan...

...ya di protes.

Karena ada...

...kebijakan tertentu...

...kebijakan tertentu...

...yang istilahnya...

...mengutamakan...

...profit kan. Ini kan perusahaan...

...yang berbasis profit.

Kalau...

...perusahaan tidak berbasis profit...

...namanya bukan perusahaan, namanya yayasan.

Iya, namanya yayasan. Betul.

Jadi kalau ada perusahaan...

...yang tidak mengambil untung...

...itu aneh justru.

Mendingan dia bikin yayasan aja...

...sekalian.

Atau jadi tempat...

...juga dia rugi mulu jadi tempat...

...cuci uang.

Nggak, jadi tempat cuci uang.

Criminal mind gitu.

Cuma NPM itu kan jadi...

...masih nggak pengapa-ngapain problematik...

...karena bisa dibilang monopoli...

...juga ya. Coba yang...

Registrinya satu-satunya ada di NPM.

Registri package banyak...

...ya kan nggak...

...itu fokus di NPM.

Package manager banyak.

Private... private info kan...

...bisa. Bisa sekarang. GitHub...

...bisa. GitHub bisa.

Iya, tapi kan...

...kalau package manager banyak.

Ada IAN, ada PNPM, ada apa lagi...

...gitu. Ada banyaklah pokoknya.

Tapi, registrinya tetap di NPM.

Registrinya semuanya ada di NPM.

Sepertinya sistem JavaScript ini...

...harus mulai belajar dengan...

...ekosistemnya Linux kali ya.

Repo-nya itu bisa tersebuah...

...distribusi kemana-mana.

Iya ya, benar juga ya.

Biar nggak monopoli.

Debian kita mau ambil dari...

...kemana ada mirror-nya nih selalu.

Iya ada mirror-nya di lokal gitu ya.

Apalagi NPM itu terkenal...

...dengan ukurannya...

...juga besar ya.

Itu juga yang coba...

...diperbaiki sama bun juga ya.

Dino ya.

Dino.

Bacanya Dino.

Dinosaurus ya.

Logonya Dino.

Ya kan itu kan sebenarnya kan...

...ketidak kreatifan...

...memilih nama kan.

Dino, dibalik aja.

Dino.

Malas mikir nama lagi.

Nanti kalau misalnya terakhir banget...

...apa, itunya done.

D-O-N-A.

Dibalik-balik aja.

Ya, jadi kan si Rian Dal ini...

...time pertamanya itu adalah bikin Node.js.

Bukan bikin bahasa kan ya.

Bikin runtime.

Yang akhirnya dia pilih...

...bahasanya JavaScript.

Dengan engine V8.

Dengan engine V8.

Nah, terus...

...dengan pengalaman dia...

...sudah menjalan apa, sudah...

...mendevelop si Node ini.

Akhirnya dia bikin sesuatu yang baru.

Pengen start dari awal lagi.

Makanya dia bikin Dino...

...dengan cara yang lebih ideal menurut dia.

Dia bikin perusahaannya.

Dia bikin gimana skema monetisasi.

Terus...

...produk-produk ekosistemnya dikembangin.

Mungkin diinitiasi...

...oleh perusahaannya.

Tapi dikembangin juga oleh kemampasan.

Kayaknya semua yang dia penasaran sebelumnya.

Pokoknya dia bikin Node kan...

...bikinnya kayak santai...

...ekspektasinya nggak tinggi.

Ya taunya dipakai seluruh dunia.

Kalau misalnya di Ubah-Ubah...

...atau di Utak Atik yang terlalu ekspektif.

Dia moksi dunia.

Jadi kayaknya semua unik-uniknya...

...dia catet kali ya.

Terakhir pas dia ada waktu luar...

...dituangin semua di Dino.

Kan ada itu.

Ada talk dia kan...

...waktu launching Dino itu.

Ada talk di Node.js Conference...

...yang dia bilang 10 Mistakes...

...when I develop Node kan.

Itu salah satu yang cukup konversial juga.

Kalau di artikelnya buka.

Kalau linknya kan video...

...ada artikel recapnya nggak?

10 Mistakes.

Sama perbedaan Dino awalnya apa sih?

Sama Node.

Perbedaannya.

Awalnya dia dikembangkan...

...dengan Go...

...kemudian pindah keras.

Kedua...

...kalau Note kan pakai C++ ya.

Kedua...

...dia bisa...

...menjalankan TypeScript...

...tanpa harus transpilasi.

Yang saya tahu itu.

Yang lain belum tahu.

Kalau perbandingannya ada itu...

Tapi bukan TypeScriptnya...

...dia compile secara...

...core kan.

Dicompile kan.

Bukan kayak diignore...

...kayak Node.

Bukan kayak Node yang minus-minus ignore...

...itu kan.

Bukan.

Dia engine-nya bisa ngebaca TypeScript gitu.

Dicompile dulu ya sebetulnya.

Dibalik layar.

Jadi engine-nya itu...

...sudah bisa mengerti TypeScript.

Ya langsung aja langsung...

...jalanin gitu.

Jadi bisa langsung import...

...kalau si Node kan harus...

...require dulu jaman dulu tuh.

Kalau jalanin Node.

Nah ini videonya sih.

Ada ringkasannya tuh...

...di Project Chat.

Oh ada ya?

Ternyata 2018 loh.

Udah lama. Udah 6 tahun.

Sebaru-barunya kita mikir...

...ini baru. Itu udah lama udah 6 tahun.

Ini baru ya.

Ya pada saat...

...dia muncul kan kita masih meraba-raba...

...kan ini...

...ini gak sih? Ini...

...isilahnya gimana ya?

Ini adalah barang...

...yang dia bikin. Terus dia menjelek-jelekan...

...barangnya. Terus dia bikin baru gitu.

Itu kan kayak ada konotasi negatif gak sih?

Ya tergantung...

...perspektif.

Menarik. Apa?

Fenomenanya menarik. Ya kalau...

...negatif atau enggak kan tergantung orang lihat.

Cuma maksudnya mindset-nya sih yang...

...cucu aja jarang ada.

Ini ringkasannya pendek banget sih.

Secure TypeScript Runtime...

...on V8. Dynamic...

...languages.

Berhubungan dengan security banyak...

...kan ya?

Terus gak pakai promise di awal.

Terus juga...

...pakai apa? Common JS.

Bukan pakai ISM langsung.

Kan dulu belum ada kali ya?

Dan dia menyesali...

...pakage JSON.

I don't know why.

Cuma yang lucu ini.

Soalnya di Indo kan...

...importnya bisa langsung dari URL.

Gak perlu pakage JSON.

Safe-nya di...

Bisa langsung.

Tetap ada di Cache lah.

Tapi bisa langsung...

...define kayak gitu. Udah ya?

Udah gitu doang. Cuma lucu aja sih...

...tweet-nya Brandon Aito yang bikin...

...JavaScript dalam 7 hari.

Iya.

Aku sejak...

...95.

Regret terus ya?

Kalo lagi ngedesain program...

...terus kayaknya lucu nih tambahin.

Itu akan selalu menyesal...

...yang dilakukan.

Nah, temen-temen harus banget...

...nonton sih. Kalo saya bilang sih...

...harus banget nonton. Karena...

...banyak hal yang menarik ya. Selain ngomongin...

...tentang Node dan Dino.

Jualan gitu ya.

Sempet ada yang cukup kontroversi.

Dia kan...

...waktu abis dari Node...

...dia kan masuk ke tim Google kan ya.

Dia dipekerjakan oleh Google.

Entah ngedeain apa. Kayaknya machine learning...

...something lah gitu.

Tapi di talk ini...

...dia sempet bilang...

...that is a mistake.

Padahal dia kerjain...

...di Google.

Ya, dia mengkritik orang lain...

...dan mengkritik diri sendiri.

Ya, pointnya semua ada kritik.

Harus lah, harus ada orang gitu.

Maksudnya kritiknya kan ada alesannya mungkin.

Nah, link satunya tuh...

...perbandingannya. Maksudnya bagus...

...ada poin-poinnya.

Itu browser apaan sih?

Kok tab-nya lucu?

Tab-nya...

...masa namanya Min.

Tapi...

...chromium-based.

Ya sih, familiar.

Tab-nya aja yang lucu.

Nah, ini nih. Zoom in.

Zoom out, tikit aja...

...biar sidebar-nya ada.

Zoom out sekali. Nah...

Node.js 2019.

Ditulis dengan C++.

Anak atas.

Kok Dino dulu?

Dino.

Dino.

2018.

Dino confuse the one with a Dino.

Ancient creature.

Blah-blah-blah.

Karena ada kekurangan dari...

...karyanya dia sendiri...

...untuk JS.

Dino is a secure JavaScript...

...typescript runtime built on VK.

Based on...

...V8 Rust Tokyo.

Tokyo itu apa?

Tokyo itu library Rust...

...untuk menjalankan...

...asynchronous, kalau nggak salah.

Kayak buat mensupport...

...behavior asingnya Dino.

Asingnya Rust.

Terus kalau Node.js...

...ditulis...

...dengan C++ dan JavaScript.

Kayaknya 2019...

...Taipo deh, sebelum 2019.

2009 kali?

Iya, Taipo.

Lohko cara install.

What is the difference?

2009 betul, Taipo.

Benar ya?

Yang pertama, security.

Karena Node nggak ada...

...security sama sekali.

Kalau Dino, misalkan kita mau pakai...

...HTTP...

...HTTP gitu, gitu kan ya.

Restrictive default security.

Jadi kalau Node itu...

...by default dia dibuka...

...kita yang punya...

...tanggung jawab untuk menutup, sedangkan Dino kebalikannya.

Jadi defaultnya ketutup.

Kalau mau buka, baru...

...kita yang jalani.

Karena sekarang dia sanggup bisa dijalani...

...di server apapun, di IoT, kayak...

...penggunaannya luas banget. Kayaknya dulu dia...

...pas bikin Node S ya, kayak...

"Apa lagi mau buat web server?"

Iya, kan karena...

...apa namanya? Karena...

...dia belum berpengalaman...

...itu kan...

...belum berpengalaman menjalankan...

...apa...

...mendevelop sebuah runtime.

Ini kok ada...

Kok login...

...kok gue login pakai...

...account gue...

...Youtube...

...kok pakai... jadinya Riza...

...yang comment.

Gatau. Apa gara-gara udah diangkat...

...jadi admin nih?

Gak tahu deh.

Udh, sudah diangkat jadi admin.

Setelah menggita kandang, terus dia...

...menyesal bikin lagi. Onet.

Permutasinya empat huruf itu berapa ya?

Bisa ada berapa macam...

...empat huruf itu, kayak...

...kalau dicampur-campur, permutasinya ada...

...berapa harian, yaudah itu berarti dia buat...

...itu lah runtime yang bakal...

...NDOA.

Terus aja.

Ya. Ini...

...apa, orang-orang seperti itu...

...yang masuk kategori...

...ih, gue bikin Node.js...

...begini amat. Yuk bikin...

...baru yuk. Gampang banget kayaknya.

Apa kayak bikin framework...

...gitu. Si apa?

Si Ryan...

...Carniato, ya? Di kantor...

...bikin apa? Ngerjain framework.

Malam di rumah...

...bikin framework.

Di kantor kayaknya nggak enak banget...

...pakai framework-nya, padahal dia yang bikin...

...dan teman-teman yang bikin. Sampai rumah dia bikin lagi...

...bikin sendiri.

Terlalu...

...terlalu gabut atau gimana ya?

Ya butuh penyaluran.

Butuh penyaluran.

Dia kayaknya...

...kesel kali ya.

Apa sih ini framework? Mau bikin ini...

...aduh, sudah terlanjut banyak yang pakai...

...rubah-rubah lagi. Biasanya...

Iya, kalau dia rubah, itu dimarahi banyak orang.

Not.js sama Dino juga ya.

Not.js, siubah-ubah.

Berantakan satu dunia...

...gitu ya.

Modules.

Nah, yang tadi saya sebutkan.

Dia juga menyesal menggunakan CommonJS.

Karena importnya pakai Empire.

Dan ribet...

...kalau kita sekarang bikin library...

...specifically...

...jadi...

Iya, jadi panjang kodanya.

Jadi panjang.

Sama...

...itu...

...merembit juga ke NPM.

NPM itu kan menerima segala...

...macam bentuk modul kan.

Dari ESM...

...CommonJS, macem-macem kan.

Jadi...

...kayak kebun binatang.

Tidak teratur.

Jadi...

...apa namanya...

...kadang dulu ada yang library maintainer...

...itu...

...harus punya...

...berbagai versi supaya bisa dipakai di front-end...

...sama di back-end.

Ada tuh yang kayak gitu.

Package management.

Package management juga dia cukup menyesali.

Makanya dia kurang suka dengan...

...package JSON ya.

Nah, itu atasnya. Kalimat atasnya working with...

...not.js. You should also...

...use NPM kayak...

...management modulnya.

Oh, jadi...

...kayak beda ini ya, beda barang.

Kalau pakai not.js, jadi kepaksa...

...harus pakai NPM.

Kemudian standard modulnya juga...

Dino tadi nggak perlu...

...pakai JSON ya?

Gak perlu pakai apa?

Package.json dia nggak perlu. Jadi kalau mau install...

...dia...

...standard.

Oh, tapi tetap ada disipen...

...di dalam...

...not.modules kan?

Ya, ya.

Gak tau ya, not.modules atau bukan ya.

Nanti kita coba aja.

Standard modul.

Dua-duanya ada...

...standard modul ya. Modul built-in...

...maksudnya.

NPM package...

...in edge of the...

...not.js battle...

...in edge of...

...you can be sure that more specific task...

...can also be performed.

Third-party modules.

Nah, Dino itu bisa directly.

Jadi misalkan kita...

...upload...

...rebrary ke...

...bucket S3 atau...

...apapun ya.

Terus kita bisa langsung dari URL...

...aja.

Jadi ini file-nya import...

...from HTP...

...blablabla.

Kata Mas Andi itu...

...gak ada not.module.

Adanya deno.modules, enggak.

Gak tau itu disimpannya...

...dimana ya. Dia pasti download kan.

Mungkin di...

...global ya. Di global cage kali ya.

Kayak PNPM kali ya.

Jadi satu. Jadi gak...

...makan tempat.

Di directory.dino.

Oke.

Sendle file executable.

Oh ini kalo pake...

...kalo kita mau...

First Class TypeScript.

Nah...

...ini salah satu keunggulannya.

Ya, First Class TypeScript.

Dianggap...

...salah satu...

...most critical benefits.

Keuntungan...

...paling...

Iya, jadi gak perlu pake TSC...

...untuk compilasi dulu atau...

...transpilasi.

Dia bisa langsung.

Security. Yang tadi udah disebutkan...

...kalo Dino itu by default dia...

...security-nya udah dinyalain.

Kalo not kebalikannya.

Package management...

...itu dia pake URL kan.

Oh kayak ini ya.

Kayak gue ya.

Iya.

Yes.

Tapi kalo mau install dari NPM...

...juga bisa kan ya?

Bisa, bisa.

Baru Dino 2 kan.

Dino 2 baru bisa NPM kan.

Iya gak sih?

Oh iya ya.

Gak tau juga.

Selayaknya script tag.

DATML.

Enak ya.

Istilahnya kita tidak tergantung...

...ke satu entity.

Dalam hal ini NPM registry.

Jadi kalo misalkan katakan lah...

...oh ternyata library-nya udah...

...gak di maintain lagi nih.

Udah di unpublish.

Ya. Aplikasi kita rusak dong.

Jadi kita bisa download dan kita bisa...

...ake itu gitu.

Jadi tidak tergantung kepada satu entity.

Itu bagusnya.

Atau bisa langsung sendor dari Max CDN.

Iya.

Kita bikin library gak usah...

...capa-capa NPM publish itu loh.

Kalo misalnya versioning...

...atau apa. Cuma ya itu...

...pegang mata 2 sih.

Kan bisa berubah isinya.

Betul.

Tapi praktis aja.

Jadi baru Dino 2 yang super NPM ya.

Kalo sekarang belum ya.

Terparti module tadi udah kita bahas nih kan.

Oke. Mari kita lihat...

...ke versi 2. Ini saya belum coba sih.

Tapi kita pengen tau ada update apa.

Oktober 4 ya baru ya.

Baru akan launching.

Gak ada sih mas itunya.

Ryan Dalman.

Ya kan bukan dia yang...

...block.

Dia cari duit.

Dia bikin Dan sekarang.

Dia lagi nyata dulu.

Ten mistakes lagi.

Publish.

2 minggu lalu.

Fixed box. Edit feature.

New permission flag.

Kalo mau nge-import module...

...via HTTP.

Dia gak perlu express.js lagi mas.

Dia bisa langsung sendiri.

Dan dia udah punya framework juga.

Kalo market gak bisa.

Bisa.

Bisa ya?

Ada HTTP module.

Bisa.

Tapi gak bisa routing.

Routingnya harus bikin sendiri.

Switch else.

Switch default.

Bisa.

Terus running program...

...that use NPM package...

...with not API add-on...

...will now provide helpful hints.

Dia kasih tau ya kalo ada error.

Cannot find module.

Language server quick fix.

Salah satu yang menarik juga...

...dari Gino adalah...

...bisa install NPM, apa? Definitely type.

Goodbye.

Language servernya disediain.

Definitely type.

Betul.

Language servernya disediain.

Kemudian formaternya juga disediain.

Dino format.

Kalo boon sama note gak ada.

Bisa pakai dino format.

Jadi kita install dino...

...buat jalanin format untuk not.js.

Itu bisa.

Kenapa?

Biar...

...kalo gak mau pakai...

...gak mau pakai biome...

...gak mau pakai ESLin...

...atau pretier...

...bisa pakai dino FNT.

Ini kiblatnya...

...sangat boong sekali ya FNT ini.

Padahal dia pakai RAS ya?

Iya.

Sebelumnya dia pakai Go sih.

Ya mungkin selama...

...pas lagi jadi...

...pada ke buku.

Iya.

Sebelum launching dia rewrite dulu.

Ini unik juga sih.

Note buffer crypto...

...udah didukung.

Window.

Kalo kita pakai window...

...di server kan gak bisa.

Bisa dikasih tau bahwa itu adalah error.

Sebelumnya gak error gitu.

Ya gak errornya.

Errornya jelas.

Ada hintnya.

Bukan undefined doang ya.

Ada petunjuknya.

Waduh lu pas baru belajar...

...webdev terus cuma belajarnya...

...kayak sembarangan doang kopas-kopas.

Paling sebuli gak ngerti kenapa...

...local storage-nya bikin error.

Oh...

...ini pencinta Go.

Tapi kenapa rewrite pake Rust?

Ya itu saya gak tau sih.

Wait, pencinta Go-nya disini...

...programming language Go...

...golang atau catur Go?

Mainan Go.

Ya dikira-kira aja lah.

Ini bug fix kita gak usah bahas lah ya.

Apa lagi?

Tutorialnya ada gak?

Tutorial?

Getting Started kali ya.

Nah, sebelum ke tutorial...

...liat deh produknya banyak.

Dino pastinya.

Ada Fresh, ini web framework-nya.

Kemudian ada JSR.

Kita lihat sesuatu ya.

Kayak Blast Solution ya.

Official Solution.

Official Solution.

Ala-ala...

...Rafael kali ya.

Jadi ini adalah...

...web framework-nya...

...si...

...Dino...

...yang sudah ada...

...ini...

...DSX-nya.

Syntax-nya JSX ya.

Enak ya.

TSX by default.

Oh, ini Mikodin Server Rendered...

...Preact Component.

Include Preact.

Oh, pakai Preact ya.

Oh, ini mirip-mirip kayak Hono kemarin ya.

Jadi...

...kita bisa bikin server, tapi...

...endplate-nya pakai DSX...

...model kayak gitu ya.

Yang developer jamit sekarang...

...udah familiar.

Ini dia kayak fan service...

...kayak ngemanjain...

...ekosistem...

...front-end atau full stack...

...web web JS ya.

Kayak dibikin senang, dibikin...

...tertarik.

TypeScript by default.

Island-based signals.

Semangat.

Form the right way.

Oh, dia pakai ini ya.

Pakai web standar ya.

Pakai web API.

Semua senang.

Nggak semua.

Ada yang nggak suka juga kali.

Nggak, cuma ini kan target audience...

...target audience-nya...

...berarti front-end dev kan...

...atau web developer-nya yang bikin...

...web app-nya based on...

...apa tadi? Didn't know.

Bisa stream.

Html over the wire juga...

...ini dong berarti.

Hah? Kayak Htmx?

Html over the wire.

Kayak Htmx.

Oh, nice.

Itu itunya.

Ini maksudnya kalau button-nya diklik ya?

Coba aja.

Coba ya.

Pakai tailwind.

WS, WS, kayak WS, WS.

Pusing ya.

WS, itu filter...

...resource-nya.

Ini WS atau Html?

Atau Http?

Fetch mungkin.

Mana dia?

Berarti Http, Fetch, berarti Fetch.

Nah.

Yang dikirim adalah?

Oh, Html.

Wow.

Ya kan yang dikirim itu.

Tapi itu ada partial-nya.

Partial-nya aja.

Ada attribute-nya tuh...

...buat indikate f-.

Yang dikirim full.

Nah itu fresh, titik 2 partial, recipe 0.

Iya, yang ini kan.

Iya, yang dikirim berupa...

...halaman Html full.

Berarti bisa kayak Htmx kemarin dong?

Iya, sama.

Maksudnya page content-nya di-slot ke satu...

...indicated parent element.

Wow.

Ada ini lagi ya, mainan baru ya.

Oh, e-commerce udah ada yang banget.

Niko TX.

Brazil top e-commerce platform.

Gimana ya, e-commerce di Brazil?

Masa Indonesia kali.

Loh, kok ini?

Gak e-commerce.

Bukan e-commerce.

Bukan editor.

Kalah link gitu?

Nah itu screenshotnya editor.

Oh, e-commerce platform tuh...

...maksudnya kayak Shopify gitu kali ya?

Oh dia bikin kali ya.

Dia yang melayani...

...orang-orang yang bikin domain sendiri, pakai domain sendiri.

Oh, mirip ini dong.

Mirip kayak Builder ya.

Kayak Quick juga kan.

Dia bikin produk di atasnya ini.

Sphere kayak gini-ginian ada gak sih?

Hardware-nya lucu, SphereKit.

Sphere...

...sama SphereKit aja, baru...

...ekosistemnya gak begitu jalan.

Karena Sphere...

Ada bikin over the wire?

Over the wire, gak tahu.

Cuma kalau yang edge atau...

...streaming, blablabla ya.

Ada adapter-nya kan ya.

Oke, ini fresh sudah.

Berikutnya ada...

Arthur-nya lucu ya.

Gak penting sih.

Arthur-nya lucu.

GSR ini adalah...

...kumpulan repository...

...yang sudah dikurasi.

Jadi ini hanya khusus untuk...

...IS module, yang bisa IS module aja.

Dia bikin lebih demokratis gitu.

Kayak maksudnya gak...

...ke patok, ke NTM doang.

Dari URL apapun ada.

Tapi buat starting point-nya dia kayak punya...

Dia bikin yang blessed ya.

Ini loh, contohnya kayak gini.

Made for TypeScript NTSM.

Supaya gak nyampur, supaya gak glotit.

Tapi menurut...

...beberapa...

...kali di interview GSR ini...

...yang menggantikan NTM.

Karena dia beberapa package-nya...

...juga dari NTM.

Jadi server-nya tetap di NTM.

Dia cuma indexing dan kurasi aja.

Sama lebih kayak buat starting point kali ya.

Buat standard-nya kayak gini loh.

Kayak nunjukin kayak gini loh bentuknya.

Mau pakai package...

...manager apapun bisa.

Dan buat random apapun bisa.

Kita cari ya.

Express.

Ada gak?

Gak ada.

Ini juga mirip ya.

Lah kan cuma narik dari...

...NTM.

Import-nya pakai...

Bisa direct ya. GSR titik 2.

Ono and Ono.

Kalau mau...

...pakai yang dari GSR.

Udah bedanya itu aja ya.

Oh ini dia.

Itu produk kedua.

Eh produk ketiga.

Leno, fresh, GSR.

Terus ada yang for enterprise.

Oh menarik nih.

Kadang kan kalau buat...

Ini agensinya.

Agensinya.

Sama buat money maker-nya kan.

Bukan kadang. Pasti kalau misalnya...

...mau pakai di production...

...lempat kerja ya pasti kan.

Yang sering kita bahas kan.

Gak boleh cuma suka-suka developer-nya...

...yang pengen nambahin link in portfolio.

Cuma maksudnya gimana kedepannya.

Ada yang reliable...

...yang bisa support atau enggak.

Ya jawabannya ini.

Netlify serverless...

...yang Netlify function itu...

...pakainya Dino.

Kenal saya.

Selain ternyata pakai juga.

Deco yang tadi, aku baru tiga ya.

Yang enterprise.

Next-nya lagi ada...

...Dino Deploy.

Ini hosting, berarti...

...pesainnya kayak Vercell...

...atau Netlify.

Ya, jadi...

...kalau mau...

Cloud Service ya?

Cloud Service bisa pakai...

...Komi.

Terus ada satu lagi sebenarnya.

Tapi di sini belum ada ya. Mungkin karena belum...

...masih uji coba kali ya.

Supaya hosting ini apa?

Don't let customer code...

...become a security nightmare.

Sandbox.

Sandbox, tapi...

...kayak di partisi...

...security focus.

Ya itu use case-nya kayak...

...yang di testimonialnya itu tadi.

Netlify edge function.

Kan, itu...

...risikan banget ya. Orang bisa bikin...

...edge function buat...

...tujuan yang macem-macem...

...dan aneh-aneh.

Dia pakai sub hosting tadi.

Benarnya ada satu lagi.

Denum Cafe.

E-value store...

...database.

Tapi mungkin karena masih beta, belum dimasukin kesini.

Belum ada link-nya.

Belum ada link-nya.

Jadi ini kayak Redis ya.

Berarti concept ya?

Apa? Ecosistemnya lengkap banget ya?

Check up no thank you.

Langsung aja tuh.

Dan karena dia...

...bisa deploy ke edge.

Jadi database-nya juga...

...ngikutkan ke situ kan.

Terus kalian, magic.

Database for JavaScript.

Database for JavaScript.

Itu kan memanjakan...

...kayak web dev.

Kayak gini-gini.

Jadi ini nggak sih?

Vendor log in.

Betul.

Rantai sama...

...se-ekosistemnya ya vendor log in sih.

Pastilah Node.js juga vendor log in.

Node.js.

Bisa, bisa ya, bisa nggak.

Tapi kan Node.js lebih terbuka dibandingkan ini.

Iya sih, karena nggak selengkap ini.

Nggak cover semua.

Kalau misalnya tadinya pakai Node.js...

...mau pindah ke golang, ya tetap...

...back-end harus ter rewrite semua kan.

Kalau itu ya udah beda platform.

Udah beda alam kan.

Kalau misalkan dari Node.js kita tadinya...

Tapi kan Node.js juga ngejualan hosting juga kan.

Eh dulu, dulu ya.

Terus sekarang udah nggak.

Oh iya, pernah.

Dulu waktu Node itu yang berantem...

...yang ada IO.js, ingat nggak?

Nah itu yang pegang kalau nggak salah...

...salah satu hostingnya yang terkenal tuh.

Berantem?

Serius?

Ya sempat itu kan, sempat pisah kan.

Jadi yang versi 0.12...

...nggak naik-naik.

Akhirnya komunitas nge-volks sendiri...

...bikin IO.js.

Pasti belum ada ngobrol-ngobrol.

Jadi kan waktu itu yang pegang...

...ada satu perusahaan, saya lupa namanya...

...perusahaan hosting juga. Terus abis itu kan...

...mereka akhirnya bikin...

...yang namanya Node.js Foundation kan.

Nah itu baru di gabungin lagi.

Nah dulu sebelum...

...sebelum Node.js Foundation.

Pernah, pernah.

Tapi perusahaannya apa ya namanya ya?

Saya lupa namanya perusahaannya.

Activate bukan ya?

Bukan.

Belum ada activate ini.

Belum ada.

Aduh mimpi.

Wow.

Itu Dino Cafe juga...

...skelebe banget.

"Built on Foundation DB"

Foundation DB.

iCloud pakai itu.

Wow.

Pahal gak sih?

Huh? Apanya?

Harganya?

Ada pressing-nya gak ya?

Oh ini dia.

"Storage 5GB"

"Merit units per month"

"1.300.000"

Ya tergantung buat apa sih...

...kalau semua di-cash...

...banyak di-cashing, itu...

...pakai free atau pro juga bisa.

Wow.

Keren.

Seru ya?

Bisa nih.

Iya. Coba.

Kayaknya cocok banget...

...buat ini.

Buat...

Apa mau bikin side hustle?

Enggak.

Ada satu modul yang lagi...

...gue kerjain, collaborative editing.

Sekarang pakai...

...redis untuk...

...untuk...

...data type-nya.

Data type untuk yang...

...CRDT-nya itu...

...kan butuh key value.

Jadi kalau misalnya gue pakai...

...yang sekarang ini lamban.

Karena pakai redis...

...yang self-hosted.

Itu tuh berarti orang ngetik atau tiap orang...

...apalah user berinteraksi...

...itu kayak di-kirim ya.

Di-save, di-store.

Jadi...

...sehari ini...

...ada...

...gue pakai...

...index DB dulu.

Index DB.

Connect.

Jadi sebagai temporary...

...story. Jadi dari state ke index DB.

Dari index DB sing ke...

...web socket ke...

...server.

Di server database.

Sehari ini database-nya pakai redis.

Kayaknya...

...lambat. Terakhir.

Pakai redis lambat ya?

Karena yang self-hosted kan.

Oh...

...hosting-nya yang bikin...

...lambat ya.

Firewall-nya yang bikin lambat.

Banyak.

Lihat modules tuh.

Ada kan project-nya udah...

...ya, deno.com.

Yang mana nih?

Deno.com.

Modules, standard library.

L5, asset, asing, bytes.

Oh itu tadi.

Iya.

Larinya ke JSR juga ya.

Back, JSR.

JSR tadi.

Node.js, npm.

Node.js, npm. Yang ini.

Yang dia support.

Gak bisa diklik. Oh ini dia.

Coba deh share screen.

Oh belum share screen ya.

Modern Node.js Project akan...

...merjalan di deno.

Tanpa harus siotak atik.

Tapi ada...

...key differences.

Perbedaan antara dua runtime.

Yang bisa...

...kita manfaatkan...

...kode kita jadi lebih simple dan...

...lebih sedikit...

...lebih langsing.

Oh langsung begini ya. Node.2 something gitu ya.

Untuk build-in Node.js ya.

Build-in Node.js.

Jadi kalau kita punya project Node.js...

...yang menggunakan...

...build-in...

...function atau build-in module-nya Node.js.

Jadi kita rewrite-nya...

...tinggal di bagian import-nya aja ya.

Ini dari apa?

Berarti bisa langsung digitize ya.

Practice ya.

Moj.moj5.

Ini dari npm.

Moj.moj5.

Moj.moj5.

Ini dari npm.

Kalau dari JSR tadi...

...pada JSR2 ya.

Kalau custom bisa nggak ya?

Oh kalau custom tetap harus...

Tapi kalau private?

Ya nggak bisa ya.

Kita lah.

Private registry?

Oh itu kali dari registry-nya...

...origin kita manggilnya dari mana kali?

Di setting.

Tidak perlu, NPM install, sebelum menjalankan dengeran PENJS.

Nah, baru ketemu. Nama perusahaannya Jo Yen. Dulu si Rian Dalenya kerja di situ.

Jo Yen.

Iya, dulu yang handle, misalnya yang... kayak apa ya?

Kayak si...

Siapa itu? Apa? Kayak spelt, yang bikin spelt sekarang kerjanya di Versel, gitulah akhirnya.

Versel.

Ya, jadi Node.js itu dulu banyak bergantung kepada developer-nya Jo Yen untuk develop.

Sampai akhirnya mereka...

Mungkin karena waktu itu si Node.js bergantung untuk development.

Mungkin karena waktu itu si Rian Dalenya itu ini kali ya. Karena dia kerja, dipekerjakan.

Jadi ya strategi mengikut strategi perusahaan.

Iya. Kan yang bayar si perusahaannya kan, pasti ada kepentingan-kepentingan yang harus dipenuhi kan.

Oke, ini ada pertanyaan yang bagus.

Kalau bikin proyek baru apa mending nyoba pakai di ini?

Ini ada pertanyaan yang bagus. Kalau bikin proyek baru apa mending nyoba pakai di Dino atau Node.js yang sudah banyak dipakai?

Proyek barunya...

Bergantung.

Proyek barunya proyek pribadi atau proyek yang akan kalian maintain dalam waktu yang lama?

Kalau pribadi Dino aja. Dino aja coba atau bun?

Iya, coba dua-duanya.

Iya, coba dua-duanya.

Kalau sebenarnya sudah cukup safe. Bisa dibilang kalau mau pakai Dino di perusahaan pun bisa.

Tapi harus recent lagi ya.

Production ready ya.

Iya, harus di-recent lagi. Jangan lupa.

Production ready tapi timnya bersedia atau enggak?

Kalau kerjaan perkara nya lebih ke tim juga kan.

Masa yang mereka kerjain.

Meskipun dia JavaScript juga, tapi kan ekosistemnya sedikit berbeda kan.

Ya, bisa pakai NPM, tapi apakah semua NPM yang dibutuhkan untuk proyek itu bisa berjalan dengan lancar?

Jadi itu yang harus diluasi dulu sebelum memutuskan untuk mengganti teknologi.

Tapi bisa juga buat menguasai boss atau tim lead.

Kalau cukup besar ya, pakai Dino Enterprise tadi kan bisa ada priority support dan lain-lain kan.

Iya, betul.

Ada masanya official support-nya.

Wuh, ada yang minta live quote nih.

Ada yang minta live quote.

Woh, si kafe nya itu pakai Skylight.

Oh iya?

Tapi bukannya pakai foundation DB.

Foundation DB? Apa jadinya kalau di lokal?

Di lokal, Skylight.

Terusasing foundation DB, gak tau.

Kalau foundation DB itu apa?

Itu tadi, oh buat hosted database-nya kalau udah di deploy, mungkin.

Jadi aslinya dia Skylight gitu?

Gak tau, gak tau.

Coba documentation.

Documentation nya Deno?

Enggak, ini bukan hosting.

Bukan.

Foundation DB, Skylight. Apa hubungannya?

Bukan, kalau tadi gue nebaknya, kirain kalau pas lagi di lokal, itu pakai Skylight.

Terus pas udah di deploy, pakai foundation DB kali, gak tau.

Ini distributed Skylight on foundation DB.

Beda tapi.

Oh bukan.

MV, Skylight.

Gak ngerti nih apa nih.

Beda, foundation DB sendiri bukan, Skylight.

Oh mungkin ada itu nya, apa namanya, bisa migrate nya ada migration tool.

Ini ini, di docs nya Deno.

Mungkin ada opsi-opsinya kali ya, connecting to databases.

Oh, private area.

Hmm, chat. Opsinya macem-macem ternyata.

Tapi malah gak ada foundation DB.

Coba baca.

Bisa pakai SQL.

Anjir, SQL nya langsung di JavaScript nya ya, seru ya.

Gak perlu perlisma-perlismaan.

Ya bisa aja kan, itu kan library.

Gak maksudnya, kalau misalnya kalau dijalankan di client, aman gak sih?

Client JavaScript maksudnya?

Iya.

Gak bisa lah.

Gak ya, kalau Deno kan bisa taruh pastinya ya.

Pasti server?

Gak bisa, gak bisa.

Skylight ada.

Hmm, foundation DB nya yang gak ada.

Firebase?

Firebase aja ada tuh.

Superbase juga ada.

Superbase.

ORM juga bisa.

ORM kayak perlisma dan lain-lain.

Oh, DinoDB itu ORM.

ORM.

Mungkin ngeluarin sendiri.

Oh, ada lagi nih.

Berarti ini produknya lagi nih ya.

Tadi ada DinoCafe, KV, ada DinoDB.

Banyak ya.

Oh, ini.

Eh, bukan ya.

Ini kenapa ada titiknya?

Gak.

Ya ini, ex, apa dinolen.

Ex-Dino.

Itu klik, coba klik aja ex-nya.

Ini apa, ex itu?

Kumpulan per-party module.

Hosting service for DinoScripts tuh.

DinoX itu.

Oh, ini registering nya dia ya, berarti ya.

Registry, tapi buat DinoScript yang gak kompatibel sama EDM.

Oke.

Eka bikin DinoEki.

DinoEki.

Hari ini.

Joke, joke.

Coba diapresiasi.

Cher, tolong komen ketawa dong.

Ya, tapi tadi mystery foundation DB apaan?

Oh, foundation DB itu untuk Dino, KV, Cafe.

Itu hosted service nya dia buat.

Iya, KV.

Key value story nya, apa head-to-head nya Redis.

Itu yang mau gue coba entar.

Pengen tau.

Punya built-in function buat HTTP server.

Ya, Node.js juga ada kok.

Node.js juga ada.

Kita aja yang jarang pake, langsung pake express.

Ada, udah ada.

Males, males soalnya.

Tapi syntax nya gak enak ya?

API nya gak?

Biasa aja.

Biasa aja.

Ya harus parsing request part itu.

Males.

Browsernya.

Semua pasti tanya browser kan.

Semua pasti tanya browser.

Karena menarik tab-tab nya.

Minimalist.

Oh, nama Min itu dari Minimalist ya?

Iya, Minimalist.

Minbrowser namanya.

Oh, baru nyadar dong.

Kira-kira nama browsernya Admin atau apa?

Ya, dia gak ada extension macem-macem.

Udah ini aja buat browsing doang.

Tapi Chrome extension bisa kan mestinya?

Gak ada menu nya.

Oh, gak dikasih itu.

Gak dikasih, gak ada menu apa-apa tuh.

Emang bukan buat itu.

Iya, buat browsing aja.

Jadi kalau buat coding sih gak cocok.

Buat presentasi cocok.

Ya, buat presentasi.

Tadi Denu Cafe, coba buka deh.

Denu Cafe.

Dokumentasinya.

Di project channel.

Ini Docs.

Jadi kita tadi bisa connect ke database sendiri.

Mau MySQL, SQLite dan lain-lain.

Bisa pake layanannya, si Denu Cafe.

Ini loh, docs.denu.com/deploy-cafe-manual.

Deploy.

Gampang.

Denu Cafe Quickstart.

Oh, ini bagian dari platform deploy dia, berbayar mungkin.

Layanan postingnya.

Bisa jalan di lokal gak ya ini?

Bisa dong harusnya.

Harusnya bisa, karena langsung polling.

Asal di lokal kita pake Denu.

Udah, langsung gini aja.

Gak perlu import, gak perlu apa.

Tapi kayaknya ada di global.

Iya, kayaknya ada di settingan konfigurasi gitu, baby.

Bisa langsung di bawah semua ya?

Ada CLI-nya apa?

Kayak CLI-nya Firebase, itu kan bisa di lokal kan?

Firebase init atau apalah.

Iya.

Kan misalnya ada file config, terus ada CLI-nya.

Kalau testing ini pake memory.

Wow, ada uasi testingnya juga.

Udah disiapkan.

Oh, ini ada tutorialnya.

Tutorial buat kafe.

Iya, khusus buat Denu Cafe.

Good.

Itu tulis.

Gak bisa di enter.

Gak bisa.

Error ya.

Error, oh gak ada error.

Gak ada, emang gak jalan-jalan.

Ini jalan.

Ada itunya.

Bisa.

Belum, tadi gak bisa.

Belum selesai loading, mungkin.

Makan.

Kok lambat?

Iya.

Paling murah lah, ini gratisan.

Apa, mau saya buat sampel?

Mungkin di rate limit juga.

Oh lambat.

Oke, coba di delete.

Gak ada delay gitu.

Tuh, iya kan?

Berarti gak optimistik update ya?

Iya, maksudnya dia gak update lokalnya dulu, baru update servernya.

Jadi dia nunggu response-nya.

Tapi apa bedanya sama Firebase ya?

Maksudnya Firebase kan bisa key value juga kan?

Bisa di trade sebagai key value.

Bisa.

Ya, ini integrate sama Denu,

kalau kita pake service deploy-nya,

kayak gak harus mikir-mikir apa pun lagi.

Gak.

Apa offering-nya luas juga ya?

Katensinya juga.

Seru sih nih.

Apa, offering deploy-nya banyak juga, macem-macem.

Iya sih, ini head-to-head-nya sama GCP.

GCP atau Firebase lah.

Yang itunya banyak, service-nya.

Tapi dia punya runtime sendiri.

Iya, sama sih AOS juga gitu.

Iya runtime.

Runtime buat bed-end-nya juga, kan?

Maksudnya kita coding-nya, apa?

Kita ngeserv-nya dari Denu.

Nah, ini pernyataan yang menarik juga nih.

Kalau sudah pakai Denu, jangan lupa front-end-nya pakai fresh framework

biar sekalian mau account dari FW sebelah.

Yang sebelah itu apa?

Dia sebutin aja, gak apa-apa, kok.

Pada pendapatnya kan, previous JS.

Previous JS.

Front-end-nya dia, si fresh ini kan dia server render, kan?

Jadi kayak meta framework ya modelnya.

Sama kayak itu ya.

Server render, tapi bisa island.

Bisa hydrate.

Astrolah ya, berarti ya.

Ya, kayak hybrid-nya Astro, HTMX.

Ya, HTMX, Svelkit, dan lain-lainnya.

Biasanya kalau lihat demo-nya, weh, keren.

Tapi kalau nanti sudah pakai, aduh.

Belum, ini belum ada, itu belum ada.

Ini ada hard-stop gak malam ini?

Nggak.

Nggak ada?

Jangan sampai jam 11 malam juga sih.

Siapa yang mau sampai jam 11?

Install deno deploy.

Deno install.

Oh, sorry, belum ini ya.

Betul kan ya, deploy?

Tadi ada ngasih siapa?

Deploy platform tuh yang di kiri, sidebar.

Ada deployment.

Jadi merasa kayak heroku gak sih?

Yes.

Di PlusCity L.

Benar.

Ini ada gratisannya gak, free tier-nya?

Coba cari di deno.com.

Cari aja di deno.com.

Ada kron-nya, ada kron, edge case.

Deno deploy.

Pricing.

Free.

Free, tuh free.

Low traffic project.

Nah, itu dilipir.

Gede ini?

Gede ini?

Iya, dikasih yang lambat.

Oke lah.

Buat coba-nyoba kan?

Buat coba.

Buat coba-nyoba, oke lah.

Nanti kalau udah ketahui kan, baru free-nya digilangin.

Mereka mahal. Heroku momen ya.

Bukan heroku, Cloudflare.

Kalau Cloudflare, heroku sekarang semenjak di akusisi, gak ngasih gratisan lagi.

Minimal ya.

Iya, makanya jelitan udah pada banyak yang pake, tiba-tiba free tier-nya ditatik.

Sama, Fly.io juga udah gak ada gratisannya.

Kalau Fly.io dari awal udah gak curiga sih karena offering-nya punya banget kayak generous banget.

Iya.

Tapi, kalau tagiannya masih dibawah 5 dolar, digratisin.

Oh, menarik sih.

Fly.io.

Fly.

Soalnya dulu tuh pas awal-awal.

Di akumulasi sampe 5 dah. Bukan, tetep di akumulasi sampe 5 dolar baru ditagih.

Tidak, tiap bulan kalau dibawah 5 dolar gratis.

Gratis, selalu dibulan.

Akumulasi hari ini, bulan ini 2, bulan depannya 2, jadi 4, 6 tagih gak gitu kan.

Soalnya dia tuh gak ada sleep-nya loh, Fly.io.

Gak ada apa?

Gak sleep, mau saya apa? Gak mati.

Oh iya, nyala terus?

Ya.

Kalau Heroku kan dari dulu yang gratisan kan mati kan setahun berapa.

Di tidurin.

Di tidurin.

Jadi, next-nya kita cobain ya.

Apa nih yang mau dicoba? Coba tapi dikit aja.

Coba, coba, coba.

Hello world aja, besok-besok bikin episode baru.

Dino fresh, maksud saya yang big wave banget.

Kalau ini yang apa?

Yang ini, getting started.

Gimana sih? Gini ya?

Ya, itu aja.

Get started, Dino.

Gak ada dark mode-nya.

Belum bikin. Ini kan open source di itu aja.

Eh, masih 145.

Coba Dino aja ya, dua sekalian.

RC, Dino Upgrade RC kalau gak salah.

Apa?

Dino Upgrade RC.

Upgrade?

Upgrade RC.

Ya.

Gak ada, white, tadi kan ada.

Upgrade dulu.

Oh, karena pakai Enix?

Gak bisa.

Gak bisa langsung?

Oh.

Pake ini aja apa?

Kalau ini dia install-nya gimana ya?

Yang baru.

Ini install-nya kemana ya?

Harusnya ya coba binary yang udah ada kan?

Ada target ininya gak?

Kayaknya udah di default-nya.

Di USR bin gitu-gitu ya?

Bin, iya bin.

Bisa pakai Enix?

Iya.

Lagi nyoba, kemarin kan setup laptop dari awal kan.

Jadi coba pakai Enix aja.

Wah, laptop baru ya?

Enggak, laptop second.

Setup completion, please.

Terus yang Dino yang sebelumnya?

Apa kabarnya?

Masih sama?

Oh, di luar ini dulu.

Beda satu.

Dino upgrade.

Yang RC.

Nah, tuh misalkan.

Dua tuh.

Remote control.

Iya, tapi nyampah.

An install-nya gimana caranya?

Delete aja.

Okay.

Standard-nya ini, standard apa?

Standard nyoba kode TypeScript.

Ini misalnya kita matikan aja.

Dah, ini masih berapa nih?

Denominv ya?

Oke, sudah 2.0.

Terus?

Set sekarang kok nggak mau pakai film lagi?

Biasanya film.

Enggak.

Tukar-tukar aja, biar nggak bosan.

Terus habis itu jalanin apa?

Habis itu.

Pakain itu dong, pakain set dong.

Jalaninnya.

Jalaninnya Dino main TS.

Ya boleh.

Dino.

Dino app.ts.

Dino-nya nggak ada.

Kenapa?

Nah, itu apa?

Itu Z, S, H, B, D.

Fish, itu fish.

Ini.

Dua-duanya fish.

Terminalnya masih di Z, itu pakai apa?

Yang di Z.

Beda fish kayaknya, ikan-nya banyak.

Ini fish, sama.

Tapi itu...

Baik, baik, baik.

Penasaran nih.

Itu via JS versi 20, itu masih note ininya, engine-nya.

Tapi di sini nggak ada.

App.ts.

Udah?

Aman.

Terkara Z.

Terminal.

Terminal.

Dino version.

Oh, gini.

Kebuka, kan?

Z.

Harus dijalani lagi kali.

Coba Dino.

Harus restart.

Si Z-nya.

Mix-nya.

Sudah.

Terus?

Terus lagi ke bawah next steps.

Z-nya V-motion, betul.

Z-nya V-motion, dong.

Next.

Making Dino project.

Dino init my project.

Oh dia pakai DinoJSON, benar tadi.

Oh, oh iya.

Tadi benar-benar bercanda.

Aduh.

Dino run.

My project.

Ini kayak gimana dia?

Import.

Tapi nggak ada, oh ada importnya juga.

Akhirnya.

Sama dong.

Kalau nggak ada importnya gimana?

Tapi kan semuanya tadi via url.

Jadi file-nya kita.

Bisa pakai url?

Bisa, bisa, bisa.

Cuma run.

Dino run.

CD.

Oh, ini udah.

Udah otomatis dikasih watch ya.

Note demon, note phone.

Enggak, note yang baru kan udah

otomatis, udah ada juga.

Udah.

Dino mon, kirain bakal ada Dino mon.

Dino mon juga ganti

main.ts-nya

diganti

langsung dia otomatis.

Reload.

Ini kecilinnya gimana?

Nggak ada ininya ya.

Di ganti apa?

A kurang B.

Enggak.

A tambah B tambah 1 deh.

Jadi angkanya dibuat salah.

Oh, iya bener.

Bener ke update.

Asalnya fungsinya yang salah.

Langsung ke update.

Cepet lagi.

Ya, karena cuma hello world begini.

Cepet lah.

Jangan lebay.

Kan iforia.

A plus 1. Iforia.

Ini ya.

Dino test-nya nggak ada watch.

Oh, ada.

Tapi cepet banget loh, dia tadi

waktu yang compile watch pertama

lama, tapi begitu yang kedua dia

udah nge-catch.

Di-catch semua.

Iya.

Cepet ya? Keren.

Oke, run your project.

Ini bisa langsung. Run your test.

Oh iya. Kita liat test-nya ya.

Kita liat test-nya ya.

Eh, sama.

Mirip-mirip.

Itu kata Iksan

Scooter tuh.

Susah jadi manusia.

Dupada NOS.

Itunya juga enak ya?

Testing-nya sama.

Mirip-mirip.

Dia itu ya.

Apa namanya kayaknya

filosofinya mengikuti Node.js ya.

Jadi supaya orang gampang pindahnya.

Iya, kalau bikin susah

nanti gampang.

Bun udah pasti untuk saat ini

yang udah paling cepet.

Kalau sekarang.

Oh iya, dia di landing page-nya

yang dipromosiin itu kan.

Ada bercar perbandingan

dia cepet.

Tapi kelebihannya Dino adalah

ekosistemnya udah mulai lengkap.

Kalau Bun kayaknya belum.

Belum sampai sana.

Bun kalau nggak salah, terakhir infonya

udah support SQLite

built-in ya. Jadi nggak perlu

install macem-macem. Udah bisa langsung

SQLite. Baru sampai situ sih

infonya. Kalau yang lainnya

akhirnya ekosistemnya lebih lengkap

si Dino ini. Dan

bisnis modelnya juga lebih

jelas yang si Dino ini.

Dan ekosistem sampai ke deploy ya.

Itu kan biasanya

nggak terlalu... Belum lengkap dari awal sampai akhir.

Belum terlalu di pikirin.

Sampai deploy. Terus kalau pakai database

atau maksudnya pakai storage.

Storage-nya juga di deploy.

Jadi bisa jadi,

kalau pakai Dino dari awal dan fresh

dan deploy KV-nya sudah ada

sudah bisa gantiin ini juga dong ya.

Next.js.

Nah itu tadi.

Oh iya. Widowanya kan udah ke sana.

Tadi.

Satu ekosistem. Tapi super duper

vendor login.

Ini dia

apa? Formaternya

bisa jalan otomatis.

Iya.

Dikasih nggak server

lendu server-nya?

Itu ada LSP-nya.

Sublime Text.

Z? Z nggak ada Z?

Nggak ada Z.

Z nggak pakai itu ya?

Enggak.

Enggak lengkap.

Cursor lho.

IMAX ada.

Apapun yang jalan di VS Code.

Nggak, nggak. Dia nggak gitu.

Set nggak ya?

Disa sih.

Kalau mau di setting, bisa.

Tapi manual. Contohnya ini.

Ini. Dikopi.

Jalanin.

Lendusnya apa nih?

Eh, lendus salah ya.

Deno gitu. Bener nggak sih?

Ininya.

Deno gitu.

Deno.

Format On Save.

Deno. FMT.

Udah. Ya kan?

Gitu.

Coba-coba. Bisa manual

tapi.

Ininya udah sama.

Coba ya.

Tapi udah otomatis dari tadi juga.

Coba nggak pakai titik koma.

Udah.

Coba ininya ke sini.

Itu udah.

Oke. Sekarang kita coba

pakai

pakai itu. Library.

TypeScript Support.

Ini udah oke.

Apa lagi? Apa yang

yang perlu kita coba apa?

Deno VS

Boon ini gimana cara kita

cobanya ya?

Standard Library.

Ada yang menarik nggak?

Wah. Ini dua-duanya menghilang.

Cafe Lokal.

Oke. Ada nggak

di sini?

Eka-nya ngefreeze.

Ivan-nya kabur.

KV Lokalnya gimana caranya?

KV.

Sorry.

Oke.

Cobain KV.

Deno KV Quick Start ya.

Coba-coba.

Nah.

Ya makanya

ini cobain. Ini langsung gitu.

Coba aja.

Kayaknya udah harus punya akun

atau apa. Itu kan

nanya-nanya deploy.

Gini.

Gak bisa.

Ini apa error-nya?

Open KV itu bukan fungsi.

Bukan fungsi.

Itu bukan dari

Deno Runtime-nya soalnya.

Deno deploy. Sekarang installnya gimana?

Coba buka.

Deno KV is available.

Tadi ada tulisan.

Deno KV is available in Deno CLI.

On Deno

deploy.

Harus install Deno CLI dulu?

Coba.

On Deno deploy-nya apa isinya?

Deno deploy?

Ya. Deno deploy. Docs-nya buka itu.

docs.deno.com/deploy/manual

Ini.

Kita gak coba yang

Deno CLI dulu?

Deno CLI.

Bukannya tadi kita udah install

Deno CLI ya? Beda lagi ya?

Gak tau.

Itu kan?

Iya.

Oh, ini.

Ada deploy CTL.

Bukan ini ya?

Eh, mana dia?

Deno add.

Eh, ini-nya

masih ada ya?

Deno add gitu gak ya?

Kayaknya bukan ya.

Itu kan di global.

Coba ketik

search deploy CTL.

Deno KV.

Tadi ada kan?

Ini.

Deploy manual.

docs.deno.com/deploy/manual

Kok ke deploy sih?

Kita kan belum mau deploy.

Oh, harus install ini dulu.

Deploy CTL ini.

Deploy CTL. Jadi bukan Deno CTL.

Deploy CTL.

Keliatannya loh. Soalnya KV itu kan bagian dari

Deno deploy.

Kok gitu?

Nah, itu nanti setelah

install itu jadi ada

deno.src. Kayaknya apa?

namespace deno itu jadi kayak ada deno.src

deno.kv atau apapun.

Ini berarti ya?

Oke, iya.

The following required argument were not provided.

Apa gini? Global.

Eh, cuma ada yang comment tuh

jangan docs yang deploy. Itu versi

versel.

Cafe lokal, coba.

Cafe lokal.

Versi verselnya.

Versel itu jadi kata-kata

versi hosted.

Kayak nge-search kan

Google.

Hosted service yang

vendor login. Versel.

Versel kayaknya udah di benci sekali ya.

Cuma makin di benci makin besar sih.

Pasti makin sukses.

Semakin banyak, haternya semakin banyak yang

ini juga.

Karena jumlah orang yang makin banyak yang makin

benci ya jadi banyak.

Cafe lokal.

Cafe lokal.

Belum dulu sih.

Itu ada cafe soalnya.

Di

site bar kiri ada cafe. Mungkin

di coba. Yang tadi ini.

Oh gak ada cafe lokal.

Dino cafe namespace.

Dino deploy.

Malah nyasar nemu ini

tapi kuduh pake Docker.

Service hosted.

Enggak, kita mau yang lokal aja.

Gak mau

di deploy dulu.

Ini bisa pake Node.js.

To install kan.

Kalo Node.js ya.

Apakah si

Dino nya.

Dino

Cafe tutorial.

Tadi mana?

Ini kan.

Follow this tutorial to learn how to use

QE.

Try in playground.

Configure

ini.

Dia langsung tuh.

Kak kayaknya gak bisa

pake Dino

orang gitu aja deh. Dia harus pake

Dino serve gitu.

Coba yang lain aja gimana.

Catching depth atau apa.

Gak bisa kan.

Gak bisa, gak bisa.

Gak ada

ininya. Gak ada scriptnya.

Cuman ada dev doang.

Disini juga masih ini.

Kita coba

deploy.

Kok langsung deploy ya?

Dari quick start langsung deploy ya.

Karena itu dochsenya deploy.

Iya.

Coba balik ke...

Coba balik ke kiri atas.

Getting started.

Kalau ini kan rantai manual

yang active docksnya.

Module and dependencies.

Import.

Importing module. Standard ya.

Sama ya.

Type script by default.

Ini gak boleh.

Ini juga penyesalannya si

Rayan Dahal. Harus ada extension.

Biar gak musing.

Yes.

Ini kita bisa pakai HTTPS.

Bisa pakai NPM.

Bisa pakai JSR.

Versioningnya juga

udah dipikirin banget ya.

Iya, kalau mau ditambahkan disini.

Terus kalau mau

pakai deno.json bisa juga

kayak gini.

Kita coba ini kali ya.

Howcy.

Oh, ini yang bikin sapi.

Yes, yang bikin sapi.

Oh, ini untuk jalaninnya ya.

Main ya. Main functionnya.

Say.

Say.

Roll in web.

Kok dia download? Oh ya, download lah.

Ya, download dulu tetep.

Allow. A.

Allow, allow.

Allow ya. Allow read ya.

Yes.

Error.

Gimana cara pakenya?

Permission. Permission tadi masalahnya.

Permission?

Iya.

Granted.

Oke. Terus?

Coba.

Undefined, join.

Allow.

All permission.

Tak bisa juga.

Iya, ada masalah

di kausenya.

Kausenya.

Kita lihat ya. Ini kausenya langsung?

Oh, karena

udah disini.

Kita pake npm kan? Ini error.

Coba.

Atau

saynya?

Ada ke open as option.

A.

Nggak bisa.

Bukan saynya.

Dalam kurung. Object.

Object.

Fieldnya text.

Text titik dua.

Oh, ini ya.

Cara pakenya.

Text titik dua.

Coba.

Mana?

Nggak tahu.

Itu di atas.

Harus di konsolok.

Oh, iya. Konsolok dulu ya.

Nah.

Yay.

Akhirnya.

Susah juga.

Karena kita nggak tahu cara pakenya.

Iya. Cuma sekalig kita tahu kan.

Udah kan? Udah.

Karena kita nggak tahu cara pake kausen.

Iya.

Ini kita bisa pake denoad.

Dia otomatis ya.

Tapi nggak bisa def.

Dependensi.

Terus kemudian. Coba ya.

Tadi kan ada hono kan.

Kita coba pake hono ya.

Atau htmx.

Nggak ada htmx.

Hono.

Berarti cara pakenya

adalah ini kan.

Denoad.

JSX Hono.

Ya JSR.

Wih keren.

Terus abis itu.

Import hono.

Import hono from hono.

Hono.

From.

Hono apa?

Loh.

Oh, hono doang.

Hono doang nggak pake

Hono coroko.

Nggak.

Ya kopi aja ya. Dari tadi ya.

Ini nggak pake export kan.

Tapi kan.

Terus dia, ininya mana?

Runningnya mana?

Listen-listennya nggak ada.

Wah, nggak lengkap ini

dokumentasinya.

Coba export default app dulu.

Export default app?

Iya.

Ini kan buat di

tempat lain kan. Dipanggil dari tempat lain.

App.listen kali.

App.listen

4000

Ini kita hapus aja ya.

Ini perlu dihapus nggak?

Boleh.

Hapus juga.

Koment aja deh.

Terus, error.

Relative import path hono.

Kok nggak bisa?

Kenapa harus pake gini?

Ini. Ini ya?

Iya itu, itu, itu.

Gini.

Yang modifiernya tadi kan?

App.listennya nggak ada.

Loh.

Hono.js

Gimana sih?

Export.

Dia export langsung ya?

Nggak ada listen-nya gitu?

Itu ada deno turbawa tuh.

Quick start deno.

Ini ya. Ini udah.

Oh ini dia bikin sendiri ya?

Bikin project baru ya?

Iya.

Itunya deno.jsonnya

beda jadinya kali ya.

Cuma kalau mau apa?

Tanpa framework, ada nih.

Bisa langsung

ngeserve.

Ini kan kita sekalian cobain

apa namanya? Cobain import kan.

Cloningnya lama sekali.

MyApp, kita lihat deno.jsonnya.

Hono.

Start.

Terus main.js

Gimana?

Deno.serve.

Oh dia pake app.patch.

Tapi ini nggak selesai-selesai nih.

Oh.

Ini udah. Oh udah.

Terus?

Ntm run.

Ntm run sih.

Deno.

Start.

Deno start.

Deno start.

Start.

Oh deno run start kali.

Kok nggak bisa?

Balik ke...

Karena belum masuk ke MyApp.

CD MyApp.

Deno start.

Tau nggak bisa?

Mas Rizal lagi di panggung ya kan.

Wah seru ya.

Ya latihan dulu lah.

Halo.

Hello hono.

Sudah.

Tapi ini...

Ini pake template.

Berarti dia tetap harus pake deno.serve ya.

Balik ke myprojectnya.

Mas Rizal coba sendiri bisa nggak?

Myproject?

Oh diikutin kayak gini?

Import hono

from hono.

Terus?

Hononya hanya besar nggak sih?

Nggak.

Nggak.

App sama dengan si hono.

Betul. App get.

Terus deno.

Deno.serve.

App.fetch.

Nah.

Deno untuk JSON-nya.

Apa?

CD parent?

Bikin yang start.

Karena dia ada

modul

net-nya deh tadi kayaknya.

Deno

run.

Hello.

Net ya.

Main.s.

Gini?

Kayanya ya.

Iya. Deno run.

Ini ada compiler ini.

Butuh nggak?

Gak usah.

Gak usah dulu ya.

Tes aja tes.

Myproject.

Deno run start.

Hon.

Deno.json-nya

isinya apa?

Benar.

Coba.

Enggak. Itu.

Oke ini berarti.

Kalau ini kan.

Hono doang.

Itu alias ya.

Berarti gini kan.

Nah.

Yay.

Harusnya hono.

Coba. Cafe-nya.

Cafe-nya masih bisa nggak? Cafe.

Gak bisa ya. Gimana ini tadi ya?

Iya.

Cafe.

Ini.

Eh. Error nggak?

Enggak nggak error?

Karena nggak

relisted. Harus relisted dong.

Kan nggak watch. Oh iya nggak ada watch.

Nggak ada watch-nya.

Gak bisa.

Oh unstable kv.

Oh tadi nggak ada.

Dia cuma jalan kalau deserve.

Mungkin. Iya.

I see.

Oke.

Deno.json.

Ini ya.

Berarti.

Tambahkan.

Unstable kv.

Unstable kv watch.

Watch. Nah.

In.ts.

Kv.

Kosong.

Udah bisa nih.

Ini pakai apa ya?

Ya itu kv.

Tadi. Ini coba.

Kv.

At kv.get.

Ada contohnya tuh buat

Ecopass.

Simple api.

Simple api.

Simple plan.

Oh cuma itu post request.

Kv.set ya?

Iya.

Kv.set. Betul.

Berarti di sini.

Itu aja. Await.

Await. Cek itu loh.

Di dalam app get aja. Sekarang.

Jadi bisa direfresh-refresh.

Oke, oke.

Berarti ini kita

Pakai. Gini ya?

Ya.

Return.

Terus.

Terus di sini. Await.

Kv.set.

Kv.set.

Kv.set.

Eh. Apa tadi?

Setnya gimana?

Ini ya?

Masih lagi.

Api nya mana api nya? Api reference?

Kv.

Enggak ada.

Belum nemu.

Kv.

Ada api apa aja gitu maksudnya?

Set preference ada.

Set sama get.

Set sama get aja.

Tapi ini apa?

Ya itu key value.

Key nya. Value nya mana?

Ini?

Iya.

Ya ini udah toko.

Counter.

Kan masih beta. Kok udah ada yang auto complete ya?

Ya udah kita auto complete aja.

Ya udah coba.

Itu yang Kv.set counter yang di atas itu kayaknya salah deh.

Ya bener-bener aja.

Gini kan?

Bukan dia akan selalu dua itu.

Ini kan? Pakai ini kan?

Tapi ini preference nya apa?

Ya itu options ya.

Logiknya kita selalu

set counter satu.

Begitu kita reload.

Jadi dua.

Karena counter tambah satu.

Disable dulu aja pasti yang baris

ke duanya itu.

Deno import nya itu di atas.

Salah. Yang line bawah.

Yang line 14 itu ke atas.

Gini?

Ya boleh lah.

Ini berarti counter.

Oh gini.

Iya.

Ya udah.

Coba aja.

Itu interval server error.

Invalid type.

Expected array got string.

Yang mana?

Yang gate nya itu juga

harus array.

Ya.

Object object.

Better.

Coba di

counter itu isinya apa?

Counter dot. Coba untuk complete ya.

Jason dot stringy file.

Counter.

Jason dot stringy file.

Counter.

Value nya null.

Value nya null tapi ya.

Karena

gak bisa null ditambahin satu.

Jadi harus di initialized

di paling atas dulu.

Sebelum server nya

dimulai.

Ini ya?

Itu tadi yang contoh preference apa?

Ini apa?

Oh kv.set.

Ini ada nih kv.set.

Key value.

Key nya ini.

Value nya ini.

Kok

array key nya?

Salah.

Berarti key nya ini.

Value nya ini.

Di luar.

Coba.

Dadah.

Ya gitu lah.

Kalau mau ngubah, set.

Kalau mau ngubah, set lagi.

Ya tapi kalau mau ini.

Jadi yang

line 7, line 8

nya itu di luar. Di luar. Upgate.

Gini.

Nah.

Terus yang await

itu ditambahin. Ya.

Sudah. Oh salah.

Berarti harus 2 ya.

Eh salah.

Counter nya di array.

Ya. Dah.

Harusnya 2.

Object. Object.

Object. Object.

Counter. Value.

Value. Counter. Value.

Yes.

Dah.

Yay.

Yay.

Cukup ya demo nya ya.

Susah ya terserah ya.

Tidak semudah yang dibayangkan.

Karena belum hapal.

Karena belum hapal.

Terus sintaks nya agak-agak beda.

Tidak semudah tutorial.

Tapi ya gak masalah Cukup ya sih.

Kita pas pertama kali

banget belajar node.js, kita mau langsung

Winsa kan.

Cuma berarti itu perlu dipertimbangin

juga sih. Maksudnya kita liat.

Tadi kan kita liat deskripsinya.

Kayak menggiurkan banget.

Kita langsung pengen adopt.

Terutama kalau kita punya tim.

Kita bakal expect ya kan gampang.

Mirip JavaScript. Mirip node. Yang bikin sama.

Kalian belajar lah. Nah ternyata

in practice ya apa?

Itu ada buban juga.

Maksudnya ada cost nya kan berarti.

Betul. Betul.

Berarti dia

si Deno dan

termasuk Gun juga ini dia serving nya

jadi ini ya.

Orang yang sudah punya pengalaman

dengan node atau dengan runtime lain

itu dia harus masuk kesitu.

Orang dengan

pengalaman baru, orang yang belum belajar

juga harus di serve juga.

Jadi ada dua user.

Ada dua use case yang harus di handle

dalam satu waktu ya.

Dan tetap aja

apa se user friendly

apapun ada.

Terusnya tadi misalnya tadi kita yang

apa? Pusing-pusing Delocafed.

Boyangin kalau buat product yang

ada expectasinya.

Ada detailnya.

Pusing-pusing tempered major.

Apaan ini.

Illustrating. Bukan karena salah

Deno nya.

Bukan salah Deno nya. Cuman

satu tadi kita kan bacanya buru-buru.

Kalau buru-buru ya

emang.

Kayak tadi kan cara pakai Deno

kevinya kan padahal disitu

udah dikasih tau kan.

Itu adalah.

Awalnya gak ada

masalahnya ya.

Yang kedua baru.

Yang mana

yang mana.

Tiba-tiba argumenya 2.

Satu array. Satu gak tahu

apa.

Ya satu itu. Yang kedua tadi

yang kita nyoba Deno kevy yang pertama

kali itu error nya gak jelas.

Yang kedua setelah Deno dot serve

baru ada. Bahwa ini harus

ada

flag nya.

Tanya redox nya yang mana aja.

Tadi kan nyasar ke deploy karena

kalau di search yang muncul di atas

itu.

Iya. Dia sangat kejualan

deploy nya. Biar aja dokumentasinya.

Abis quick start ada deploy basic.

Langsung. Cari duit

dulu dia.

Ya biar sustain lah.

Buat kebayainya.

Buat bikin turn.

Gak. Karena kan

ini apa.

Ini salah satu pentingnya

apa. Sebelum kita learning

something new kita harus unlearn dulu.

Karena kita asumsi

pernah pake redis key nya itu

adalah string. Makanya kita asumsinya

itu adalah string.

Tidak dikasih tau

key nya mana value nya mana.

Ada dikasih tau cuman kita gak baca.

Oh ya.

Syntax untuk set sama-sama atau gak?

Iya. Itu dia.

Jadi kita harus unlearn dulu.

Karena kita udah asumsinya tuh udah

oh kayak redis nih.

Kayak local storage nih. Sama.

Jadi harus unlearn dulu.

Memang benar. Dan bacanya

juga yang gak bisa kita cuman skimming

doang ya harus baca detail.

Begitulah. Okay.

Tapi seru. Tetep

menarik. Tetep

pengen nyoba.

Kalau

VS Bun gimana caranya ya?

Gak bisa ya.

Silahkan cari

benchmark yang

lain.

Ya itu tadi ya masing-masing punya kelebihan

dan kekurangan. Mungkin secara kecepatan

Bun itu lebih cepat. Tapi secara

kematangan.

Katanya

Deno2

katanya cepet sih katanya ya.

Iya. Saya juga denger

di beberapa interview juga

si Randallnya cukup

pede gitu. Ya mungkin karena dia yang bikin ya

dia bilang VAD tuh kenceng kok.

Gak kalah sama JavaScript Core.

Jadi kalau misalkan ada yang

ngeklaim kalau Bun itu jauh lebih cepat

Deno dan Node itu bisa

bisa cepat itu kok. Bisa

setara lah. Ya karena

dia pas dia bikin Deno

kayak dengan spesifik ya sampai milik

dia udah tau dalemannya.

Udah diputer-puter, diolah

sedemikian rupa biar cepat.

Maksudnya dari awal dia udah pertimbangin

itu. Udah jadi go.

Dan pertimbangan kenapa dia lebih memilih VAD

dibandingkan JavaScript Core juga pasti

dia udah ada konsiderasinya kan.

Kenapa dulu dia pilih VAD gak pilih

webkit punya aja. Padahal sama-sama

available kan. Yang diambil justru

VAD pasti ya dia udah tau alasannya apa.

Pengen ada nanti dan itu runtimenya itu

bisa milih pakai VAD

pakai JS Core.

Anjir masalah bet.

Dulu sempat ada juga

Microsoft mau bikin namanya Cakra.

Bisa dijalankan

dari Node spasi pakai

flag Cakra enginenya

Cakra bisa tuh.

Tapi kayaknya udah gak jalan ya.

Terus akhirnya buat Edge

pakai full

Chromium. Udah pakai Chromium

aja.

Biar bisa lonceng.

Biar bisa lonceng cepet.

Node tercipta dari kesalahan.

Ya kan lesson learned.

Yang dipelajari kan

awalnya dia gak punya pengalaman

berarti si Ryan Dahlnya waktu bikin

Node itu adalah

junior

platform engineer.

Junior platform engineer. Sekarang dia udah senior

udah pengalaman berapa puluh tahun

menjalankan

ekosistema GS.

Makanya dia pelajari dari sana kesalahan-kesalahannya

berusaha untuk tidak

diulangi di Deno.

Dan dia literly jadi

malahan sebagai gimmick ya.

Kan talk yang tadi di talk

2018 itu judulnya aja

10 Mistakes.

Sebenarnya Deno itu

bukan tercipta dari kesalahan menurut saya ya.

Deno itu tercipta

untuk menemani Node.

Ini Khalil Gibran

lagi bukan?

Nah itu baru

ini baru kocok

Khalil Gibran.

Deno itu hadir bukan untuk memecah

belah tapi untuk mempersatukan.

Ya gak nonton episode lalu bingung kenapa

kebetulan Khalil Gibran masuk.

Semua ini.

Iya betul.

Kalau V8

bisa ngalahin, bukan ngalahin ya.

Mungkin seimbang lah ya.

Sebenarnya 11-12.

Node juga kenceng.

Apa yang membuat Node

performanya kurang bagus?

Yaitu ada security-nya.

Dia harus jalanin legacy code-nya.

Make sure

code-code yang dulu kita versi

berapa itu masih tetap jalan.

backwards compatible

sebisa mungkin ya.

Karena dia kan bukan hal yang baru.

Beda sama Deno atau

Bun.

Mereka bisa dengan gampang bilang

kita gak compatible sama Node.

Kalau mau kita siapin nih

migration tools-nya misalkan gitu.

Yaudah itu berarti create dari awal.

Nah mereka juga

harus mengakomodasi itu.

Akhirnya kan semuanya juga mau bikin compatible

sama Node kan.

Check replacement kan langsung.

Karena pasarnya di sana.

Gak ada, susah.

Gak ada yang lirik.

Jadi malas

orang. Karena pas apa

si Node.js ini

udah kebentuk ekosistemnya.

Jadi kalau mau

banyak yang pake, ya harus

mengakomodir user dari

Node juga.

Oke.

Cukup?

Buat malam ini? Cukup ya?

Cukup.

Kapan-kapan Deno fresh

sendiri lah.

Bukan minggu depan ya, tapi

beberapa episode mendatang kita mungkin

akan bahas tentang fresh juga.

Kita penasaran

gimana ininya. Mudah-mudahan

adalah setidaknya satu

framework

di JavaScript yang

lengkap gitu ya.

Selengkap ekosistemnya Laravel

atau Ruby on Reds atau

lagam yang lain. Jadi kan

itu ya.

Enak pakenya. Mungkin entah itu

Deno fresh atau

Astro atau yang lain ya gak apa-apa.

Tapi ada option kesana.

Bukan kalau yang lengkap dari web app-nya doang

udah di Redwood. Cuma kalau

Deno fresh ini kan karena

se-ekosistemnya doang.

Sampai ke deploy semua kan. Sampai runtime,

sampai deploy, sampai hosting database.

Iya, database-nya juga ada.

Semuanya ada.

Termasuk juga

beserta ininya ya, vendor

login-nya ya. Jangan lupa.

Ya, itu kan plus-minus. Mau

enak pas bikin. Kan bikinnya berarti gampang

tuh. Gak usah debat ini, itu.

Mau open router apa, database apa,

test runner apa. Bikinnya gampang.

Ya, ada risikonya.

Betul-betul.

Iya. JavaScript core

difokuskan untuk efisiensi

memori. Bisa jadi. Mungkin

usage-nya lebih kecil kali ya.

Wow, Rust juga udah ada

full stack JavaScript ya.

Menarik juga ini.

Kita cek-cek nanti.

framework di mana-mana. Help.

Iya. Tapi kita harus belajar bahasanya.

Itu kendalanya.

Kalau kayak, ini kan

JavaScript sama-sama JavaScript.

Nah, itu buat developer

Rust yang emang bukan

saya, mungkin latar-latar

belakangnya dari. System engineer ya,

system engineer. Terlalu gak mau belajar

JavaScript dan C-JavaScript, ya udah.

Semua ada pasarnya, senang.

Semua ada pasarnya.

Oke.

Karena semua ada pasarnya, kita ketemu lagi

minggu depan. Nggak nyombong.

Kalian lagi, brah. Karena

besok pagi saya mau

ke pasar, jadi kita

sudah itu saja. Sudah malam.

Nggak nyombong.

Oke. Sampai jumpa minggu depan.

Selamat malam, selamat istirahat. Bye bye.

Bye bye.

Deskripsi asli dari YouTube

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.

Episode Terkait

Bagikan:

Suka episode ini?

Episode baru setiap Selasa malam. Dengarkan lewat YouTube, Spotify, atau feed podcast favoritmu.

Pilih Cara Langganan

Memuat komentar dari GitHub Discussions...

Jika komentar tidak muncul karena ekstensi privasi / adblocker, kamu bisa berdiskusi langsung di GitHub Discussions .