Ngobrolin Deno
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
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
3 Jul 2024
Ngobrolin Elixir
Episode ini membahas tentang Elixir, bahasa pemrograman fungsional yang berjalan di BEAM (Erlang Virtual Machine), bersa...
11 Mar 2026
Ngobrolin Otorisasi
Episode ini membahas otorisasi (authorization) dan bagaimana ia berbeda dari otentikasi yang pernah dibahas di episode s...
25 Okt 2023
Jangan gunakan NodeJS sebelum nonton video ini!
Episode ini membahas JavaScript di sisi server, dan sengaja tidak dibatasi pada Node.js saja — sekarang ada Deno, Bun, C...
Suka episode ini?
Episode baru setiap Selasa malam. Dengarkan lewat YouTube, Spotify, atau feed podcast favoritmu.
Memuat komentar dari GitHub Discussions...
Jika komentar tidak muncul karena ekstensi privasi / adblocker, kamu bisa berdiskusi langsung di GitHub Discussions .