Ngobrolin Teknologi Edge - Ngobrolin WEB ep25
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.
0:00(musik intro)
0:10(telepon)
0:14Halo-halo, selamat malam.
0:18Malam semuanya, selamat hari Selasa dan hari Selasa waktunya ngobrolin web.
0:26Nah, disini kita formatnya bertiga, tapi yang satu wajah baru ya, wajah baru.
0:33Berbeda, biasanya ada saya Riza, ada Eka, dan juga ada Ivan.
0:38Nah, sekarang malam ini Ivan berhalangan, jadi ada kita lah, wah kebakaran.
0:44Bintang tamu kita kebakaran.
0:48Malam ini kita mengundang Mas Donny Rubia Gatra, beliau adalah JDE untuk Google Cloud ya.
0:57Spesifikasinya di serverless ya, teknologi serverless ya Mas?
1:01Benar ya, oke. Jadi malam ini kita akan ngobrol-ngobrol yang berhubungan dengan cloud.
1:08Dan juga serverless, function dan lain-lain.
1:12Mungkin sebelum mulai Mas Donny bisa ini dulu kali ya, kenalan dulu singkat, kenalan singkat dulu dong.
1:18Oke, kenalin semua, biasanya selalu ngobrol tentang, tapi ada penyusup sekarang.
1:24Penyusup?
1:26Penyusup dari kaum-kaum yang berkutat dengan infrastructure, perkenalkan namaku Donny.
1:32Aku tinggal di Surabaya sekarang sebagai salah satu partner dan head of engineering di Zero One Group.
1:40Jadi ya, kerjaanku kebanyakan nge-manage sama nge-mentor teman-teman engineering di Zero One Group.
1:48Wah keren.
1:50Udah coding mungkin cuma 10% atau 20% belum hidup ya.
1:56Jadi ya, sangat exciting diundang buat ngobrol tentang teknis.
2:01Udah lama kita nggak ngobrol-ngobrol juga ya Mas.
2:04Siap, siap. Oke, mungkin cerita singkat aja perjalanan hingga akhirnya Mas Donny jadi GDE.
2:12Oh, sebenarnya yang menarik adalah aku bertemu salah satu Google, Google ya berarti ya, Google.
2:22Aku salah satu di event di Surabaya, jadi ada GDG Cloud Next, kalau tidak salah tahun 2018 dan dari sana,
2:34dari tahun 2018 itu kayak aku mempersiapkan diri gimana sih caranya jadi Google Developer Expert.
2:40Jadi literalis selama 4 tahun.
2:44Oh iya, benar ada sempat itu Yan, sempat ada perubahan struktur, perubahan ganti orang gitu kan, jadi mentok ya.
2:54Betul, sebenarnya ready tahun 2021 kalau nggak salah lagi.
3:00Cuman ada perubahan struktur.
Lihat transkrip lengkap
3:04Ganti personel, akhirnya nyangkut itu aplikasinya, aplikasinya.
3:09Dungu aplikasinya, terus akhirnya harus kembangin lagi karena udah nggak valid ya.
3:15Karena udah nyiapin itu udah agak lama, materi-materi yang dipersiapkan untuk menjadi seorang GDI udah ketinggalan 2 tahun gitu kan ya,
3:25materi itu akhirnya jadi harus prepare lagi untuk menyiapin itu.
3:29Dan bulan November atau apapun November tahun lalu resmi jadi Google Developer Expert di bidang.
3:36Abis itu langsung jalan-jalan ya, dev-face ya.
3:40Oh iya, langsung ditagih dong.
3:42Iya, mau kemana nih? Langsung isi di mana?
3:49Ke Medan ya, oh oke.
3:52Oke.
3:55Kota terjauh yang belum pernah dikunjungi sebelum jadi GDI, berarti Medan?
4:00Indonesia ya?
4:02Iya, Indonesia.
4:03Terjauh di barat ya Medan, nggak pernah gini kan.
4:06Malaman pertama sih ke Medan.
4:08Oke, iya. Mas Donny ke Medan, saya ke Surabaya.
4:12Ya itu lucunya tuh.
4:13Kebalik.
4:15Saya mau lepein ke Medan padahal.
4:18Karena mungkin pada saat itu temen-temen di Surabaya sudah kontak mas Riza kan.
4:23Udah duluan, iya.
4:24Nah aku baru jadi GDI, pada saat itu malah aku yang jadi ekspor ke kota lain.
4:29Oh iya Mas Donny nggak ikutan GDI Summit ya waktu kemarin di Bali gitu ya.
4:34Belum, belum masuk.
4:36Kan itu Agustus.
4:38Agustus? Bukan November?
4:42Kita Summit, GDI Summit-nya Agustus kayaknya deh.
4:47Serius? Oh iya Agustus ya, oke.
4:50Kok jadi lupa gitu, oke.
4:52Nah disini udah rame nih ya, ada dari Jakarta, halo-halo.
4:56Nantap.
4:57Terus ada Andi, ada Audi. Ini penonton-penonton setia nih.
5:02Terus ada dari Jogja, Gayu.
5:05Ada teman, dulu teman sekantor saya ini.
5:09Ada Banjarmasin, ada Surabaya.
5:13Wah mantap, halo semuanya.
5:15Nggak ini ya, nggak sia-sia. Aku keluar dari siang.
5:19Wah mantap, berarti ini masanya Mas Donny ya kelihatannya.
5:23Ternyata tuh dari narasumbernya apakah bahas klojur? Nggak, belum.
5:27Bahas klojur.
5:29Ya tunggu nanti kapan-kapan kita featuring sama yang bahas klojur kali ya.
5:35Siapa ya?
5:36Kalau ada yang penasaran tulis di komen.
5:39Oh iya boleh, siapa yang jagoan klojur?
5:42Ya Mas Donny lagi.
5:44Selamat malam.
5:46Ada 4 orang. Yang tau Mas Arya.
5:53Mas Arya.
5:55Nggak jelas. Mas salah satu dari hijra siapa ya?
6:00Yang kemarin juga kan?
6:02Oh juang, juang.
6:04Mas juang juga klojur kan? Baru belajar lagi?
6:06Baru belajar, dia kan aslinya kan itu, Okemal-Okemal.
6:10ML, family.
6:13Terus terjerumus.
6:15Nama aslinya, tapi twitternya Amper Sanda.
6:19Luki namanya.
6:22Pratera engineer sebenernya.
6:24Tapi dia malah satu cinta klojur dulu.
6:27Ada masih udah juga dari Surabaya, ada yang dari Medan.
6:30Raihan kemarin nonton nggak?
6:34Urwa Lingga.
6:36Jakarta, siap.
6:38Oke, malam hari ini kita akan bahas tentang teknologi edge.
6:42Apa itu teknologi edge dan apa untungnya kita menggunakan edge dibandingkan?
6:47Penggunaannya, kapan kita perlu pakai, gimana pakainya?
6:50Dan, iya, yang berhubungan dengan itulah ya.
6:54Seperti biasa, kalo misalkan temen-temen ada komentar atau ada topik diskusi,
6:58baik yang berhubungan atau nggak, ya boleh silahkan di komen-komen aja.
7:01Kita mulai ya. Apa itu edge?
7:04Nah, disini ada artikel dari Deno.
7:07Yang salah satu teknologi yang menggunakan edge juga.
7:10Jadi kalo edge itu, kalo kita sebut edge katanya artinya
7:16aplikasi kita atau website kita itu dihosting di banyak server di seluruh dunia.
7:24Jadi ketika ada traffic yang masuk dari misalkan kita dari Asia Tenggara,
7:33berarti dicari yang terdekat. Oh, di Jakarta belum ada.
7:35Ada yang nge-serve di Singapura misalnya. Cari tempat terdekat ya.
7:40Cari tempat terdekat. Jadi dia ada kayak geolocationnya gitu.
7:43Dia ngecek ini IP-nya dari mana, request-nya, terus diarahkan ke tempat yang terdekat.
7:49Nah, si edge-nya sendiri adalah secara simultan itu.
7:55Jadi ketika kita deploy, kan kita nggak mungkin deploy ke satu-satu, kan?
7:59Ke Singapura satu, ke mungkin Jepang satu, ke mana lagi itu?
8:03Ke Hong Kong satu, ke Amerika satu, kan capek kan?
8:06Dan secara infra dan biaya nggak mungkin kita manual, secara manual,
8:10buka hosting di 40 tempat atau 20 titik misalnya di seluruh dunia, nggak mungkin.
8:17Boleh dikoreksi kalo saya salah, Mas Don. Berarti ini edge function ini mirip seperti CDN
8:24kalo di front-end ya, untuk nyimpan-nyimpan aset. Bener nggak sih?
8:27Jadi yang paling sederhana bisa dijelaskan adalah mirip dengan CDN,
8:31tapi kita bisa menyematkan sebuah logical function, bisa.
8:36Back-end-nya lah ya, back-end-nya lah ya, gitu ya.
8:39Full server. Full server, ya.
8:42Jadi, daripada hanya files gitu, karena kita bisa lakukan misalnya,
8:47kayak misalnya autentikasi, lakukan hal-hal yang mungkin membutuhkan data gitu.
8:53Kita bisa lakukan di edge.
8:55Oh iya, bisa juga untuk sebagai perantara untuk misalkan kita connect ke API kayak payment gateway.
9:02Kita kan butuh server untuk itu kan apa, API key dan lain-lain kan.
9:06Bisa juga ya.
9:08Apakah edge server ini hanya bisa berjalan, gimana-gimana Eka, dululan?
9:13Berarti kalo buat dari perspektif web, web front-end itu memungkinkan kayak Versailles, Netlify kan
9:20sekarang semua udah nyediain edge function, ya. Berarti kita bisa menyajikan website yang server rendered.
9:29Kan kita pernah bahas tuh, episode 7 tau tuh, SSR, SSG.
9:33Jadi bisa di server rendered, entah SSR atau SSG, dengan bahasa dan localization sesuai regionnya ya.
9:42Misalnya e-commerce, kalo usernya dari Indonesia, ya harganya pake rupiah standarnya.
9:49Terus mungkin produk yang dijual ya, produk-produk yang emang bisa dikirim dan dijual di Indonesia.
9:55Dan itu semua nggak on the fly, tapi kayak di generate HTML-nya pun bisa ya, karena dia kan server ya.
10:01Bukan cuma static asset, bukan cuma SSG, tapi bisa SSR ya berarti.
10:07Tentu, jadi memang yang paling enak ya, kalo misalnya yang paling populer yang kita ketahui itu adalah Versailles.
10:13Kita bisa gunakan salah satunya, tidak hanya Versailles, tapi kita bisa menggunakan teknologi seperti server set rendering,
10:22bahkan di seluruh dunia. Kan kalo kita bisa jaman dulu gitu kan ya, aku yakin Mas Risa pernah mengalami ini gitu kan.
10:31Jaman dulu kan kita mengalami tier, tier arsitektur kan ya Mas Risa ya.
10:36Dulu masih inget nggak, masih pegang yang namanya? Atau disini silahkan komen, pernah megang lamp?
10:43-Linux, Apache, EHP. -EHP.
10:49Yang kita dulu waktu kalo belajar atau service, melalui virtual machine maupun bare metal tahun 2009-2010 itu
10:58saya masih kerasain adalah nginstall di 1pm, masih call-nya disana gitu kan ya, database-nya disana, sehingga 1pm itu tidak bisa stateless gitu kan.
11:08Dan akhirnya berkembanglah menjadi 2 tier, yang dimana aplikasi dengan database dipisah.
11:16Dan mulailah muncul yang namanya virtualisasi container, jadi kalo kita sedikit tarik evolusinya dari sana.
11:25-Kalo sejarahnya docker ya itu. -Dari akhirnya muncul lah virtualisasi docker, muncullah kayak kubernetes sekarang dan segala macemnya.
11:35Dan akhirnya yang kita ketahui teknologi edge ini sesuai dengan namanya ya, edge di ujung gitu kan, the blading edge.
11:43-Di ujung durang gitu kan. -Bagaimana kita bisa mendistribusikan aplikasi kita ke seluruh region yang ada di dunia.
11:54Oke, nah tadi ngomongin database, pertanyaan kita berdua tadi di belakang layar adalah, kalo misalkan aplikasinya backend-nya udah di edge semua nih, udah ada di berbagai region.
12:07-Terus database-nya gimana mas? -Database hosting-nya gimana?
12:10Apakah harus terdistribusi juga, atau kalo misalkan database-nya di satu tempat, misalkan di Amerika, dari Singapura ke Amerika kan ada latency juga jadinya.
12:18Jadi kita langsung bahas perkara state-nya di dalam sebuah server edge ya, jadi menurut referensi yang aku dengar, dan aku baca, bahwa ada banyak cara.
12:31Jadi cara yang pertama itu adalah kalo pernah denger salah satu platform as a service namanya Fly.io, udah denger gak Fly.io?
12:39-Tetap pake. -Nanti kita bahas itu malah.
12:41Oh itu, kita bahas itu, jadi aku coba bahas dua ya, jadi kenapa Fly.io mereka menyediakan cluster dan sedikit infrastruktur bagaimana mereka bisa menyediakan satu postgres kalo tidak salah.
12:55-Postgres, ya postgres betul. -Postgres yang bersifat cluster dan dia menyediakan di beberapa tempat server di region di dunia.
13:03Jadi memang ada cluster tersendiri, tapi yang aku denger dari sebuah Vercelcon tahun lalu, 2022, itu dari Gwilmu sendiri salah satu CEO-nya Vercel.
13:17Itu bahwa bagaimana database tetep-tep pusat di salah satu region, tapi yang disimalkan adalah caching-nya.
13:25-Oh caching-nya yang didistribusikan gitu ya? -Ya, caching-nya yang didistribusikan.
13:30Jadi nanti bahkan punya identification tiap region itu bisa punya identifikasi sendiri, datanya di caching juga disana.
13:43Dan ada beberapa, bukan banyak ya caching, ada caching dari header-nya sendiri, ada caching dari tekniknya, dari platform yang disediakan.
13:54Jadi salah satu yang coba untuk diselesaikan permasalahannya adalah teknik caching dan Vercel udah melakukan itu.
14:02Jadi kita itu udah ngerasain betapa susah, karena seinatku ada dua permasalahan yang selalu dihadapi oleh komputer sains.
14:09Yang pertama adalah menaman variable, itu paling susah.
14:12Yang kedua, caching invalidate.
14:15Yang kedua adalah invalidate caching disana.
14:18Nah, makanya banyak banget platform yang menyediakan ads itu untuk me-leverage kemudahan bagaimana kita menggunakan sistem yang terdistribusi seperti ini.
14:27Jadi dua, antara memang kita sediakan cluster ya, jadi ada beberapa multi-region, bahkan sampai sekarang bisa multi-region misalnya.
14:36Di satu itukannya, misalnya Singapura, itu kita bisa cluster dengan, perspektifnya adalah Google, berarti kita juga bisa memanfaatkan network Google.
14:46Karena Google sendiri itu secara network kan dia punya internal ya.
14:51Jadi kita lebih cepat misalnya punya akses dari Asia Southeast 2, Asia Southeast 2 itu adalah Jakarta.
15:01Misalnya kita mau akses ke Australia gitu kan ya.
15:06Itu relativ cepat daripada kita harus ping keluar network ke internet, kita bisa pakai akses net via Google.
15:14Jadi kita tetap bisa bikin cluster sendiri sih, tapi cost-nya mahal.
15:19Karena hitungannya adalah per instance kita ada berapa.
15:24Jadi yang lebih murah itu adalah menggunakan caching daripada kita harus menyediakan cluster.
15:32Nah, caching ini juga sudah disediakan beberapa service gitu ya?
15:36Iya, disediakan beberapa service. Dari Verso kalau tahun lalu ya, aku udah lama nggak nyoba Verso tahun ini, itu ada nama experimental edge gitu.
15:46Jadi dicoba bagaimana kita bisa menggunakan cachingnya di Verso Function.
15:53Atau ya kita bisa set up header-nya aja gitu untuk caching data.
15:58Dari request-nya ya, waktu kita melakukan request, waktu front-end web melakukan, front-end aplikasi apapun melakukan request ke si server yang edge function-nya itu ya.
16:08Jadi bisa tergantung dari sisi mana kita mau caching, apakah dari sisi kita sebagai engineer tahu bahwa kita mau caching satu part yang ada di sana, atau kita me-leverage apa yang sudah ada.
16:25Nah, beberapa service tadi sudah disebutkan, ada Verso, terus ada Deno, Deno Deploy ya kalau nggak salah ya, Deno Deploy.
16:33Terus ada juga Netlify juga ada, dan ada banyak yang lainnya.
16:40Tapi, oh iya satu lagi ini, Cloudflare. Cloudflare juga ada namanya Cloudflare Worker.
16:46Nah, dari sekian banyak ini, kecuali fly.io ya, banyak kan ini JavaScript, apakah si edge function ini lebih cenderung ke teknologi web atau JavaScript,
17:00atau sebenarnya semua platform atau bahasa juga bisa jalan di edge.
17:04- Sagnostik sebetulnya kan ya? - Sagnostik ya.
17:07Nah, kalau kita sebut yang konteksnya di sini adalah edge function itu mulai orang mengarahkan kepada JavaScript runtime.
17:18Dan kita tahu bahwa, ini menurut gue salah satu yang dulu, jujur ya, dulu itu aku nggak suka JavaScript.
17:26Karena susah banget dulu untuk memasukkan mindset, karena aku berangkat dari Python dulu.
17:32- Dari Python, iya. - Jadi untuk memahami asingkronus itu, apalagi dulu belum ada IS5 ya.
17:39Wah, dan gue masih jelek semua di callback.
17:42Iya, itu kayak susah banget memahami, tapi semakin kesini aku mulai memahami bahwa,
17:48oh ada beberapa aspek yang sangat menarik di dalam dunia JavaScript.
17:53Ternyata menarik dan agak memusikkan ya bagi teman-teman front-end ya, misalnya harus mengcover kari,
17:59mengcover beberapa web engine yang ada sekarang.
18:04- Yang berbeda ya? - Berbeda ya.
18:06Nah, ternyata adalah kenapa kok bisa instant?
18:09Itu adalah karena memang teknologi yang digunakan itu adalah menggunakan beberapa web engine
18:15dan menggunakan web API yang sudah sangat gelubah.
18:19- Oke. - Jadi kita bisa...
18:21- Web engine berarti ya? - Iya, berbasis web engine.
18:24- Misalnya V8. - Misalnya V8, di sini ada JavaScript.
18:30Aku nggak tahu lupa kalau yang Cloud Fair Worker itu pakai apa, tapi jelas kalau Dino kan pakai V8 ya.
18:37- Cloud Fair Worker mereka bikin sendiri, Mas. - Bikin sendiri, tapi kompatibel.
18:42Compliance-nya adalah web API dia bisa.
18:46Kita sering bahas nih di episode dulu teknologi kayak gini tuh untungnya adalah standards-based.
18:53Jadi walaupun engine-nya macam-macam, dan walaupun belum sempurna 100% kompatibel,
18:59tapi karena standards-based, kalau pun mereka bikin sendiri, ya kita tetap bisa nulis kode yang sama ya.
19:05Betul. Dan yang itu yang membuat karena Edge ini, jadi bayangin kita semakin terabstraksi kan di sana.
19:13Jadi dulu bayangkan, misalkan kata-kata dulu kita harus set up server bare metal,
19:18kemudian ada namanya virtualisasi. Pernah dengar virtual box ya, kalau misalnya orang virtualisasi ya.
19:26- VMware, VMware. - VMware itu mulai jarang pegang hardware gitu, karena udah ada VMware.
19:36Kemudian naik lagi abstraksinya, ke container di sana, orang mulai jarang pegang.
19:41- Sebelum itu kan pakai Vagran dulu kan? - Oh iya Vagran, salah satu yang buat oleh teman-teman HasiCorp dulu,
19:48pembuatnya, untuk menggunakan Ruby, Vagran.
19:55Itu lebih cepat lagi ada container yang up-nya lebih cepat di sana.
20:00Lihat ada yang lebih cepat lagi sekarang, kalau di sini ada JavaScript runtime yang cepat,
20:05makanya Edge itu bisa relatif cepat up-nya, karena ada abstraksi di atasnya lagi.
20:10- Pasti raspis nih yang kayak gini-gini nih? - Enggak sih.
20:14- Kirain. - Enggak mesti, enggak mesti.
20:17Aksesnya yang cepat itu lah, kita itu berdiri di atas abstraks yang sudah ada.
20:21Jadi kita hanya butuh jalanin engine-nya doang untuk di sana.
20:25Jadi kita itu sudah di berdiri di atas sesuatu yang kita itu dulu set up-nya harus manual,
20:32sekarang lebih cepat di sana. Jadi start up time dari JavaScript runtime ini jauh lebih cepat
20:39daripada misalnya kita harus menyalakan docker container di sana.
20:43Jadi kata-kata ada docker container di atasnya ada runtime sendiri.
20:47Dan yang kita yang belum pernah kita bahas juga mungkin di sini adalah WebAssembly ya.
20:51Jadi ada juga engine WebAssembly juga bisa untuk menjalankan di Edge.
20:56Jadi kenapa bisa cepat? Karena dia menggunakan abstraksi yang jauh lebih simple di sini.
21:04Bahkan kalau menurut kan kebesaran kan ya, kalau menurut kan sangat heavy di sana.
21:09Jadi ini bandingnya lebih kecil kenapa Edge itu juga bisa di deploy langsung dengan instart.
21:15Dan biasanya itu enggak langsung ke deploy semua.
21:19Jadi sudah ready di Edge-nya tinggal di call aja, dia langsung getting started dan warm secara server
21:27yang juga diakses di setiap region.
21:30Oh berarti enggak call start ya?
21:32Ya, jadi call start-nya akan jauh lebih cepat daripada container.
21:37Relatif ya, relatif lebih cepat. Tergantung, lagi-lagi tergantung contest.
21:42- Tergantung pasti. - Tergantung. It depends ya.
21:45Ini jawaban paling, paling gampang adalah it depends.
21:51Tapi maksudnya comparatively lebih cepat daripada konsep virtual box yang biasa, yang konvensional.
22:01Ya, jadi ya kita semakin, ini sebenarnya ada artikel menarik yang mau saya share.
22:06Tadi mungkin nanti aja di akhir.
22:08- Boleh, boleh, boleh. - Jadi, seberapa definisi fullstack itu apa sih?
22:13Tergantung, it depends.
22:16Ya, fullstack 20 tahun lalu, 30 tahun lalu itu sampai harus pegang kabel.
22:21Oh iya, Superman kan dulu kan?
22:23Ya, agungan Superman itu fullstack ya.
22:25Ya, fullstack itu fullstack.
22:27Tapi semakin ter abstraksi, kita semakin ter abstraksi itu yang membuat orang-orang kan sekarang hanya fokus aplikasikannya.
22:34Kayak nggak perlu harus set up.
22:36Aku masih, aku nggak tahu Mas Riza, tapi aku tuh masih pernah gotong-gotong server ke data center.
22:42- Untuk set up. - Tuh, saya nggak pernah.
22:46Jadi aku masih inget gotong-gotong data center gitu kan.
22:49Sekarang tinggal persel deploy kan kesel.
22:52Kita semua sekarang malah nggak ngeliat, jangan kan ngangkat ya, jangan kan ngeliat server-nya.
22:57Barangnya nggak ada.
22:59Walaupun somewhere sih pasti ada ya, ibaratnya kayak wireless kan.
23:02Sebetulnya di dalamnya juga ada kabel, tapi kita nggak lihat dan kita nggak ngurusin, kita nggak berurusan sama kabel.
23:08Walaupun di dalam irbat wireless ya mungkin ada kabelnya.
23:12Nah, ini serverless berarti ada servernya somewhere, tapi kita nggak lihat servernya secara fisik.
23:18Sebenernya serverless itu kan bukan nggak ada server kan, tapi memanage server dalam jumlah yang sedikit.
23:24Bukan kita yang maintain servernya.
23:26Ya, maintenance-nya itu itu lah, apa namanya, low effort lah gitu.
23:32Sedikit lah gitu.
23:34Kalau dulu kan kita harus mikirin, "Wah ini harus di patch, harus update ubuntunya."
23:41Update ubuntunya, update HP-HP-nya.
23:46Kenapa nggak, tahu nggak kenapa gotong-gotong harus gotong server?
23:50Dulu server itu ada di rumah.
23:52Di rumah kantor yang lama dulu gitu kan ya.
23:54Tahu-tahu ada ujian deras, ianya jatuh.
23:57Jadi listriknya mana?
23:59Diri banget.
24:02Ngeserve bisnis.
24:04Jadi kayak kita bisnis itu tidak bisa akses aplikasi yang kita buat.
24:08Kita harus gotong center-center untuk, "Ini gimana ini aku nggak bisa melakukan transaksi."
24:13Itu chaos sih hari itu. Jadi kayak kita cari, "Ini mau gimana?"
24:17Taruh data center, oke.
24:18Balak mobil, taruh ke mobil, pindah ke data center, set up net drop-nya.
24:23Benar-benar pengalaman tak terlupak.
24:25Saya dulu masih jamannya ada tim infra.
24:31Jadi kalau misalkan mau deploy, tinggal itu, tinggal bilang aja, "Mau deploy nih, siapin server dong."
24:36Enak ya.
24:37Kalau sekarang kayaknya engineer suruh bikin sendiri ya.
24:40Dikasih account, GCP, atau cloud yang lain gitu kan, ya udah.
24:45Kalau emang mau coba-coba, silahkan spin up VM atau pakai docker atau apa gitu ya.
24:51Kalau dulu ada tim khusus tuh.
24:55Kalau sekarang ada timnya DevOps tapi fungsinya lebih ke bikin platform kan.
25:02Untuk memudahkan kita melakukan itu sendiri.
25:06Sekarang developer job-designnya nambah ya.
25:09Iya.
25:10Tapi sekarang nggak langsung nguntungin buat apa ya.
25:14Misalnya kalau, ya dulu kan emang semua full stack, belum ada konsep front-end.
25:18Tapi sekarang nih, nggak tahu ini opini ya, nggak tahu teman-teman setuju atau nggak.
25:22Dengan adanya teknologi-teknologi kayak serverless, as-function gini.
25:26Ya minimal aku pribadi yang sebetulnya front-end oriented banget, ngerasa kayak diuntungin banget.
25:32Karena jadi tanpa, itu tadi tanpa harus ngegotong server atau ngapain, ya minimal bikin MVP.
25:39Dari awal sampai akhir, full stack, pakai code work itu relatif gampang lah.
25:45Karena bahasanya kan JavaScript dan TypeScript.
25:47Ya yang penting tahu standarnya, sintaksnya, logiknya, ya udah.
25:52Bisa bikin produk full sampai jadi, sampai launching, walaupun MVP.
25:57Jadi kalau skalanya besar, udah scale up ya pasti mungkin butuh, butuh resource yang lebih...
26:03Butuh orang ya.
26:04Soal infra, soal apa lah load balancer atau apa yang, yang udah,
26:09kalau udah serve usernya sampai jutaan gitu ya itu beda kasus.
26:14Tapi kalau untuk bikin MVP itu kayaknya sekarang anak front-end tuh kayak dimudahkan banget nggak sih?
26:19Oh iya, banyak banget.
26:21Gimana Mas Den, lanjut lanjut.
26:26Yang mana nih dilanjut ya?
26:28Ini yang barusan, dikomentari, dikomentari.
26:30Oh iya, jadi memang akhirnya kan fokusnya lebih ke aplikasi kan.
26:36Temen-temen tidak harus lagi risau dengan hal-hal yang berbau dengan kabel misalnya.
26:41Jadi bisa fokus bikin aplikasi dan bahkan banyak banget kan yang bisa bikin start up,
26:49bootstrap satu orang, tanpa-tanpa harus ngerti tentang server gitu.
26:54Bahkan kalau kita mau lebih lagi abstraksi, ada yang namanya no-code sama low-code gitu.
26:58Jadi tinggal kita itu definisi fullstack-nya apa?
27:02Jangan terlengkung dengan yang namanya fullstack.
27:06Iya, sekarang tuh semua ada servisnya ya.
27:10Mau serving image, ada servisnya, autentikasi, ada servisnya, mau apa ya?
27:18Dulu saya set up email server sendiri, kalau sekarang ada servisnya buat email transaksional.
27:23Banyak, sekarang udah enak gitu ya, tinggal bayar.
27:28Ya dulu juga bayar ya bikin servernya.
27:33Hampir semua kan sekarang ada free tier-nya.
27:35Oh iya, betul.
27:37Atau tadi autentikasi, email, email service, transaksional email, semua ada free tier buat MVP.
27:43Betul, betul, betul.
27:45Nanti kalau misalkan sudah scaling, baru bayar ya?
27:49Ya, baru bayar.
27:50Baik bayar orang atau bayar servisnya?
27:52Atau dua-duanya.
27:54Atau dua-duanya.
27:56Nah yang menarik juga dari link yang dari Mas Don nih, ini ada tentang The Third Age of JavaScript.
28:04Ini seru nih.
28:06Apa tuh?
28:07Bisa, mungkin bisa di ceritakan Mas Don.
28:11Jadi dari sebutnya siapa ya, Sweng, aku lupa menyebutkan Mas ini.
28:18Suan Weng, sound.
28:22Nama username-nya ya itu, maaf ya Mas, kalau Mas maaf.
28:27Sound kan, Suan Weng kan, nama aslinya kan.
28:31Ya, dan nama panjangnya.
28:33Iya, dia orang Singapura kan.
28:35Oh iya, orang Singapura ya?
28:37Iya, dia lagi di Singapura sekarang.
28:39Oh lagi di Singapura.
28:41Dia di US deh, orang Singapura tapi di US.
28:44Iya, di US dia.
28:46Nah, jadi kalau kita kembali lagi tentang apa sih The Third Age of JavaScript karena kita melihat bahwa terjadinya perubahan.
28:53Kita tahu lah ya, ada yang namanya JavaScript Vetic gitu kan.
28:57Tapi mau gak mau, kita itu selalu bergerak maju ke depan disana.
29:02Nah, yang dimaksud The Third Age of JavaScript itu banyak tools-tools yang mulai untuk menggantikan tools-tools yang sudah ada sekarang gitu.
29:11Kalau gak tahu ya, kayaknya jamannya Mbak Eka atau Mas Risa masih pernah denger gulp ya.
29:16Atau dan kawan-kawan.
29:18Gulp kan, gulp, geran.
29:20Pasti pernah mainan yang begituan disana.
29:22Kayak sekarang udah geran ya.
29:24Minggu lalu bahas Yeoman ya.
29:26Yeoman.
29:28Disana itu mulai ada yang namanya kayak Fit gitu kan ya, Compiler.
29:34Disana Monorepo gitu kan, by the way aku pake Monorepo NXT kantor, jadi siapa tahu kalau dia mau bahas lagi.
29:42Oke, siap.
29:44Monorepo disana.
29:46Kemudian juga banyak re-architect gitu kan ya, banyak yang dulu hanya berdasarkan satu region.
29:54Sekarang sudah multi-region ada function.
29:56Jadi Edge ini adalah salah satu The Third Age of JavaScript gitu.
29:59Bahwa JavaScript bisa dijalankan dimana saja disana.
30:02Yang selalu aku gaungkan adalah kenapa kok akhirnya Zero One Group betting ke JavaScript adalah always bet with JavaScript.
30:11Walaupun dulu pernah musuhan ya.
30:13Walaupun pernah musuhan itu.
30:15Pernah.
30:17Akhirnya sekarang.
30:18Saya benci jadi cinta.
30:20Asik.
30:22Jadi cinta dan jadi sumber.
30:24Sumber penghasilan.
30:26Dojekinya disana ya.
30:28Ternyata ya.
30:30Akhirnya kita mulai muncul ada namanya WebAssembly atau yang pernah.
30:34Jadi tahu juga kan Mas Riza bawa aku sama kantorku, aku sama salah satu founder di Zero One Group lagi coba Phoenix.
30:43Hmm, Phoenix.
30:45Akhir juga disana.
30:46Bahwa itu namanya HTML overwire gitu kan ya.
30:50Yang di set itu HTMLnya gitu.
30:53Itu menarik juga bagaimana kita mindsetnya itu akhirnya juga.
30:59Kalau kita ke React Server Component.
31:01Mungkin ini kan dengan web ya.
31:03Bagaimana React Server Component itu bekerja.
31:05Yang di render itu adalah di level server yang dikirimkan HTML walaupun.
31:11Walaupun kalau kita mau React Server Component tetap harus ada overhead.
31:17Karena real ada runtimenya.
31:21Kalau jadi swell mungkin aman itu.
31:25Makanya ada astro gitu kan ya.
31:28Jadi padahal kita nge-send sama React Dome-nya.
31:32Kita cuma nge-send HTML-nya disana.
31:35Tapi kita hydrate.
31:38Gimana itu Mbak?
31:40Hydrate belakangan, jadi yang dikirim ada dulu.
31:42Oh ya hydrate ya.
31:44Hydrate belakangan.
31:46Halo.
31:52Duh kok putus.
31:54Wah Mas Donny-nya koneksinya putus kayaknya.
31:59Oke sambil menunggu Mas Donny.
32:01Kita baca-baca komen dulu.
32:03Komennya ramai sekali ya.
32:05Mas Donny-nya nge-freeze.
32:08Oh iya.
32:10Ada Ivan? Masuk Ivan.
32:12Masuk silahkan.
32:14Siap titit.
32:16Ini ada beberapa pertanyaan nanti yang berhubungan dengan Edge.
32:21Nanti kita akan bahas.
32:23Yang tadi...
32:25Nur Holid juga sempat jadi fullstack ya.
32:27Masang-masang server.
32:29Enggak, maksudnya masang server.
32:31Iya. Ini...
32:33Rantaru.
32:35Curhat.
32:37Setting post fix sendiri ya.
32:39Terus juga...
32:41Ya ini menarik juga ya.
32:43Rush masuk banget ke dunia JS.
32:45Karena trendnya...
32:47Orang-orang developer sekarang...
32:49Yang bikin DevTools, salah satunya...
32:51DevTools JavaScript itu banyakan pakenya Rush.
32:53Dan juga...
32:55Go lang juga ada beberapa ya.
32:57Jadi bahasa-bahasa yang...
32:59High performance digunakan...
33:01Yang compile digunakan untuk...
33:03Membuat tools untuk...
33:05Melakukan sesuatu di JavaScript.
33:07Itu lumayan banyak...
33:09Contohnya ya kayak...
33:11SWC ya.
33:13SWC kemudian...
33:15Yang di pakai oleh Next juga ya.
33:17Rome ya.
33:19Enggak tahu. Turbo Repo...
33:21Pakai Rush atau enggak ya?
33:23Enggak tahu.
33:25Halo-halo. Soalnya kita kembali.
33:27Mati lampu.
33:29Mas Donnie mati lampu katanya.
33:31Request time out.
33:35Ceplek gitu.
33:37Itu tuh komen fans berat Mas Donnie...
33:39Dinyalain dulu. Dimunculin dulu.
33:41Fans berat...
33:43Mas Donnie hadir. Dimas, Dimas.
33:47Halo Dimas.
33:49Mas yang mana itu?
33:51Oke. Nah...
33:57Ini...
33:59Kita tadi sedang membahas tentang...
34:01Tentang fenomena Rush.
34:03Yang banyak digunakan...
34:05Untuk tools, membuat tools...
34:07Untuk JavaScript ya.
34:09Termasuk juga kalau nggak salah...
34:11Dino juga dibuat...
34:13Pake Rush ya.
34:15Dan aku punya kesempatan untuk...
34:17Contribute ke Dino.
34:19Jadi...
34:21Akhirnya ngerasain...
34:23Contribute ke proyek besar ya...
34:25Pake Rush. Dan itu sampai harus.
34:27Karena yang namanya...
34:29Runtime itu gede banget kan.
34:31Buildnya pun...
34:33Pemakan 20 giga.
34:35Jadi aku build Dino.
34:37Itu ngabisin...
34:39Buildnya sama binarynya itu...
34:41Totalnya itu ada 20 giga.
34:43Jadi ngambil SSD...
34:45Lumayan gitu kan. Apalagi RAM.
34:47RAMnya juga...
34:49Untuk ngeload satu...
34:51Pitch file...
34:53Testing di Dino itu juga...
34:55Ribuan line of code.
34:57Atau puluhan ribuan.
34:59Bahkan pake FIM itu ngeheng.
35:01Waduh.
35:03Jadi lumayan pengalaman pertama ya...
35:05Untuk contribute ke Dino.
35:07Dan itu memang Dino...
35:09Menariknya Dino itu ditulis awalnya pake Go.
35:11Waduh betul. Habis itu di rewrite kan.
35:13Di rewrite pake Rush.
35:15Dan akhirnya juga keluar dari...
35:17Kayaknya bahas kemaren deh aku lupa.
35:19Eka yang bahas tentang TypeScript kan ya.
35:21Kemaren kan.
35:23Nah Dino itu salah satu yang...
35:25Gak pake TypeScript.
35:27Dia akhirnya pake JavaScript.
35:29Balik lagi ya ke JavaScript ya.
35:31Awalnya TypeScript terus balik ke JavaScript ya.
35:33Karena compile time gitu kan.
35:39Jadi ya Dino pake Rush gitu kan ya.
35:41Banyak kayak...
35:43Ada padanannya Elasticsearch.
35:45Kalau Mbak Eka atau...
35:47Mas Rizatau itu adalah...
35:49Baileysearch.
35:51Itu juga menainkan Rush.
35:53Kalo Bun itu pake Zig ya.
35:55Zig line.
35:57Bun itu pake Zig ya.
35:59Oke oke.
36:01Nah kita lanjut...
36:03Bahasa apa lagi nih?
36:05Gimana? Kalo misalkan...
36:07Kita tertarik mau...
36:09Tertarik dengan Edge.
36:11Terus kita mau pake.
36:13Gimana tuh caranya?
36:15Yang paling gampang itu adalah...
36:17Gunakan platform yang out of the box...
36:19Sudah menyediakan Edge.
36:21Jadi bayangkan kalian itu...
36:23Edge itu membuat kalian...
36:25Membuat sebuah satu produk...
36:27Digital yang mampu...
36:29Menargetkan market pasar Indonesia.
36:31Oke.
36:33Kalo pernah tau Indie Hacker ya.
36:35Yang orang-orang berbagi cerita...
36:37Bagaimana membuat sebuah produk...
36:39Kemudian dipastarkan secara global.
36:41Gila-gila kan Edge kalian itu...
36:43Bisa punya banyak...
36:45Konsumen atau user, tidak hanya dari Indonesia.
36:47Tapi dari seluruh dunia dan tidak perlu...
36:49Bingung perkara latensi.
36:51Disana. Gunakanlah...
36:53Versal, gunakanlah...
36:55Atau Versal, Fly I/O.
36:57Atau sekarang, ternyata juga ada...
36:59Aku hampir lupa, ada yang namanya Distributed Database.
37:01Misalnya Planet Skill.
37:03Ya, yang MySQL bukan?
37:05MySQL disana.
37:07Aku lupa pada namanya Postgres apa.
37:09Cuman, untuk...
37:11Serving aplikasi kita...
37:13Keseluruh dunia itu sekarang udah gampang banget.
37:15Jadi, gunakan...
37:17Kalo Eskialet, kalo ga salah namanya...
37:19Lightstream bukan ya?
37:21Nah itu udah, aku udah lama ga tau ya.
37:23Oke, lanjut.
37:25Jadi, before getting started...
37:27Sebenernya, udah harus paham ya...
37:29Tentang Edge itu.
37:31Sama detail, tapi...
37:33Intinya adalah kita dibantu untuk...
37:35Membuat aplikasi kita available diseluruh dunia.
37:37Kan kita ga mungkin kan...
37:39Kita mau punya...
37:41Apps atau aplikasi, misalnya Node.
37:43Kita mau bikin kayak Notion gitu kan ya.
37:45Hanya untuk orang Indonesia.
37:47Ya, kamu yang dari UK...
37:49Ngakses aplikasi mau kan lambat.
37:51Karena servernya ada di Indonesia.
37:53Jadi, ya...
37:55Gunakan belah beberapa platform...
37:57Yang sudah tersedia.
37:59Ya, teknologi Edge ini...
38:01Lebih cocok digunakan kalo...
38:03Service kita berlaku global.
38:05Kalo misalkan hanya...
38:07Serving di Indonesia saja, misalkan contohnya apa ya?
38:09Cetus berita gitu.
38:11Berarti ya pake VM aja yang di lokal gitu ya?
38:13Jadi, sebenernya...
38:15Permasalahan yang dihadapi orang yang membuat...
38:17Aci Indonesia adalah...
38:19Kita belum sampe kesana gitu.
38:21Belum sampe kesana gitu.
38:23Bahwa, permasalahan ini...
38:25Sebenernya kita tidak terlalu...
38:27Quot-unquot butuh untuk menggunakan Edge.
38:29Karena selama kalo mau ke Indonesia ngapain?
38:31Jadi, jadi...
38:35Walaupun kita excited dengan...
38:37Jargon-jargon seperti ini, menurutku...
38:39Untuk sebagai skill...
38:41Seorang software developer...
38:43Atau software engineer sebenernya tidak terlalu...
38:45Signifikan.
38:47Untuk dipelajarin orang Edge.
38:49Tapi, mindsetnya adalah bukan mempelajarin teknologinya.
38:51Tapi kayak ada peluang.
38:53Kita tau konsepnya.
38:55Secara garis besar umumnya.
38:57Dan membantu seperti Mbak Eka...
38:59Yang fokus kepada produk itu sendiri.
39:01Jadi, tidak udah.
39:03Tidak usah memperbedulikan deployment.
39:05Udah. Aku paham...
39:07Versal fly I/O deploy ke semua.
39:09Aku bisa bikin produk untuk...
39:11Semua yang ada di dunia ini.
39:13Keren ya.
39:17Kalo kita mau launching...
39:19Service atau produk kita secara global.
39:21Jadi, sekarang lebih gampang ya.
39:23Kalo di Google Cloud sendiri ada ga sih, Mas?
39:25Untuk Edge ini?
39:27Salah satu...
39:31Produk, mungkin belum yang...
39:35Dedicated.
39:37Ada seperti Versal.
39:39Atau seperti...
39:41Disana. Jadi, kata-kata Cloud Function.
39:43Cloud Function gitu.
39:45Dia...
39:47Bisa kita deploy ini ke multiple region.
39:49Akhirnya manual.
39:51Kita ga bisa...
39:53Secara otomatis...
39:55Terdisibusih langsung disana.
39:57Tapi yang pernah...
39:59Mungkin kalau CDN pasti lah ya.
40:01Pasti sudah ada.
40:03Firebase Hosting itu...
40:05Yang salah satu yang pernah aku pake...
40:07Buat ngeserve salah satu dashboard...
40:09Internasional, itu juga...
40:11Firebase Hosting dan Fastly.
40:13Karena kolega CDN-nya...
40:15Kalo tidak salah...
40:17Itu adalah Fastly.
40:19Dari Google Insider pun kayaknya...
40:21Belum ada.
40:23Belum ada produk yang kayak...
40:25Mudah.
40:27Karena memang targetnya kan berbeda kan.
40:29Target pasar dari...
40:31Google Cloud sendiri kan berbeda dengan teman-teman...
40:33Seperti Versal. Dan ini juga...
40:35Aku kenapa bahas ini...
40:37Ini sebenernya menarik. Karena kebanyakan...
40:39Kayak Deno, Versal...
40:41Play.io, itu adalah venture capital.
40:43Pakingnya.
40:45Hmm, oke.
40:47Jadi kenapa kok Deno itu...
40:49Bikin Deno Deploy? Karena...
40:51Deno itu...
40:53Kan bikin open source, dapet uang dari mana?
40:55Kenapa kok...
40:57Deno itu nge-push edge? Karena...
40:59Supaya orang itu pake Deno Deploy.
41:01Sama kayak Gun itu, Bun...
41:03Itu sekarang kan didanaing...
41:05Sama venture capital.
41:07Karena Indian dia mau bikin edge juga.
41:09Disana.
41:11Dapat uang dari mana gitu, kalo misalnya disana.
41:13Jadi...
41:15Kayak framework-framework itu...
41:17Framework yang open source.
41:19Jualannya itu jualan hosting. Itu udah umum kan?
41:21Iya. Sudah...
41:23Mulai umum sekarang. Disana.
41:25Sehingga...
41:27Yang bisa dikejar itu adalah...
41:29Developer experience.
41:31Kemudahan dari setiap orang yang mau developer.
41:33Orangan. Sedangkan kalo kayak misalnya...
41:35Google ataupun...
41:37Cloud leader yang lain...
41:39Di ranah enterprise itu...
41:41Targetnya beda.
41:43Bila level, bukan?
41:45Jadi misalnya si Verstel...
41:47Netlify itu justru menggunakan...
41:49Di belakang layar menggunakan...
41:51Google Cloud.
41:53Out yang lain, kan?
41:55Bener. Dan Verstel pun kalo tidak salah...
41:57Ada plugin atau sebutannya...
41:59Di Verstel, itu bisa connect langsung...
42:01Ke Google Cloud. Untuk kita punya database...
42:03Maupun data engineering.
42:05Misalnya kita mau ada analytics, kita mau lempar...
42:07Ke BigQuery, itu bisa langsung connect.
42:09Tapi masih beta. Tapi udah lama gak ngecek.
42:11Lumayan.
42:13Apalagi kayak kita yang dapet credit.
42:15Ya aku belum apply sih. Nanti aku play deh.
42:19Lumayan dapet gratis nih.
42:23Ada pertanyaan dari Adbit yang sebenernya udah kita jawab...
42:25Di awal ya. Tadi kita ada pertanyaan...
42:27Tentang itu tentang database. Jadi...
42:29Database nya satu, opsinya tadi...
42:31Bisa terdistribusi juga.
42:33Yang kedua, kita lebih banyak main di...
42:35Caching strateginya ya.
42:37Yang terdistribusinya justru, yang ikut adalah...
42:39Servernya juga bisa nge-caching dari...
42:41Database ya.
42:43Bisa, bisa dari...
42:45Banyak level kan. Jadi kayak mau di sebelah mana.
42:47Cuman yang paling gampang itu adalah...
42:49Dari sisi header request itu pasti...
42:51Kalau header request aplikasi kan...
42:53Statik ke cachingnya kan.
42:55Yang diirim apa itu.
42:57Tapi kalau dynamic, misalnya...
42:59Kita punya sosmed gitu, ada yang...
43:01Postingan baru, itu kan butuh...
43:03Caching di sisi servernya juga ya.
43:05Berarti ya.
43:07Tapi kita kan kalau misalnya...
43:09Kita ngomong SSR, berarti kan...
43:11Ketika kita bikin fetch gitu ya.
43:13Misalnya bayangin...
43:15Kita bikin fetch ke API gitu kan.
43:17Kita kan bisa tetap setting ini kan ya.
43:19Request header untuk...
43:21Untuk nge-cache data JSON nya kan.
43:23Jadi...
43:27Itu juga bisa digunakan. Tapi ya hati-hati aja.
43:29Kalau misalnya gak update.
43:31Kalau paling bahaya.
43:33Yang di-cache, yang dikirim...
43:35Sejam yang lalu...
43:37Data nya gak berubah-ubah.
43:39Ntar di round-end bahaya.
43:41Berarti di servernya pun harus...
43:43Caching.
43:45Atau bikin bisa gak sih?
43:47Pakai SWR atau semacamnya.
43:49Still-while-revalidate. Tapi di sisi servernya.
43:51Jadi servernya...
43:53Diam-diam sebetulnya...
43:55Manggil data lagi dari database.
43:57Tapi dia ngirim...
43:59Cached response supaya cepet.
44:03Kalau still-while-revalidate kan...
44:05Kebanyakan ditriggernya dari klien ya.
44:07Jadi menurutku kayak gak ada...
44:09Gak ada konsep.
44:11Ini correct me if I'm wrong yang dikomen.
44:13Silahkan.
44:15Di sana.
44:17Berarti kan diam-diam kan ya.
44:19SWR kan diam-diam. Mereka ke caching.
44:21Tapi itu kalau dari update baru...
44:23Baru diganti ya.
44:25Di level kliennya.
44:27Kalau di dalam server...
44:29Itu jatuhnya kayak keronjok.
44:31Mecekin apakah udah update apa enggak.
44:33Jadi menurutku gak ada...
44:35Kayak SWR di dalam server sih.
44:37Jadi lebih ke arah ada...
44:39Beberapa technology caching.
44:41Contohnya tadi yang versi experimental edge.
44:43Di sana.
44:45Yang kita bisa lakukan.
44:47Tapi aku jujur aku belum...
44:49Sampai sana sih.
44:51Untuk implement itu.
44:53Jadi aku harus double check lagi dokumentasinya.
44:55Oke. Ini ada pesan yang menarik dari...
44:57Ada komen database nih tadi.
44:59Yang tadi?
45:01Yang ini?
45:03Bukan. Ada yang grow effects.
45:05Grow effects, oh iya.
45:07Aku enggak ngerti ini apa.
45:09Eventual consistency.
45:11Jaminan cara-cara menghadapi delay.
45:13Ini.
45:15Delay eventual consistency database.
45:17Ketika misal...
45:19Sebuah transaksi butuh bersifat...
45:21Sinkronisasi.
45:23Atau hal-hal yang sebaiknya non edge system.
45:25Oh, jadi transaksional.
45:27Atau misalkan harus...
45:29Sinkronisasi. Harus sinkron.
45:31Jadi yang...
45:33Konteks dari...
45:35Mungkin itu salah satu...
45:37Kalau misalnya Mas Riza atau Mbak Eka pernah mendengar...
45:39Konteks di dalam database itu kan ada...
45:41Theor, bukan teori ya.
45:43Tapi ada satu prinsipul namanya ACID ya.
45:45ACID ya.
45:47Jadi Atomicity.
45:49Consistency.
45:51Integrity.
45:53Jadi yang dimaksikan adalah ketika ada beberapa transaksi...
45:55Yang harus itu...
45:57Sinkronisasi itu apa yang terjadi, apakah ditaruh di edge.
45:59Jawabannya adalah...
46:01Ya, kita tidak...
46:03Menaruh database di edge.
46:05Sebenarnya.
46:07Cluster database yang...
46:09Terhubung dengan beberapa region yang ada.
46:11Jadi definisinya bukan edge.
46:13Tapi adalah cluster database.
46:15Sehingga cluster itu bersifat sebagai satu kesatuan.
46:17Dan...
46:19Prinsipul ACID itu tetap ada disana.
46:21Jadi kalau kita ngomong secara database...
46:23Secara detail ya.
46:25Tapi kalau kita ngomong perkara informasi paling enaknya...
46:27Tetap pakai caching.
46:29Karena itu yang direkomendasikan sama...
46:31Guilmo Delrenz ya.
46:33CEO ya, Versal.
46:35Itu lebih ke arah menggunakan tehnik caching.
46:37Tehnik caching ya.
46:39Kalau database-nya...
46:41Ikut terdistribusi juga seperti di edge.
46:43Ikutan di edge-nya.
46:45Itu maka...
46:47Maka sinkronisasi agak sulit ya.
46:49Tapi kalau clustering...
46:51Itu dia berbeda...
46:53Dengan edge-nya kan.
46:55Edge fungsinya dimana, misalkan di Singapura.
46:57Oh, database-nya nggak ada nih di Singapura.
46:59Ada yang terdekat mungkin di Hongkong.
47:01Latensinya ada, tapi tidak terlalu jauh kan.
47:03Dibandingkan ke Amerika kan.
47:05Jadi dia larinya ke...
47:07Baca data atau simpan data ke...
47:09Cluster yang ada di Hongkong.
47:11Jadi kalau dilihat dari...
47:13Dokumentasi Fly IO Postgres itu...
47:15Bukan edge database, tapi adalah cluster.
47:17Cluster.
47:19Multi-region.
47:21Jadi ya bukan edge.
47:23Sebenarnya. Jadi ya cluster.
47:25Di sana.
47:27Wah, mantap. Terjawab udah selama ini tuh penasaran.
47:29Cuma nggak seniat itu buat ngulik.
47:31Tapi untung...
47:33Untung ada sesi malam ini ya.
47:35Jadi diajarin sama Mas Dhoni.
47:37Mantap.
47:39Ada pertanyaan bagus lagi nih.
47:41Apakah setiap company yang punya edge service...
47:43Mereka punya infrastructure sendiri...
47:45Atau mereka punya service...
47:47Di masing-masing region.
47:49Jawabannya enggak kan ya.
47:51Jadi kalau kita...
47:53Kalau most of Indonesian company...
47:55Mungkin tidak harus.
47:57Tapi kalau misalnya kayak...
47:59Mungkin kita tahu beberapa company di Indonesia...
48:01Yang juga menyediakan service-nya...
48:03Tidak hanya di Indonesia.
48:05Misalnya Traveloka.
48:07Aku tidak tahu dalam mana yang Traveloka.
48:09Tapi pasti mereka punya...
48:11Beberapa teknik untuk bisa...
48:13Service data maupun...
48:15Backend ataupun...
48:17Apa pun itu di region yang bisa service.
48:19Di ASA Tamaraga.
48:21Oke. Ini kayaknya maksudnya...
48:23Nggak tahu ya. Silahkan dikoreksi.
48:25Ini maksudnya...
48:27Perusahaan yang punya service edge seperti...
48:29Versafly.io.
48:31Apakah mereka bikin infrastructure sendiri...
48:33Atau bikin apa?
48:35Mereka pakai service lain ya.
48:37Tidak. Jawabannya...
48:39Cost-nya mahal banget kalau bikin sendiri.
48:41Mereka kan menggunakan...
48:43Si...
48:45Ya. Salah satunya...
48:47GCP ya.
48:49Salah satunya GCP di sana.
48:51Tapi...
48:53Tapi kalau nggak salah ya.
48:55Kalau nggak salah baca, Flyaway itu mereka bikin sendiri.
48:57Kalau nggak salah baca.
49:01Ya. Mereka nggak...
49:03Mengabstrak si layer...
49:05Di atasnya service provider.
49:07Ya. Mungkin pasti...
49:09Mereka akan kerjasama dengan...
49:11Yang lebih low level lagi gitu.
49:13Cuman mereka katanya gitu. Mereka nggak ikutan.
49:15Nggak pakai GCP...
49:17Atau service serupa.
49:19Nah. Dan yang menariknya adalah...
49:21Oh iya. Mereka mungkin ya...
49:23Harus menyediakan cost untuk...
49:25Menyediakan itu agar...
49:27Available di global ya.
49:29Tapi mereka menggunakan teknik containerisasi yang...
49:31Open source namanya...
49:33Firecracker. Ini aku baru lihat.
49:35Firecracker.
49:37Itu yang...
49:39Dari beberapa...
49:41Cloud leader salah satunya Google.
49:43Juga berkontribusi di sana. Jadi ya...
49:45Secara teknologi, mereka juga menggunakan...
49:47Salah satu standard dari...
49:49Ketika membuat core platform.
49:51Oke.
49:53Oke. Nah.
49:55Pertanyaan saya berikutnya. Apakah...
49:57Si Edge ini...
49:59Kalau kita mau coba...
50:01Ya. Mau coba-coba menggunakan Edge.
50:03Apakah kita harus menggunakan framework...
50:05Seperti Quick?
50:07Atau mungkin...
50:09Apa lagi ya? Remix.
50:11Remix itu...
50:13Edge enggak ya? Atau Deno?
50:15Enggak kan ya?
50:17Jawabannya adalah...
50:19Kalau kita mau...
50:21Ini...
50:23Kalau di secara umum jawabannya...
50:25Enggak.
50:27Bisa support Ruby, bisa support...
50:29Oh iya. Bisa bahasa yang lain. Betul-betul.
50:31Jadi...
50:33Framework dengan request-respon...
50:35Tradisional pun tetap bisa...
50:37Dijalankan di Edge ya?
50:39Ya. Karena kalau di Fly.io itu...
50:41Tidak menggunakan JavaScript runtime.
50:43Karena dia menggunakan firecracker tadi.
50:45Micro VM. Jadi virtualisasi yang...
50:47Lebih kecil sehingga...
50:49Teknologi selain JavaScript itu...
50:51Bisa jalan di sana. Jadi bisa pake Google.
50:53Bisa pake LSP. Django pun bisa.
50:55Laravel?
50:57PHP bisa.
50:59Laravel? Bisa. PSP bisa.
51:01ROR bisa...
51:03Tapi...
51:05Tapi kalau kita mau...
51:07Either Cloud Fireworks...
51:09Mereka bikin runtime sendiri.
51:11Dia hanya bisa menggunakan...
51:13JavaScript.
51:15Ya. Betul.
51:17Wah. Menarik ya.
51:19Nah.
51:23Bahasa apa lagi nih?
51:25Masih ada pertanyaan lain tuh banyak.
51:27Oke. Kita jawab pertanyaan ya.
51:31Nah. Ini... Ini... Possible enggak?
51:33Dari Ranma. Menarik nih.
51:35Pake JS runtime plus SQLite.
51:37Jadi SQLite-nya dibawa ke Edge ya?
51:39Ada namanya TURSO. Namanya TURSO. Keren deh.
51:41Jadi... TURSO.
51:43Ada di private chat tuh.
51:45Coba dibuka.
51:47Ini?
51:49Oh. Jadi...
51:51Cuma dia sebenarnya nge-fork.
51:53Forking SQLite.
51:55Nah. Detailnya gimana sih sebenarnya?
51:57Belum nyoba ya. Nggak gitu tahu.
51:59Jadi dia... Mereka nge-fork SQLite.
52:01Untuk dijalani di Edge Function.
52:03Kalkulasinya.
52:05Kan SQLite kan kayak cuma bisa didump kan.
52:07Maksudnya nggak bisa kayak Postgres kita connect.
52:09Untuk melakukan CRUD gitu.
52:11Nggak bisa.
52:13Jadi kalkulasinya...
52:15Dilakukan di Edge Function.
52:17Di Edge itu.
52:19Terus... Ya udah. Dia nge-replace.
52:21Dia bisa meng-update SQLite.
52:23SQLite-like database.
52:25On the Edge.
52:27Cuma detailnya gimana tuh?
52:29Nah. Coba tolong dicelasin.
52:31Jadi ini yang mungkin...
52:33Sebagai pengganti dari caching itu sendiri.
52:35Jadi dia itu tetap butuh database yang utama.
52:37Tapi nanti komputasi...
52:39Misalnya ketika request dia itu juga akan ngirim
52:41SQLite itu di Edge.
52:43Di sana. Jadi instead of kamu
52:45nge-fetch database Postgres.
52:47Ada nih SQLite di Edge gitu.
52:49Jadi... Lebih cepat gitu.
52:51Tapi ada komputasi itu.
52:53Dari TURSO yang ter...
52:55Tersentralisasi. Pakai Postgre.
52:57Aku lihat gambarnya di sini. Aku buka di
52:59chiselsstrack.com ya. Yang punya TURSO.
53:01Di sana.
53:03Dia tetap menggunakan
53:05Satu database. Misalnya Postgre SQLite
53:07di tengah. Di sana.
53:09Oke.
53:11Oke. Nah.
53:13Kalau LightStream.
53:15Ini termasuk ini juga nggak?
53:17Terus ini gimana? LightStream?
53:19Ini LightStream.
53:21.io
53:23Fully replicated database.
53:27SQLite.
53:29Oh.
53:31Continuous Stream.
53:33Jadi ini contohnya adalah
53:35Mereka itu menaruh SQLite
53:37di beberapa
53:41storage ya. Storage.
53:43Di sana. Tapi kita bisa
53:45kemudian untuk selalu mengupdate
53:47file itu ketika ada perubahan.
53:49Oke.
53:51Agak sedikit berbeda ya.
53:53Agak sedikit berbeda sih.
53:55Jadi mereka memanfaatkan
53:57multi-region dari
53:59Blob Storage.
54:01Ya menarik juga nih.
54:03Jadi beda konteks
54:05sama yang tadi ya TURSO ya.
54:07Oke.
54:09Dia menggunakan ya daripada
54:11kan lebih murah tuh ya daripada setup
54:13database. Betul.
54:15Lebih murah.
54:17Ada yang bikin
54:19aplikasi cuman database
54:21tau gak apa? Google spreadsheet.
54:23Kita menggunakan
54:27IQ serebu.
54:29Kita gunakan
54:31Google API buat akses
54:33spreadsheet. Ya udah tuh tinggal update aja disana.
54:35Oh ya benar juga ya.
54:37Seru ini ya.
54:39Sebenernya kayak mancing kreativitas.
54:41Yang bikin teknologi
54:43tech-tech modern
54:45terbaru gitu kayak
54:47ngakalin. Kan semua ada trade-off-nya.
54:49Apapun itu kan jelas ada trade-off-nya ya.
54:51Nah ini dengan banyaknya
54:53edge sama serverless, malah justru database
54:55atau data storage yang
54:57least powerful, yang paling gak powerful
54:59malah jadi naik lagi.
55:01Karena murah dan gampang diseber
55:03atau degenerate di mana-mana.
55:05Menarik ya.
55:07Jadi malah
55:09ikut ya itu ya
55:11ekosistem ya. Satu
55:13bertumbuh yang lain sebelah-sebelahnya ikut
55:15bertumbuh atau yang tadi udah mau layu
55:17hidup lagi gitu ya.
55:19Ini tadi kita sempet bahas
55:21server-side rendering sekalian
55:23ISG juga biar teman-teman paham.
55:25ISG itu apa ya?
55:27Incremental Static
55:29Regeneration.
55:31Apa? I-nya apa?
55:33Incremental.
55:35Incremental. Oke.
55:37Itu konsepnya gimana?
55:39Ada yang tau? Mba Eka.
55:41Eka. Itu kayaknya
55:43di Next.js ada deh kalau gak salah.
55:45Jadi sebenarnya
55:47ISG itu introduce
55:49persel ya
55:51persel ya
55:53di sana. Jadi
55:55Eka itu menggabungkan dua konsep
55:57teman-teman SSG ya.
55:59SSG sama SSR ya.
56:01Tapi kan kalau dulu kan
56:03SSG itu harus dibuild semua ya kan.
56:05Misalnya kita punya blok kita
56:07ada 20 artikel.
56:09Terus kita nambahin satu artikel baru jadi
56:11dua satu halaman itu
56:13dibuild lagi semua.
56:15Nah ini tuh
56:17kelihatan kalau gak salah.
56:19Jadi yaudah kita ngebuild
56:21apa yang perlu dibuild.
56:23Jadi under the hood
56:25si library-nya itu
56:27bisa bikin kayak div lah.
56:29Divnya aja ya.
56:31Dia cukup pinter buat
56:33nyari mana yang perlu
56:35diubah. Nah cuma
56:37itu kan implementasi di Next.js.
56:39Belum mulai lagi sih apakah
56:41di framework atau meta framework lain
56:43ada dan implementasinya gimana.
56:45Intinya sih
56:47ngedapetin keuntungannya
56:49pure static kan kalau dari
56:51perspektif user nih end user yang
56:53ngebuka halaman kita. Dia kan dapat
56:55keuntungannya pure SSG ya
56:57cepet
56:59dan langsung kebuka performance bagus
57:01dan sebagainya. Dari sisi
57:03developer mengurangi
57:05pain point-nya atau ke gak enakannya
57:07pure SSG harus
57:09ngebuild semua.
57:11Oke, oke. Nah
57:13berikutnya, ada yang nanya
57:15tentang Hermes.
57:17Ada yang tau?
57:19Hermes. Java script engine
57:21di React Native.
57:23Apa tuh Hermes? Coba kita
57:25cari.
57:27Lebih ke ini ya. Jadi memang
57:29definisinya beneran time.
57:31Tapi yang dibuat oleh
57:33Facebook ya.
57:35Yang dibuat dalam Facebook
57:37disana. Itu memang dedikasinya
57:39adalah untuk
57:41berjalan di mobile
57:43device. Disana.
57:45Mobile device-nya adalah
57:47React Native gitu.
57:49Jadi bayangin kamu bikin note
57:51tapi dimasukin ke
57:53disana. Tapi
57:55tidak semua note APA
57:57ada. Tapi memang khusus buat
57:59jalanin aplikasi React Native.
58:01Jadi lebih kesana
58:03ya.
58:05Itu open
58:07source JS engine juga kan ya.
58:09Tapi masuknya ya ke ranah
58:11mobile kali ya. Ranah-ranah
58:13mobile gitu.
58:15Itu yang kayak
58:17lagi aku dalemin yang
58:19kalau gak salah Mas Rizya pernah ngetit
58:21belajar apa tahun ini gitu kan ya.
58:23Mau bikin compiler katanya.
58:25Enggak bikin ya. Tapi
58:27lebih ke contribute. Belajar?
58:29Belajar ke contribute ke note.
58:31Mau contribute ke banyak hal.
58:33Luar biasa.
58:35Berikutnya
58:39kalau jadi front-end
58:41developer susah gak?
58:43Susah gak jadi.
58:45Susah gak jadi.
58:47Enggak gak susah. Belajar aja.
58:49Enggak susah sih.
58:51Sama. Susahnya sama aja
58:53kayak jadi back-end developer atau jadi
58:55devops atau
58:57apa. Cuma kan cocok-cocokan ya.
58:59Mending dicoba dulu
59:01belajarin desertnya semua. Kita kan
59:03gak bisa tau tuh kita cocok atau gak.
59:05Kalau belum dicoba.
59:07Lebih baik malah bukan susah apa
59:09gak. Kamu mau ngapain?
59:11Di start dari wayenya dulu kenapa
59:13mau jadi front-end developer?
59:15Di sana. Kamukan dulu kamu
59:17ngapain mau belajar.
59:19Terlepas susah apa ya.
59:21Semuanya susah.
59:23Memangnya belajar ya. Pasti pusing ya.
59:25Yang gampang Mas. Tidur-tiduran di rumah.
59:27Gampang juga.
59:29Sama ini.
59:31Gimana gimana?
59:33Tuh lanjut.
59:35Sama aja
59:37kalau misalkan beginner
59:39to intermediate JS mau
59:41coba RAS itu sakit kepala.
59:43Pasti sakit kepala namanya juga belajar.
59:45Pusing ya.
59:47Di sana pasti karena
59:49beda pemahaman
59:51tentang bagaimana kita
59:53melakukan pemugraman di RAS.
59:55Ada beberapa kalau
59:57kamu sebagai yang pernah main JS
59:59gak pernah main low level sebelumnya
1:00:01gak ngerti cara bagaimana memanage memory akan
1:00:03sangat-sangat pusing.
1:00:05Apa lagi?
1:00:07Lanjut-lanjut.
1:00:09Bahkan kalau tau C sama C++ pun
1:00:11cara untuk kita
1:00:13memanage memory itu akan berbeda.
1:00:15Di RAS.
1:00:17Jadi ya susah.
1:00:19Aku dulu sama teman zero one group
1:00:21bikin beberapa open source project
1:00:23itu pun untuk produktif butuh sebulan.
1:00:25Wow sebulan ya.
1:00:27Apalagi RAS itu
1:00:29type language kan.
1:00:31Jadi kalau misalkan dari JavaScript
1:00:33kayaknya agak terlalu jauh loncatnya ya.
1:00:35Kalau dari TypeScript mungkin lumayan ya.
1:00:37Tapi mungkin
1:00:39saran tambahan
1:00:41kalau emang mau belajar bahasa baru
1:00:43atau platform baru itu
1:00:45kalau bisa
1:00:47jangan mencari ekvivalen
1:00:49dari bahasa yang sebelumnya.
1:00:51Oh di JavaScript gini, di RAS gimana?
1:00:53Karena beda banget.
1:00:55Cara pikirnya beda ya.
1:00:57Pilosofinya beda.
1:00:59Kalau kita stuck di bahasa lama malah stress mungkin.
1:01:01Iya.
1:01:03Jadi kalau misalkan di RAS itu dia
1:01:05ada konsep-konsep kayak borrowing
1:01:07ada apa lagi tuh. Macam-macam gitu kan.
1:01:09Di JavaScript kan gak ada ekvivalennya. Begitu juga sebaliknya.
1:01:11Kalau saya mau ini
1:01:13di JavaScript gimana ya.
1:01:15Ada call back, ada even loop,
1:01:17ada macem-macem gitu.
1:01:19Maka fundamental dan filosofi itu
1:01:21yang harus dipelajari.
1:01:23Gak, cari ekvivalen.
1:01:25Mungkin kalau sintaks ya bisa lah. Cari ekvivalennya
1:01:27for loop di sini ya itu mungkin hampir sama.
1:01:29Tapi kalau
1:01:31dalemannya yang berbeda.
1:01:33Gitu.
1:01:35Jadi kalau RAS itu sebetulnya inspired
1:01:37by apa sih sebagai bahasa?
1:01:39Kan biasanya ada turunan-turunannya
1:01:41bahasa-bahasa yang baru.
1:01:43Jadi
1:01:45seingetku
1:01:47RAS itu terinspirasi dari OCaml.
1:01:49Funksional programmingnya dari
1:01:53sana.
1:01:55Haskell mungkin ada
1:01:57terinspirasi dari sana. Karena type
1:01:59functional programming. Karena
1:02:01RAS itu meng-leverage beberapa
1:02:03teknik-teknik functional programming
1:02:05yang kita
1:02:07bisa lakukan di sana.
1:02:09Jadi dapat dari situ.
1:02:11Pengen dapet
1:02:13performa yang bagus kayak low
1:02:15level tapi juga pengen
1:02:17menyenangkan bagaimana kita
1:02:19mammogram berdasarkan menggunakan
1:02:21functional programming lagi.
1:02:23Oh berarti gak OOP
1:02:25based ya? Bisa
1:02:27tapi tidak ada yang namanya class.
1:02:29Bisa. Jadi
1:02:31kita bisa. Sebenernya multi
1:02:33paradigma ya.
1:02:35Jadi kita bisa
1:02:37mengimplementasi method. Tapi
1:02:39bukan math, bukan
1:02:41class namanya. Jadi kita
1:02:43menginstrack, kemudian kita mengimplem
1:02:45EMPL. Jadi mengimplemenasi
1:02:47apa method
1:02:49atau fungsi terhadap strack itu
1:02:51sendiri.
1:02:53Oke.
1:02:55Sip sip.
1:02:57Nah ini ada pertanyaan
1:02:59lumayan menarik juga nih.
1:03:01Jadi Drian ini masuk
1:03:03ke sebuah perusahaan.
1:03:05Basisnya React dan
1:03:07Aravail. Terus tiba-tiba perusahaannya
1:03:09pakai Senja sama
1:03:11web service Lamina. Lamina itu apa?
1:03:13Kita juga bingung.
1:03:15Kenapa?
1:03:17Senja itu kalau gak salah
1:03:19Java and JavaScript framework
1:03:21Ini kan
1:03:23Senja itu
1:03:25kalau gak salah UI library juga.
1:03:27Tapi jaman dulu. XT, JS
1:03:29jamannya apa?
1:03:31Java ya Senja ya?
1:03:33Nggak. Java and JavaScript.
1:03:35Jadi mungkin ya
1:03:37back-endnya Java terus untuk
1:03:39strack disini.
1:03:41Nah, tapi itu tadi
1:03:43Laravel. Laravel PHP.
1:03:45Oh, basicnya.
1:03:47Sorry, salah.
1:03:49Salah baca.
1:03:51Ya, beda stack.
1:03:53Kurdu pelajaran dari awal.
1:03:55Ada component kan Senja kan?
1:03:57Oh iya, XT, JS.
1:03:59Benar.
1:04:01Ini dulu Mas Arya kerja
1:04:03disini nih, di Senja.
1:04:05Oh.
1:04:07Jadi ada framework
1:04:09jadi sepaket ada framework
1:04:11front-endnya, ada back-endnya ya?
1:04:13Tapi enterprise berbayar.
1:04:15Bukan yang open source.
1:04:17Bingungnya dimana?
1:04:19Ya, pelajari aja Senja nya.
1:04:21Ada dokumentasinya kan pasti.
1:04:23Karena kalau kamu bekerja
1:04:25pada suatu persahaan ya mau gak mau kan?
1:04:27Harus belajar.
1:04:29Kenapa waktu interview gak nanya
1:04:31di sini pakai apa?
1:04:33Waktu
1:04:35interview nanya dong.
1:04:37Pengaruh ini sih, pengaruh apakah
1:04:39ini juga ya kalau misalnya
1:04:41berhadapan dengan vendor juga
1:04:43sebagai perusahaan juga harus mengerti
1:04:45gimana cara
1:04:47teknologi yang digunakan apa.
1:04:49Misalnya, misalnya aku kan sebagai
1:04:53Salto Company yang juga berbasis agensi ya.
1:04:55Aku pernah tidak selalu
1:04:57menggunakan tech-tech yang aku
1:04:59gunakan.
1:05:01Jadi pernah dulu
1:05:03pakai Kotlin? Pernah.
1:05:05Pernah pakai
1:05:07JavaScript, Vanilla
1:05:09walaupun secara defaultnya
1:05:11type script juga pernah.
1:05:13Jadi ya sebenarnya gak ada masalah
1:05:15perkara teknologi. Selama konsep
1:05:17dari software engineering itu udah kuat
1:05:19harusnya gak ada masalah sih
1:05:21belajar disini.
1:05:23Ada pertanyaan terkait
1:05:25jadinya, Mas Nuni dari perspektif
1:05:27sebagai lead atau mentor,
1:05:29gimana tuh kalau ngadepin kayak si
1:05:31siapa tadi Mas atau Mbak
1:05:33Adrian tadi orang baru
1:05:35tech-tech yang dikuasai sama sekali berbeda
1:05:39tapi ya maksudnya dia bisa diterima
1:05:41berarti kan kemungkinan dianggap punya potensi
1:05:43atau mampu. Cara nge-guidednya
1:05:45kira-kira gimana tuh?
1:05:47Yang mana ya komennya?
1:05:49Yang tadi, yang ini, yang kita
1:05:51tampilin di layar.
1:05:53Dia basicnya reaksi sama Laravel, cuma aplikasi
1:05:55vendor-nya pakai Senca.
1:05:57Terus tadi yang pertanya sebagai mentor itu
1:05:59sebelah mana ya komennya?
1:06:01Oh enggak, ini pertanyaan tambahan aja.
1:06:03Sorry, boleh diulang gak? Mauin maaf.
1:06:07Itu langkah untuk
1:06:09membimbing atau mengintegrasikan
1:06:11tim member baru yang
1:06:13kondisinya kayak gitu tuh.
1:06:15Gak paham sama sekali.
1:06:17Apa beda tech-tech?
1:06:19Dan bingung?
1:06:21Sebenernya ini juga
1:06:23salah satu yang pernah
1:06:25aku hadapin di
1:06:27Zero One ya. Jadi Zero One itu
1:06:29ini aku kasih
1:06:31perbedaan konteks.
1:06:33Jadi Zero One dulu itu mobilnya pakai
1:06:35React Native.
1:06:37Ternyata non-JS ekosistem
1:06:39paling gampang React Native dong.
1:06:41React Native dan Expo
1:06:43yang mungkin mau.
1:06:45Ternyata ada permasalahan
1:06:47waktu setelah developer experience
1:06:49itu di sana. Dan akhirnya kita untuk
1:06:51mengevaluasi kita mau
1:06:53pakai apa? Beneran gak mau investasi
1:06:55karena kondisi Zero One belum pernah
1:06:57paham tentang mobil.
1:06:59Karena background-nya web sama back-end.
1:07:01Jadi gak ada yang paham tentang masalah di mobil.
1:07:03Akhirnya kita melakukan reset
1:07:052-3 bulan.
1:07:07Itu kita akhirnya milih untuk pindah ke
1:07:09Flutter.
1:07:11Salah satu teknologi di Google
1:07:13yang mobil di Flutter.
1:07:15Sebagai orang yang
1:07:17tidak pernah pegang Flutter sebelumnya
1:07:19mau gak mau harus pegang.
1:07:21Jadi tetap hiring
1:07:23teman-teman yang
1:07:25React Native gitu.
1:07:27Kita gak hiring React Native.
1:07:29Jadi kami hiring Flutter.
1:07:31Tapi konteksnya adalah
1:07:33yang Flutter pada saat itu
1:07:35masih entry-level.
1:07:37Jadi justru yang ada perasanya malah
1:07:39aku.
1:07:41Jadi aku harus belajar.
1:07:43Aku menggunakan
1:07:45anak yang entry-level
1:07:47itu untuk kayak
1:07:49bisa bantu jelasin aku gak Flutter.
1:07:51Karena
1:07:53masih lagi anget-angetnya ya ilmunya.
1:07:55Ya, disana. Jadi sebagai
1:07:57Lead pun punya tanggung jawab
1:07:59tidak hanya untuk
1:08:01menyuruh
1:08:03timnya untuk belajar.
1:08:05Tapi dia juga harus pernah pegang
1:08:07dalam esensi pernah
1:08:09tahu bagaimana caranya nge-build
1:08:11aplikasi dari teknologi tersebut.
1:08:13Karena gak akan nyambung
1:08:15kalau gak pernah nyoba. Jadi
1:08:17sebagai Lead sebelum mengarahkan
1:08:19kita harus tahu sebagai
1:08:21apa teknologinya itu kayak gimana.
1:08:23Mau teknologi apa-apa.
1:08:25Insya Allah masih coba
1:08:27untuk hands-on
1:08:29disana. Nah bagi teman-teman
1:08:31yang
1:08:33belum pernah
1:08:35belajar. Ini konteksnya adalah dulu
1:08:37tekstek pertama saja doang adalah closure.
1:08:39Jadi ada yang ngomong closure ya?
1:08:41Belajar.
1:08:45Karena closure itu tidak semudah
1:08:47itu. Karena mungkin mindsetnya kan
1:08:49beda kan. Orang terbiasa
1:08:51teksnya kayak si. Sedangkan closure itu
1:08:53pakai list untuk
1:08:55kurung-kurung yang
1:08:57seperti itu. Kurungnya banyak ya.
1:08:59Kurungnya banyak gitu kan ya disana.
1:09:01Jadi gimana cara kita
1:09:03menafigasinya harus ada
1:09:05sesi untuk mereka belajar.
1:09:07Jadi satu
1:09:09minggu, dua minggu mereka join
1:09:11ke zero-one. Waktu itu dia gak
1:09:13disuruh modi. Disuruhnya
1:09:15belajar dulu.
1:09:17Enak ya. Udah dibayar itu.
1:09:19Udah dibayar gitu.
1:09:21Enak ya.
1:09:23Jadi belajar dulu disana.
1:09:25Adaptasi gitu.
1:09:27Tapi akhirnya terlalu
1:09:29kosnya terlalu besar untuk ngajarin
1:09:31closure. Karena yang bisa closure cuman berapa orang.
1:09:33We put
1:09:35ke investasi
1:09:37ke Node.js Ecosystem, ke Javascript.
1:09:43Bisa juga pakai Closure Script ya nanti ya.
1:09:45Oh justru malah
1:09:47ini lucunya adalah aku belajar
1:09:49Frontend itu dari Closure Script bukan dari...
1:09:51Oh gitu. Oh wow.
1:09:53Kebalik.
1:09:55Kebalik ya.
1:09:57Baru ke react disana.
1:09:59Non-mainstream.
1:10:01Tidak mainstream.
1:10:03Oke. Pertanyaan berikutnya
1:10:05ini ada yang bertanya tentang
1:10:07Edge Function lagi. Apakah
1:10:09bisa hybrid dengan konvensional
1:10:11atau monolith. Atau
1:10:13kita harus microservice ya
1:10:15semuanya, function.
1:10:17Bisa kan?
1:10:19Bisa, bisa.
1:10:21Bisa, bisa. Jawabannya adalah bisa, pasti bisa.
1:10:23Tapi yang
1:10:25menurutku yang selalu kita
1:10:27hadapi sebagai orang teknis
1:10:29itu adalah gunakan
1:10:31teknologi yang tepat untuk permasalahan kita.
1:10:33Tidak semuanya harus di Edge.
1:10:35Tidak semuanya.
1:10:37Tapi core utama bisnis kalian itu
1:10:39adalah monolith di awal
1:10:41disana. Tapi ada fitur
1:10:43baru yang membutuhkan teknologi baru
1:10:45kalian bisa gunakan teknologi Edge
1:10:47disana. Karena kalau kalian harus
1:10:49migrasi cost dan
1:10:51gaya-gaya untuk
1:10:53rewrite. Kan paling senang tuh engineer
1:10:55kalau ngerewrite kan ya disana.
1:10:57Ya. Semua
1:10:59shiny new tools masuk.
1:11:01Masuk gitu. Tapi abis itu
1:11:03dia resign terus gak ada yang maintain. Itu
1:11:05kan susah. Nah lho.
1:11:09Itu yang sering dialami
1:11:11oleh Zero One Group karena kami itu
1:11:13selalu mencoba untuk
1:11:15membantu enterprise yang ditinggal
1:11:17oleh penulis sebelumnya
1:11:19yang menggunakan bleeding edge.
1:11:21Dan akhirnya audited.
1:11:23Jadi kaya
1:11:25tercara bagaimana untuk cost tetap
1:11:27bisnis tetap jalan.
1:11:29Tapi cost nya itu gak harus
1:11:31sampai rewrite disana.
1:11:33Jadi apa dulu nih yang mau dipecahin?
1:11:35Kita bisa
1:11:37mengkolaborasi kan. Tapi yang penting
1:11:39adalah kamu tuh memecahkan masalah dari
1:11:41produk yang kamu buat.
1:11:43Gak harus semuanya
1:11:45pakai Kubernetes.
1:11:47Gak harus semuanya pakai Kubernetes.
1:11:49Gak semua harus pakai
1:11:51micro service.
1:11:53Iya.
1:11:55Paling senang
1:11:57rewrite setuju. Iya lah.
1:11:59Iya.
1:12:01Paling senang rewrite ya. Luar biasa.
1:12:03Kalau Raz sendiri
1:12:05ya sering diajak gelet sama compiler ya.
1:12:07Pasti jawabannya.
1:12:09Kalau kamu gak biasa
1:12:11lebih kaya guru sih.
1:12:13Kamu jangan lakukan ini, tolong lakukan ini ya.
1:12:15Ada sarannya
1:12:17tapi kan.
1:12:19Pesan error nya itu udah lebih
1:12:21manusiawi kan.
1:12:23Itu membuat
1:12:25Raz compile time nya lama.
1:12:27Oh.
1:12:29Jadi dia ada jpt nya gak?
1:12:31Gak aja.
1:12:33Compiler error nya kaya
1:12:35jpt gitu.
1:12:37Beda dengan Go compile time nya sangat cepat ya.
1:12:39Compile time nya cepat banget.
1:12:41Tapi kalau Raz itu lama compile time nya.
1:12:43Oh. Kenapa tuh?
1:12:45Karena banyak
1:12:47hal yang dilakukan oleh
1:12:49compiler itu sendiri
1:12:51pada Raz. Karena mereka
1:12:53harus ngecek memory management.
1:12:55Mereka harus ngecek
1:12:57pesan yang baik untuk disana. Sedangkan
1:12:59Go itu kamu bisa ke compile
1:13:01itu error. Karena mungkin
1:13:03data nya pointer nya error.
1:13:05Di Raz itu
1:13:07gak bakal kamu
1:13:09pointer error sampe kamu benar
1:13:11di compile. Jadi itu makanya lebih lambat.
1:13:13Waktu nge compile
1:13:15dia sebelum compile dia ngecek semua
1:13:17berarti? Dia ngejalanin semua ya?
1:13:19Lama. Disana.
1:13:21Jadi makanya
1:13:23ya jadi
1:13:25jadi akhirnya di tahun
1:13:27ini apa tahun lalu ya?
1:13:29Mereka main incremental build.
1:13:31Jadi harus build semua
1:13:33dari awal.
1:13:35Jadi lebih cepat ya?
1:13:37Jadi lebih cepat.
1:13:39Nah. Ngomongin Go nih. Ada yang minta saran nih.
1:13:41Dia front-end.
1:13:43Mas Arjo ini front-end.
1:13:45Tapi pengen belajar back-end pake Go.
1:13:47Supaya bisa nyambi.
1:13:49Biar bisa freelance.
1:13:51Biar bisa back-end untuk freelance.
1:13:53Kalau dari
1:13:55front-end front-end apa? JavaScript
1:13:57apa TypeScript? Kalo JavaScript kayaknya
1:13:59agak ini ya agak
1:14:01panjang ya jalannya ya. Karena
1:14:03JavaScript kan dinamis ya. Mungkin
1:14:05baca TypeScript dulu kali ya sebagai perantara kali ya.
1:14:07Ya.
1:14:09Kenapa Go?
1:14:11Kenapa Go? Iya pertanyaannya
1:14:13kenapa Go? Kenapa harus-harus.
1:14:15Perjayaan saja yang udah deket.
1:14:17Karena begini loh. Selalu salah kapra
1:14:19orang-orang itu. Kenapa gak jadi whole stakes sekalian?
1:14:21Hahaha.
1:14:23Salah kapra orang-orang itu adalah programming
1:14:25language itu jadi yang
1:14:27idaman utama. Padahal
1:14:29katakanlah kamu bikin back-end sama Aras ya.
1:14:31Cepet banget gak?
1:14:33Kalau kamu bikin querynya
1:14:355 second, mau pake Aras
1:14:37nonggu nya 5 second.
1:14:39Jadi gak ada masalah
1:14:41sebenernya. Bahkan Instagram sekarang back-end
1:14:43masih pake Python. Pake Python.
1:14:45Django. Iya.
1:14:47Pake Django disana. Jadi
1:14:49lebih ke arah kenapa harus Go?
1:14:51Apa kalau kamu mau kerja ke company
1:14:53besar di Indonesia?
1:14:55Fair gitu. Boleh.
1:14:57Tapi kalau freelance, ngapain
1:14:59harus pake Go? Orang bisa kayak
1:15:01perlunakan pahat PHP Laravel?
1:15:03Iya. Dapet Lamborghini.
1:15:05Dapet. Beli Lamborghini. Iya.
1:15:07Kamu mau beli Laravel?
1:15:09Kamu mau beli Laravel ya? Dapet Lamborghini ya?
1:15:11Iya. Dia gak tau ya itu
1:15:13punya dia atau bukan ya. Nilas dia foto di depan
1:15:15Lamborghini. Kita gak tau itu
1:15:17punya siapa. Ya
1:15:19bisa jadi punya dia sih. Bener.
1:15:21Karena Laravel itu banyak service yang
1:15:23berbayarnya kan.
1:15:25Manitasnya disana.
1:15:27Iya. Pertanyaan yang sama juga.
1:15:29Kenapa harus Go?
1:15:31Iya. Padahal
1:15:33Google aja
1:15:35yang punya Go
1:15:37dia gak rewrite tuh Gmail.
1:15:39Gmail masih pake Java tuh.
1:15:41Jadi bahasa
1:15:43yang paling populer di
1:15:45dalam Google sendiri itu
1:15:47yang pertama adalah Java,
1:15:49Python, C, C++.
1:15:51Baru Go lang. Go lang itu banyak dipake
1:15:53di GCP-nya ya.
1:15:55Infrastruktur.
1:15:57Ada ops-nya biasanya.
1:15:59Jadi kalau misalkan
1:16:01mau ke back-end ya mendingan
1:16:03lebih dekat ke Node.js kali ya.
1:16:05Mungkin bisa langsung belajar Deno
1:16:07atau Boon. Sama-sama lah itu
1:16:09JavaScript runtime ya.
1:16:11Oke. Nah
1:16:17berikutnya
1:16:19PHP.
1:16:21Banyak ya. Banyak ininya apa? Banyak
1:16:23job-nya kali ya.
1:16:25Terus
1:16:27Facebook masih pake PHP ya.
1:16:29Dia udah beda ya. Beda.
1:16:31Kita bukan Facebook. Jadi jangan samakan.
1:16:33Jangan liat
1:16:35"Wah Facebook pake PHP."
1:16:37PHP mereka udah beda.
1:16:39Mereka udah bisa bikin
1:16:41compiler dan interpreter sendiri.
1:16:43Dan kita juga gak perlu
1:16:45secanggih mereka kan. Apalagi
1:16:47usernya masih 100, 200,
1:16:491000 gitu ya.
1:16:51Masih bisa lah pake PHP.
1:16:53Tergantung tujuannya.
1:16:55Tujuannya mau buat apa.
1:16:57Iya. Why-nya kenapa?
1:16:59Betul. Betul. Betul.
1:17:01Tapi kalau tujuannya untuk belajar sih
1:17:03gak apa-apa kan. Gak apa-apa.
1:17:05Gak apa-apa gitu. Karena mau belajar
1:17:07Haskell pun gak ada masalah.
1:17:09Haskell. Iya.
1:17:11Tapi kalau mau bikin
1:17:13produk ya mikir-mikir dulu ya.
1:17:15Oh jarang banget yang pake
1:17:17Haskell.
1:17:19Itu udah susah
1:17:23belajarnya itu.
1:17:25Iya. Apalagi pake
1:17:27PureScript. Aduh pake apa lagi?
1:17:29Freelance terbaik katanya.
1:17:33Itu job security. Tapi tuh kalau bahasa aneh-aneh
1:17:35job security yang bisa cuma
1:17:37kita gak bakal kena lay off.
1:17:39Gak akan dipecat.
1:17:41Kalau mau job security ya mbak?
1:17:43Itu lebih ke
1:17:45Kobol tuh.
1:17:47Kobol.
1:17:49Gang gitu.
1:17:51Iya. Jobnya sih
1:17:53secure. Kita gak bakal kena lay off.
1:17:55Tapi perusahaan ini kita gak tahu tiba-tiba.
1:17:57Tiba-tiba tidak bekerja.
1:17:59Tidak beroperasi lagi ya udah.
1:18:01Kita juga harus cabut.
1:18:03Iya bener kan tuh.
1:18:078bit juga menyarankan
1:18:09kalau emang mau
1:18:11mau belajar back-end ya coba
1:18:13belajar yang deket aja dulu.
1:18:15Karena kan banyak hal yang di back-end
1:18:17yang konsepnya yang baru
1:18:19dibandingkan front-end kan.
1:18:21Kita harus belajar database, belajar apalagi
1:18:23technique caching,
1:18:25belajar gimana
1:18:27apa mengatur service dan lain-lain
1:18:29routing kan.
1:18:31Kalau misalkan kita belajar dengan bahasa baru itu
1:18:33ya jadi bertingkat-tingkat
1:18:35berkali lipat gitu.
1:18:37Ya kalau emang mau belajar go
1:18:39ujungnya boleh. Belajar note dulu.
1:18:41Oh udah ngerti back-end nih sedikit-sedikit.
1:18:43Baru ke go atau kemana.
1:18:45Lebih seru lagi
1:18:47kalau sambil ngerjain project. Jadi tadi
1:18:49cari freelance kan. Cari aja yang
1:18:51paling
1:18:53paling memungkinkan
1:18:55diambil terus belajar
1:18:57sambil ngerjain.
1:18:59Risikan sih tapi ya
1:19:01belajarnya jadi lebih tepat.
1:19:03Projectnya yang kecil-kecil aja. Bahkan
1:19:05kalau mungkin kalau dari ini di luar bahasa
1:19:07go ya. Chrome end ke
1:19:09back-end atau mungkin ke full stack.
1:19:11Hal sesimpel kayak bikin apa sih
1:19:13GraphQL server itu loh.
1:19:15Pakai library yang udah ada pun.
1:19:17Misalnya pakai Prisma sama Apollo.
1:19:19Itu kan kita tinggal nyambung-nyambungin.
1:19:21Tapi yang valuable
1:19:23itu kayak yang berharga tuh pas kita
1:19:25kita beneran praktek
1:19:27gimana cara bikin database query yang
1:19:29relationnya irit lah.
1:19:31Selama ini kalau di Chrome end
1:19:33mungkin kan nggak terlalu mikir. Pokoknya
1:19:35panggil endpoint. Post, muncul deh
1:19:37semua post. Tapi post itu kan
1:19:39ada user. User ada datanya.
1:19:41Misalnya ada username, ada profile, ada
1:19:43apa. Nah kalau misalnya
1:19:45kita udah masuk ke
1:19:47full stack-nya bikin CC API-nya
1:19:49kan kita harus mikirin
1:19:51data relasi-relasi
1:19:53manggil berbagai
1:19:55table yang berbeda kan.
1:19:57Itu bikin query-nya jadi berat banget kan.
1:19:59Berat dan apa? Costly juga
1:20:01bisa mahal, bisa bikin database
1:20:03bool. Nah kita mulai
1:20:05mikirin itu aja kan sebenernya udah
1:20:07langkah menuju belajar
1:20:09back-end. Walaupun secara bahasa dan
1:20:11sinteks ya belum belajarin apapun
1:20:13yang baru.
1:20:15Oke-oke. Nah ini juga
1:20:17pertanyaan menarik nih. Kenapa sekarang-
1:20:19sekarang ini lagi rame functional programming?
1:20:21Ayo. Kenapa?
1:20:25Gak tau.
1:20:29Uh.
1:20:31Kenapa?
1:20:33Gak bisa jawab sebenernya kalau misalnya
1:20:35kenapa rame.
1:20:37Tapi biasanya juga orang-orang
1:20:39yang sangat
1:20:41excited atau sangat
1:20:43senang
1:20:45menggunakan functional programming itu akan selalu
1:20:47mencoba untuk menyebarkan
1:20:49tentang apa itu functional programming.
1:20:51Contohnya
1:20:53samapin.
1:20:55Ya kalau pakai film, pakai Axlinux
1:20:57itu pasti langsung itu ya.
1:20:59Gak ditanya juga jawab.
1:21:01Saya pakai film gitu ya.
1:21:03Tapi
1:21:05selain perkara gitu ya
1:21:07pemahaman tentang konsep
1:21:09tidak hanya OP itu akan
1:21:11menambah pengetahuan kita
1:21:13dan bahwa tidak ada
1:21:15hanya satu solusi untuk
1:21:17mengerjakan sesuatu itu.
1:21:19Jadi lebih ke arah beneficial kita
1:21:21sebagai software developer atau engineer
1:21:23untuk mengetahui lebih dari satu paradigma.
1:21:25Karena
1:21:27functional programming itu punya benefitnya
1:21:29daripada OP.
1:21:31Tapi apakah functional programming
1:21:33jauh lebih baik? Jawabannya tidak
1:21:35tergantung.
1:21:37Tergantung lagi, kembali lagi, it depends.
1:21:39Di Zero One Group itu tidak
1:21:41garis keras functional programming
1:21:43tapi kami itu selalu
1:21:45menggunakan functional programming
1:21:47untuk memastikan bahwa data yang
1:21:49kita gunakan itu selalu
1:21:51benar-benar tidak termutasi.
1:21:53Data inputnya adalah functional programming.
1:21:55Itu kita tidak pernah memutasi data.
1:21:57Sederhananya adalah
1:21:59kalau kita menggunakan
1:22:01di JavaScript kita itu tidak pernah pakai
1:22:03let ataupun var ya.
1:22:05Jadi selalu menggunakan cons.
1:22:07Karena kita tahu bahwa
1:22:09ini tidak akan berubah data ini.
1:22:11Immutable.
1:22:13Immutable gitu. Data ini tidak berubah.
1:22:15Sebenarnya esensinya adalah bukaan penggunaan function.
1:22:17Tapi kita tahu bahwa
1:22:19state yang kita lakukan
1:22:21adalah input sama outputnya bisa di prediksi.
1:22:23Dan kenapa kita
1:22:25menggunakan immutable, gampang ditest.
1:22:27Bisa ditebak lah ya.
1:22:31Oh, kalau ini berarti nilainya
1:22:33segini udah pasti. Kita udah yakin.
1:22:35Kalau misalkan OOP
1:22:37kan dia ada konsep global
1:22:39variable-nya kan.
1:22:41Kalau di JavaScript itu pakai disk gitu kan.
1:22:43Itu isinya bisa macam-macam gitu kan.
1:22:45Dan bisa berubah di tengah jalan.
1:22:47Sebenarnya
1:22:49kalau
1:22:51dibilang tren, sebenarnya fungsional programming
1:22:53kan juga udah lama kan.
1:22:55Lebih lama fungsional kan.
1:22:571960-an.
1:22:59Justru lebih muncul duluan.
1:23:01Jadi tren-tren
1:23:03di teknologi itu ya gitu.
1:23:05Muter-muter aja.
1:23:07Yang tadinya kurang tren.
1:23:09Terus tiba-tiba muncul OOP.
1:23:11Abis itu sekarang OOP kurang tren.
1:23:13Balik lagi ke fungsional.
1:23:15Dan seterusnya.
1:23:17Dari SQL ke NoSQL.
1:23:19Balik lagi ke SQL.
1:23:21Dulu Imperative.
1:23:23Padahal dari dulu
1:23:25SQL itu adalah bahasa deskriptif
1:23:27kan. Deklaratif, sorry.
1:23:29Bahasa Deklaratif kan. Sekarang Deklaratif.
1:23:31Ada React, ada ini, ada SwiftUI.
1:23:33Padahal dari dulu SQL itu adalah
1:23:35Deklaratif.
1:23:37Cuman orang gak nyadar aja.
1:23:39Cuman sayangnya ini ya.
1:23:41Sayangnya di kampus-kampus
1:23:43itu mungkin belum ada kali ya.
1:23:45Diajarkan paradigma
1:23:47fungsional ya.
1:23:49Banyakkan paradigma OOP.
1:23:51Dan jujur dulu juga
1:23:53waktu awal-awal belajar di kampus
1:23:55itu saya kesulitan memahami
1:23:57OOP itu.
1:23:59Kalau misalkan teman-teman
1:24:01ada beberapa teman juga yang bilang.
1:24:03Kalau misalkan teman-teman belajar OOP itu dengan
1:24:05membuat sebuah game.
1:24:07Itu makes sense.
1:24:09Karena ya itu objek kan.
1:24:11Ada karakternya. Terus mungkin
1:24:13karakternya ini diturunkan dari
1:24:15karakter yang lain.
1:24:17Ada metode nya bisa ngapain, bisa ngapain.
1:24:19Betul.
1:24:21Karakter ini dot run. Dia lari,
1:24:23jam, dia loncat.
1:24:25Terus misalkan ada musuhnya, musuhnya
1:24:27ada turunan-turunannya. Itu makes sense.
1:24:29Tapi ketika OOP diimplementasikan
1:24:31di aplikasi
1:24:33bisnis, bingung.
1:24:35Ini objeknya
1:24:37yang mana?
1:24:39Akhirnya ada mapping tuh dari database
1:24:41yang table-table
1:24:43menjadi objek gitu kan.
1:24:45Itu. Jadi mungkin
1:24:47kalau mengalami kesulitan dengan OOP
1:24:49ya coba belajar paradigma yang lain.
1:24:51Ada banyak yang lain kan.
1:24:53Selain fungsional, ada
1:24:55namanya ada
1:24:57struck base ya. Apa sih? Ada banyak lah.
1:24:59Ada prosedural juga. Kalau di kuliah
1:25:01mungkin belajarnya prosedural awalnya ya.
1:25:03Jadi mungkin karena fungsional
1:25:07ini jarang
1:25:09diajarkan di kampus,
1:25:11mungkin orang jadi kurang familiar.
1:25:13Begitu.
1:25:15Iya benar.
1:25:17Dulu SSR, dari dulu SSR
1:25:19kan. Request Response.
1:25:21Terus ke Client Side Rendering.
1:25:23Sekarang balik lagi ke SSR. Apa lagi
1:25:25Tretrek App hilang.
1:25:27Ke mana nih yang mau
1:25:29bikin Client Side Rendering.
1:25:31Berapa episode tau ya
1:25:33kita beneran ke sini.
1:25:35Uter.
1:25:37Dan Abrahimov nge-tweet tuh.
1:25:39Dia itu nggak mau menyimpan SSR yang dulu
1:25:41sama SSR yang sekarang. Karena
1:25:43yang dulukan tidak ada
1:25:45interaktif kan. Karena
1:25:47udah ngerender HTML udah tuh.
1:25:49Ya udah.
1:25:51Jadi seharusnya itu bukan lagi
1:25:53ngomong SSR, JSR, tapi ya
1:25:55evolusi gani beberapa teknik yang
1:25:57ada di sini.
1:25:59Ya betul.
1:26:01Jadi ya begitulah.
1:26:03Namanya teknologi ya.
1:26:05Mungkin apa namanya
1:26:07siklusnya muter-muter, tapi
1:26:09ada tambahan-tambahannya.
1:26:11Iya tambahannya menjadi lebih bagus
1:26:13kan. Kenapa sekarang fungsional
1:26:15jadi lebih bagus ya. Mungkin ada
1:26:17bahasa-bahasa yang baru
1:26:19yang membuat fungsional, bahasa
1:26:21fungsional ini lebih make sense dan lebih
1:26:23cocok. Mungkin ya.
1:26:25Jadi nggak ada salahnya belajar
1:26:29berbagai paradigma.
1:26:31Tok juga kalau kita nggak pakai fungsional
1:26:33di pekerjaan, bisa menambah
1:26:35apa ya, menambah pengetahuan sama
1:26:37membuat
1:26:39kita bekerja dengan OOP jadi
1:26:41lebih bagus juga dengan mungkin beberapa
1:26:43konsep-konsep fungsional bisa dipakai ya.
1:26:45Bisa, bisa. Langsung di kolaborasikan
1:26:47dengan kelas dan metode
1:26:49menggunakan fungsional pun bisa.
1:26:51Bisa ya. Jadi bahasa-bahasa seperti
1:26:53bahasa yang multipurpose kayak Java,
1:26:55ada apa lagi, GoLang
1:26:57atau RAS gitu ya.
1:26:59Itu bisa, ya
1:27:01paitan Ruby dan lain-lain
1:27:03itu juga bisa pakai
1:27:05konsep-konsep fungsional, begitu juga pakai
1:27:07konsep-konsep OOP, dua-duanya
1:27:09bisa. Oke.
1:27:11Ada lagi mau disampaikan, Mas Don, sebelum kita
1:27:13udahan? Dari,
1:27:15nggak ada pertanyaan lagi nih yang
1:27:17habis-habis-habis.
1:27:19Habis. Ada nih,
1:27:21ada terakhir-terakhir, tuh paling
1:27:23bawah yang start, budget
1:27:25dibawah 1 juta. Oh, budget.
1:27:27Nah, ini menarik.
1:27:29Yang punya pengalaman di lapangan,
1:27:31Mas Don. Budget rantai per bulan dibawah
1:27:331 juta dan tidak expect user
1:27:35banyak. Code Function aman tidak sebagai
1:27:37sistem? Aman?
1:27:39Aman sejauh. Aman.
1:27:41Jawabannya
1:27:43adalah
1:27:45sebenarnya
1:27:47menggunakan
1:27:49Fly.io dan
1:27:51berbagai platform
1:27:53yang kita gunain tadi itu
1:27:55aman-aman aja. Bahkan malah
1:27:57bayar infrastrukturnya gitu kan.
1:27:591 juta aja bisa kamu embat sendiri.
1:28:01Canda.
1:28:03Karena
1:28:05kalau,
1:28:07kemarin dapet email dari Fly.io,
1:28:09kalau kamu harga per bulan
1:28:11dibawah 5 dolar, itu
1:28:13gratis. Gratis.
1:28:15Jadi sebenarnya bisa aja.
1:28:17Tapi kalau katakanlah kamu tidak
1:28:19nyaman dengan menggunakan platform,
1:28:21kamu bisa menggunakan VPS aja gitu.
1:28:23VPS, kayak
1:28:254 core, 8 giga,
1:28:27itu kan relatif masih dibawah
1:28:291 juta kan ya. Kamu bisa install database,
1:28:31kamu bisa install sesuatu.
1:28:33Kamu bisa maintain datamu sendiri.
1:28:35Itu juga make sense.
1:28:37Di sana. Kalau boleh
1:28:39aku share salah satu
1:28:41VPS langganan favorit
1:28:43untuk aku, karena murah banget
1:28:45dan tidak orasnya.
1:28:47Namanya Contaboo.
1:28:49Apa itu? Contaboo?
1:28:51Contaboo. Contaboo. Coba Mas Riza.
1:28:53Contaboo?
1:28:55Berapa murahnya dan CPU-nya gede banget.
1:28:57Contaboo Cloud VPS ini?
1:28:59Iya. Itu
1:29:01murah banget.
1:29:03Ini perusahaan dari mana nih?
1:29:05Jerman. Oh Jerman. Wow.
1:29:07Tapi punya Singapura di sana.
1:29:094 core, 8 giga, cuma 8 dolar.
1:29:11Bayangin.
1:29:13Coba buka yang 5, 6 dolar.
1:29:15Mana? Ini?
1:29:17Coba select. Itu berapa service-nya?
1:29:194 core, 8 giga.
1:29:21Bayangin. Cuma 100 ribu.
1:29:23100 ribu ya.
1:29:25Nah, semua get request
1:29:27di cash yang banyak, itu kan usage-nya
1:29:29bakal kecil banget tuh. Nah,
1:29:31terus 3 klien taro situ.
1:29:333 juta kan.
1:29:35Cuma berapa?
1:29:37Sisanya kantongin.
1:29:39Iya. 1 juta itu bisa buat 1 tahun lho.
1:29:41Bisa buat 1 tahun.
1:29:43Terus bisa set up buat banyak klien kan.
1:29:45Iya, iya, iya.
1:29:47Kalau pakai VPS.
1:29:49Biasa.
1:29:51Biasa.
1:29:53Untuk jalanin ICD devops,
1:29:55jadi benda itu doang.
1:29:57Wah. Oh, ini ada yang pakai juga nih.
1:30:018bit. Wey.
1:30:03Saya pakai Contabo juga. Mantap.
1:30:05Oh, nice. Murmer.
1:30:07Spek tumpah-tumpah. Wiss.
1:30:09Oh iya, kita nggak sponsor ini ya.
1:30:11Kita juga sponsor.
1:30:13Kita jualan kita ya.
1:30:15Padahal kita jualannya Google Cloud.
1:30:21Ini masih relate sama pertanyaan tadi.
1:30:25Apakah fungsinya
1:30:27simple
1:30:29jadinya jarang diajarkan?
1:30:31Nggak sih, kalau...
1:30:33Nggak simple juga sih.
1:30:35Oh iya, ada yang subscribe.
1:30:37Terima kasih.
1:30:3950 ribu.
1:30:41Alhamdulillah.
1:30:43Lanjut, lanjut, lanjut. Gimana, gimana?
1:30:45Simple itu tidak mudah ya.
1:30:47Jawabannya.
1:30:49Simple itu bukan mudah.
1:30:51Tapi kalau kita ngomong perkara
1:30:53edukasi di Indonesia lebih ke arah
1:30:55adaptasi dari
1:30:57kampus itu memang tidak secepat
1:30:59dari teknologi berjalan.
1:31:01Sama pakai established language nggak sih?
1:31:03Kalau kampus kan pasti
1:31:05ada kurikulum yang pakai bahasa-bahasa
1:31:07meregraman yang udah established banget.
1:31:09Itu kan nggak bakal berubah ya?
1:31:11Karena sebenarnya kampus itu
1:31:13bukan untuk menyediakan
1:31:15kayak talenta untuk
1:31:17ready ke job market.
1:31:19Sebenarnya kampus itu
1:31:21diajarin untuk berfikir.
1:31:23Jadi sebenarnya kalian ambil itu
1:31:25adalah bagaimana algoritma bekerja,
1:31:27bagaimana struktur data itu bekerja.
1:31:29Karena itu akan diimplementasi apapun bahasanya
1:31:31di sana.
1:31:33Justru salah kalian menyalahkan kampus.
1:31:35Sebenarnya kampus itu diajarin kalian untuk berfikir.
1:31:37Bukan untuk siap kerja di sana.
1:31:39Itu salah kapra.
1:31:41Kebanyakan.
1:31:43Siap, siap, siap.
1:31:45Oh iya!
1:31:47Jangan lupa untuk
1:31:49temen-temen yang mau
1:31:51feedback untuk episode malam ini.
1:31:53Kalau feedback-nya bagus nanti
1:31:55Mas Donny-nya kita undang lagi.
1:31:57Mas apa ya?
1:31:59Oh iya!
1:32:01Tensorflow.js ya?
1:32:03Karena thesis-ku menggunakan Tensorflow.js.
1:32:05Oh iya, ini menarik nih
1:32:07Tensorflow.js ya.
1:32:09Machine learning, Google Web itu gimana?
1:32:13Ya, boleh.
1:32:15Nanti kalau thesis-ku udah jadi ya.
1:32:17Asik.
1:32:19Sebelum sidang ya.
1:32:21Sebelum sidang kita sidang dulu ya.
1:32:23Nanti sebelum sidang.
1:32:25Aku masih mingi.
1:32:27Slide sebelum sidangnya
1:32:29dipaparin disini.
1:32:31Nanti taunya dosennya sama
1:32:35pengujinya malah komen disini.
1:32:37Pak saya nggak usah demo ya.
1:32:39Pak saya ada videonya silahkan lihat.
1:32:41Ada di YouTube gitu ya.
1:32:45Mantap, mantap.
1:32:47Boleh, boleh, boleh.
1:32:49Next time kita undang lagi ya.
1:32:51Mas Donny.
1:32:53Sidang terbuka.
1:32:55Nah.
1:32:57Tadi ada pertanyaan
1:32:59ini.
1:33:01Tentang switch dari RegNative ke Platter.
1:33:03Itu kenapa?
1:33:05Dan apakah
1:33:07yang membuat timnya Mas Donny
1:33:09atau Mas Donny itu pengen tetap
1:33:11pakai Platter atau ada keinginan balik lagi
1:33:13ke RegNative?
1:33:15Framework berpikir ya satu.
1:33:17Kenapa gitu kan ya.
1:33:19Kenapa Zero One Group itu pakai Platter.
1:33:21Jadi kami adalah agensi.
1:33:23Jadi kami itu bukan produk.
1:33:25Sehingga apa sih yang kita value lebih?
1:33:27Bagaimana kita itu membisa
1:33:29buat produk yang efisien
1:33:31tapi berkualitas tinggi.
1:33:33Permasalahan dari RegNative itu adalah
1:33:35kamu tidak bisa membuat
1:33:37UI yang bagus secara out of the box.
1:33:39Kamu harus buat itu semua.
1:33:41Kenapa?
1:33:43Karena RegNative itu hanya
1:33:45untuk menjalankan
1:33:47bagaimana kalian bisa membuat
1:33:49aplikasi mobile dengan
1:33:51native component.
1:33:53Jadi kayak RegNative itu menekan
1:33:55ke native component. Sehingga untuk perkara
1:33:57UI-nya kalian butuh buat sendiri
1:33:59atau third party.
1:34:01Terima kasih.
1:34:03Walaupun sekarang ada tamah GUI ya.
1:34:05Kalau kalian tahu sekarang ada tamah GUI
1:34:07yang lebih cepat daripada
1:34:09native base dan kawan-kawannya.
1:34:11Pada saat itu susah.
1:34:13Yang kedua itu adalah talenta.
1:34:15Tidak ada orang yang benar-benar jadi
1:34:17ke-3 RegNative. Padahal masalah
1:34:19mobile itu adalah kebanyakan
1:34:21di mobile space-nya bukan di
1:34:23coding react-nya. Coding react-nya gampang.
1:34:25Tapi kalau ada error yang tidak bisa
1:34:27disolve dan isunya masih buka itu
1:34:29mungkin.
1:34:31Maksudnya harus dikasih ke klien dalam waktu tertentu
1:34:33di sana.
1:34:35Jadi talenta dan masalah third party.
1:34:37Flutter ini mengeliminasi semuanya.
1:34:39Karena Flutter
1:34:41penggunaan widget atau component.
1:34:43Kalau RegNative menggunakan component ya
1:34:45penggunaan widget itu secara
1:34:47gampang kita bisa langsung bikin UI yang bagus.
1:34:49Jadi cepat berarti.
1:34:51Berarti aku sebagai agensi buat
1:34:53produk cepat. Yang kedua
1:34:55itu adalah talenta.
1:34:57Itu buku developer student club.
1:34:59Banyak ya.
1:35:01Banyak banget talenta Flutter
1:35:03di sana. Sehingga
1:35:05sehingga secara
1:35:07growth kita itu bisa naik
1:35:09growth kami natural ya.
1:35:11Bukan pakai venture capital
1:35:13uangnya. Itu 3x
1:35:155 tahun lalu naik ya.
1:35:17Untuk Flutter di sana.
1:35:19Berarti ada measurable impact-nya ya.
1:35:21Bukan cuma karena iseng.
1:35:23Wah enak nih, seru nih Flutter.
1:35:25Jadi yang
1:35:27aku share selalu disini adalah
1:35:29konteksnya dulu apa.
1:35:31Apa kenapa.
1:35:33Kalau aku
1:35:35memang untuk personal, mungkin terasa dengan
1:35:37RegNative. Cuman untuk
1:35:39kelangsungan bisnis utama
1:35:41nggak mungkin menggunakan.
1:35:43Oke.
1:35:45Jadi lebih mudah
1:35:47mencari talent di
1:35:49Flutter daripada RegNative ya?
1:35:51Ya. Dan kalau lihat Google trending
1:35:53aja, React Native dan Flutter jauh
1:35:55di bawah RegNative.
1:35:57Dan juga kebanyakan teman-teman yang Flutter
1:35:59itu gampang banget
1:36:01move dari Android.
1:36:03Dari Android ke Flutter
1:36:05begitu ya? Gampang. Karena
1:36:07heavily OOP.
1:36:09Heavily Object Oriented Programming.
1:36:11Jadi gampang. Sedangkan coding RegNative kan
1:36:13beda. Kalau misalnya
1:36:15aku sebagai anak Android belajar RegNative
1:36:17itu harus belajar React dulu
1:36:19disana. Bagaimana
1:36:21personal component itu dibuat
1:36:23disana? Ada overhead
1:36:25disitu.
1:36:27Sedangkan anak yang baik-baiknya Android
1:36:29budget Flutter sebenarnya bisa
1:36:31produktif.
1:36:33Jadi benefit itu
1:36:35yang kita kapitalisasi di
1:36:37zero-one group.
1:36:39Jadi berbeda. Oke kebutuhan mas
1:36:418-bit.
1:36:438-bit.
1:36:45Solusi dari zero-one group
1:36:47tidak akan bisa dipasamakan dengan
1:36:49masalahnya mas.
1:36:51Tapi kami punya alasan
1:36:53sendiri. Pertimbangan, considerationnya
1:36:55itulah udah dijelasin
1:36:57sama keuntungannya beneran
1:36:59profitnya naik ya tadi.
1:37:01Ya, headcount sama
1:37:03headcount sama
1:37:05ini ya. Bagaimana kita
1:37:07profit beradakan revenue
1:37:09banyak yang kita bisa ambil dan setopu.
1:37:11Dan kita udah pernah bandingin dalam satu menu
1:37:13Riku. Ada blognya
1:37:15di sini. Mantap.
1:37:17Share dong.
1:37:19Share dong.
1:37:21Jadi kami udah pernah bandingin
1:37:23bandingin Ionic
1:37:25React Native sama Flutter.
1:37:27Oke.
1:37:29Bandingin Ionic
1:37:33React Native
1:37:35sama Flutter. Ionic
1:37:37ini hybrid berarti kan?
1:37:39Ionic berarti pakai WebView.
1:37:41Kapasitor namanya.
1:37:43Blue Cordoba.
1:37:45Ya.
1:37:47Jadi kita bandingin, kita bikin satu UI
1:37:49gimana cara bikinnya per
1:37:51UI-nya.
1:37:53Jadi di Ionic, di React Native
1:37:55gimana, di Flutter gimana.
1:37:57Wah menarik.
1:37:59Ini bisa jadi bahasan sendiri nih.
1:38:01Di satu NX Monoripo
1:38:03jadi di Monoripo ada 3
1:38:05aplikasi berbeda.
1:38:07Oke. Tapi
1:38:09aplikasinya sama?
1:38:11Sama. Aplikasinya sama. Tinggal bagaimana
1:38:13itu beda semua.
1:38:15Jadi cuma ini.
1:38:17Ini ya tiga-tiganya ya.
1:38:19Wow. Seru sekali.
1:38:21Mainannya.
1:38:23Bisa reset-reset gini ya.
1:38:25Enaknya di Seruan Club ada waktu buat reset.
1:38:27Hahahaha.
1:38:29Hiring, hiring.
1:38:31Itu di bawah artikel.
1:38:33Biasanya ada kan artikel medium.
1:38:35Coba deh paling bawah ada nggak?
1:38:37Nggak ada.
1:38:39Follow aja dulu, follow ya.
1:38:41Mantap, mantap, mantap.
1:38:43Oke.
1:38:45Ada lagi?
1:38:47Ada lagi?
1:38:49Nggak ada.
1:38:51Habis.
1:38:53Dari Mas Donny, ada yang mau disampaikan lagi?
1:38:55Dari aku sih
1:38:57lebih ke ini ya.
1:38:59Pesan dari aku
1:39:01walaupun kita belajar Edge pada malam kali ini
1:39:03yang penting itu adalah
1:39:05bukan perkara tools yang kita gunakan.
1:39:07Tapi
1:39:09aku mungkin di hari sabtu akan
1:39:11berbagi
1:39:13diundang di coding untuk berbahas
1:39:15tentang how to be
1:39:17product-minded software engineer.
1:39:19Jadi kita nggak bahas coding
1:39:21tapi bagaimana kita sebagai software engineer
1:39:23itu mampu memecahkan masalah.
1:39:25Jadi
1:39:27pesan dari aku itu adalah jangan
1:39:29terpoko dengan silaunya
1:39:31teknologi baru. Tapi bagaimana
1:39:33kalian itu bisa berpikir secara
1:39:35logis untuk menyelesaikan
1:39:37masalahnya. Karena kalian itu kebanyakan
1:39:39dibayar untuk menyelesaikan
1:39:41masalah bukan menggunakan teknologi
1:39:43terbaru. Jadi
1:39:45belajar lah untuk konstruktif
1:39:47berpikir yang baik sebelum
1:39:49kalian menggunakan teknologi yang
1:39:51kalian gunakan.
1:39:53Wow, luar biasa.
1:39:55Biar nggak digusur sama AI ya?
1:39:57Iya.
1:39:59Contohnya misalkan lagi
1:40:05udah bikin aplikasi React
1:40:07terus tiba-tiba butuh routing
1:40:09library. Wah langsung pake Next.js
1:40:11gitu kan. Padahal cuma butuhnya routing doang.
1:40:13Kayaknya satu framework.
1:40:15Jangan. Ya ada ya
1:40:17library untuk routing juga
1:40:19ada ya. Jadi
1:40:21gunakan sesuai kebutuhan aja. Jangan
1:40:23apa, jangan
1:40:25apa ya
1:40:27terpengaruh oleh
1:40:29hype ya.
1:40:31Why?
1:40:33Start with why.
1:40:35Start with why.
1:40:37Jadi kenapa dulu gitu.
1:40:39Jangan jadi
1:40:41apa ya, jangan jadi
1:40:43link-in driven development.
1:40:45Hype driven development.
1:40:47Jadi wah
1:40:49pake Next.js, pake Kafka,
1:40:51pake Kubernetes supaya
1:40:53di link-in bagus. Jangan gitu ya.
1:40:55Malah jadi masalah.
1:40:57Bukan menyelesaikan masalah, tapi menyelesaikan masalah
1:40:59dengan masalah baru.
1:41:01Habis itu resign.
1:41:03Habis itu resign, orang yang
1:41:05baru masuk yang kena getahnya.
1:41:07Dosa itu ya.
1:41:09Berdosa itu dia marah-marah
1:41:11aduh apaan ini gitu kan.
1:41:13Itu adalah dosa
1:41:15kita.
1:41:17Itu yang saya hadapi sekarang.
1:41:19Ini apaan ini.
1:41:21Limpahan ya.
1:41:23Luar biasa. Oke kalau gitu terima kasih
1:41:25banyak mas Donny untuk malam hari ini.
1:41:27Yang mau
1:41:29follow-follow bisa kemana?
1:41:31Yang apa sosial media yang aktif?
1:41:33Sebenernya gampang banget namaku
1:41:35itu nggak ada yang ngembarin. Jadi
1:41:37cari aja namam belakangku
1:41:39di Google. Semua ada.
1:41:41Oke mantap. Unique ya.
1:41:43Unique ya. Langsung di follow
1:41:45aja, langsung interaksi langsung dengan
1:41:47mas Donny. Ada yang mau ditanyakan juga. Langsung
1:41:49aja lewat Twitter juga lumayan aktif.
1:41:51Kalau gitu
1:41:53kita pamit. Saya Riza
1:41:55dan ada Eka. Kita
1:41:57ketemu lagi minggu depan.
1:41:59Selamat malam. Dadah.
1:42:01Selamat berpuasa.
1:42:03Oh iya selamat puasa ya.
1:42:05Buat teman-teman yang
1:42:07puasa minggu depan, eh minggu depan
1:42:09dua berapa hari lagi.
1:42:11Mas Lama belum minggu depan. Hari Kamis.
1:42:13Hari Kamis.
1:42:15Puasanya. Dadah.
Suka episode ini?
Langganan untuk update episode terbaru setiap Selasa malam!
Episode Terkait
11 Nov 2022
Perkembangan Teknologi WEB dari httparchive - Ngobrolin WEB Ep7
Yuk mari kita diskusi dan ngobrol ngalor-ngidul tentang dunia web. Agar tetap up-to-date dengan teknologi web terkini. ...
25 Nov 2025
WebAI - Ngobrolin WEB
π£οΈπΈοΈ Selasa malam waktunya #ngobrolinWEB! Malam ini membahas AI yang dapat dijalankan di web browser atau istilah kere...
7 Jan 2025
Ngborolin 2025 - Ngobrolin WEB
π Ulasan Tren Web 2024 - Perkembangan AI Generatif: Penyedia dan produk AI menjadi lebih beragam, tidak hanya chatbot ...