28 poin oleh GN⁺ 2025-12-17 | 7 komentar | Bagikan ke WhatsApp
  • Artikel yang merangkum bagaimana pengembangan web telah berevolusi, mengikuti perubahan dari web statis era 1990-an, web berpusat pada JavaScript era 2010-an, hingga web di era AI pada 2020-an
  • Web yang bermula dari tag dan FTP berkembang pesat melalui PHP·MySQL menjadi platform yang bisa dibuat siapa saja
  • Pada 2000-an, dengan hadirnya Rails, Git, dan Heroku, pengembangan web direstrukturisasi menjadi industri yang berfokus pada struktur, otomatisasi, dan kolaborasi, sekaligus meletakkan fondasi bagi era cloud dan mobile
  • Kemunculan React, build chain, Docker, dan ekosistem Node pada 2010-an memantapkan web bukan lagi sekadar dokumen, melainkan platform aplikasi yang sesungguhnya
  • Pada 2020-an, ChatGPT dan Copilot mengubah cara menulis kode, menjadi titik balik baru di mana AI memperbesar produktivitas pengembangan
  • Semua perubahan ini, dengan kompleksitas sebagai konsekuensinya, berujung pada proses demokratisasi web yang memungkinkan lebih banyak orang membuat hal yang lebih besar

The Static Web - Era Web Statis

"View Source was how you learned"

  • Pada akhir 1990-an (late 90s), web adalah wilayah perintis yang belum ada seorang pun tahu akan menjadi seperti apa, dan justru ketidakpastian itulah yang menjadi daya tariknya
  • Situs web pribadi dimulai bukan dari perusahaan atau organisasi, melainkan dari server pribadi dan unit folder
    • Dengan direktori pribadi di atas server Unix, file HTML, dan klien FTP saja, seseorang sudah bisa memiliki ruang di internet
    • Hanya dengan editor teks sederhana seperti Notepad, orang bisa menulis lalu langsung mempublikasikannya
  • Web pada masa ini adalah ruang kreasi tanpa sensor maupun proses persetujuan
    • Orang bebas memposting berdasarkan minat seperti masakan, dinosaurus, lagu, dan sebagainya
    • Strukturnya memungkinkan orang langsung mengunggah “hal yang menarik perhatianku minggu ini”
  • Cara belajarnya sepenuhnya dengan melihat langsung lalu menirunya
    • Belum ada tutorial YouTube atau Stack Overflow
    • Jika penasaran dengan situs lain, klik kanan → View Source adalah alat belajar utama
    • Untuk hal yang lebih mendalam, orang belajar dari buku fisik sungguhan
  • Umum bagi orang untuk belajar sambil meletakkan buku teknis ratusan halaman seperti Core Java di samping mereka, lalu bolak-balik antara kode dan buku
    • Lambat, tetapi menjadi pengalaman belajar yang membuat pengetahuan lebih melekat lama
  • HTML saat itu masih bercampur antara struktur dan gaya
    • Tag , , `` menangani layout dan style sekaligus
    • GIF transparan 1x1 (spacer GIF) dipakai untuk mengatur jarak
    • Kasar dan tidak efisien, tetapi tetap berjalan
  • CSS memang sudah ada, tetapi praktis belum menjadi arus utama
    • Sebagian besar style ditangani lewat atribut inline atau tag HTML itu sendiri
    • Layout diselesaikan dengan tabel bersarang
  • Fitur dinamis memiliki hambatan masuk yang sangat tinggi
    • Bahkan fitur dasar seperti buku tamu atau penghitung pengunjung pun memerlukan skrip CGI
    • Harus ditulis dengan Perl atau C, dan untuk memproses satu parameter URL saja dibutuhkan banyak kode
    • Kompleksitas ini sangat membatasi penyebaran web dinamis
  • Hampir tidak ada solusi untuk masalah layout bersama
    • Header, navigasi, dan footer harus di-copy-paste ke semua file HTML
    • Jika ada perubahan, seluruh file harus diperbarui
    • Ada juga cara menyisipkan elemen bersama dengan ``, tetapi efek sampingnya besar
  • Kompatibilitas browser sudah menjadi masalah serius sejak saat itu
    • Netscape Navigator (1994) dan Internet Explorer (1995) menampilkan hasil render yang berbeda
    • Kalimat peringatan yang mencantumkan browser dan resolusi tertentu benar-benar diperlukan
  • Meski begitu, web di era ini memiliki daya tarik yang kuat
    • Tanpa peralatan cetak atau siaran, orang bisa mempublikasikan sesuatu ke seluruh dunia
    • Web untuk pertama kalinya mewujudkan demokratisasi sarana berekspresi
  • Layanan hosting gratis seperti GeoCities (1994) dan Angelfire (1996) menyediakan ruang berkarya bagi jutaan orang
    • Situs penggemar dan komunitas terhubung melalui web ring
    • Terbentuk ekosistem yang kacau tetapi hidup
  • Di perusahaan, konsep “tim web” masih hampir belum ada
    • Jika sebuah situs web ada, kemungkinan besar dibuat oleh “orang yang paham komputer”
    • Ini adalah tahap tepat sebelum pengembang web mapan sebagai sebuah profesi
  • Alat-alatnya masih primitif dan situs-situsnya kasar, tetapi
    • Gagasan inti tentang ruang tempat siapa saja bisa membuat dan berbagi mulai berakar pada masa ini
  • Era yang bertahan dengan tag dan semangat ini menjadi titik awal bagi seluruh evolusi web setelahnya

Stack LAMP dan Web 2.0

"Everything was PHP and MySQL"

  • Bahkan setelah pecahnya gelembung dot-com pada 2000, web terus tumbuh, dan periode ini menjadi titik balik ketika hambatan masuk bagi orang yang ingin membuat sesuatu turun drastis
  • Terobosan terbesar pada era web statis adalah PHP(1995)
    • Dari era ketika harus menulis ratusan baris dalam C atau Perl untuk CGI, pengalaman bisa membaca parameter URL hanya dengan satu baris $_GET['name'] adalah perubahan yang menentukan
    • Berjalan cukup dengan simpan lalu refresh, tanpa kompilasi, manajemen memori, atau pesan error yang sulit dipahami
    • XAMPP(2002) memungkinkan instalasi Apache·MySQL·PHP sekaligus, sehingga sangat menyederhanakan pembangunan lingkungan pengembangan lokal
    • PHP adalah yang pertama benar-benar menyelesaikan masalah penggunaan ulang layout di era web statis
      • Dengan satu baris include 'header.php', header dan footer bersama bisa dikelola
      • Pengalaman mengubah seluruh halaman dengan satu kali edit menimbulkan antusiasme besar
    • Terlepas dari kekurangan bahasanya, kekuatan PHP ada pada aksesibilitasnya
      • HTML dan logic bercampur, penamaan fungsi tidak konsisten, dan API keamanan seadanya
      • Namun orang bisa mempelajarinya dalam akhir pekan dan membuat layanan nyata
      • Dengan shared hosting($5/bulan) serta cPanel(1996) dan phpMyAdmin(1998) yang disediakan secara default, hambatan untuk masuk ke ranah online menjadi yang terendah sepanjang sejarah
  • Basis data yang praktis selalu satu paket dengan PHP adalah MySQL(1995)
    • Hampir semua tutorial·hosting·CMS disusun dengan asumsi MySQL
    • Secara fungsional sudah cukup, tetapi pemrosesan teks internasional penuh penderitaan
    • Encoding default-nya adalah latin1, dan untuk memakai UTF-8 dengan benar
      • pengaturan database, encoding koneksi, dan deklarasi charset HTML semuanya harus cocok
    • Masalah “ä alih-alih ä” menjadi trauma simbolis dari era ini
  • WordPress(2003) mengubah sifat web itu sendiri
    • Tanpa perlu bisa coding, orang bisa langsung menerbitkan setelah instalasi 5 menit
    • Situs bisa dijalankan hanya dengan memilih tema dan menulis postingan
    • Secara nyata mewujudkan demokratisasi pembuatan situs web
    • Bagi pengguna nonteknis, WordPress adalah pembebasan
      • Blogger, pemilik usaha kecil, seniman, hingga restoran, semuanya jadi bisa memiliki situs web
      • Identitas baru bernama "blogger" pun muncul
      • Antarmuka admin WordPress menyebar hingga dipahami sebagai “editor situs web” itu sendiri
      Iklan
    • Bagi developer, WordPress menjadi alat yang nyaris serbaguna
      • Blog, portofolio, situs perusahaan, komunitas, hingga e-commerce, semuanya WordPress
      • Dengan WooCommerce(2011), bahkan e-commerce pun ikut diserap
      • Sebagai harga dari implementasi cepat, utang teknis menumpuk lewat ledakan plugin dan kustomisasi tema
  • Peristiwa yang secara mendasar mendefinisikan ulang kemungkinan web adalah peluncuran Gmail(2004)
    • Pada masa ketika Hotmail dan Yahoo Mail hanya menyediakan beberapa MB ruang penyimpanan
    • 1GB ruang penyimpanan gratis adalah angka yang mengejutkan
    • Pesan “jangan hapus, carilah” menawarkan cara penggunaan yang baru
    • Inovasi sejati Gmail bukanlah ruang penyimpanan, melainkan pengalaman
      • Antarmuka yang memungkinkan membaca·menulis·berpindah email tanpa refresh halaman
      • Pemanfaatan penuh komunikasi asinkron berbasis AJAX(XMLHttpRequest)
      • Membuktikan bahwa web bukan sekadar dokumen, tetapi bisa menjadi aplikasi
  • Google Maps(2005) membawa kemungkinan ini selangkah lebih jauh
    • Memindahkan peta dengan klik dan drag
    • Interaksi natural dengan tile yang dimuat di latar belakang
    • Pada titik ini, istilah Web 2.0 mulai benar-benar mengakar
    • UI tanpa refresh, sudut membulat, gradasi, dan bayangan menjadi bahasa dasar web
  • Perubahan penting juga berlanjut di ranah media dan sosial
    • Di ranah video, YouTube(2005) mengubah peta persaingan
      • Mengakhiri neraka plugin seperti RealPlayer·QuickTime·Windows Media Player
      • Meski berbasis Flash, ia memberikan pengalaman “klik lalu langsung putar”
      • Video tidak lagi menjadi masalah teknis, melainkan sarana ekspresi
    • Twitter(2006) menghadirkan cara komunikasi baru lewat microblogging 140 karakter
    • Facebook(2006) dibuka untuk pengguna umum, mendorong jejaring sosial menjadi arus utama
    • Web bertransformasi dari media konsumsi menjadi platform partisipatif
      • Terbentuk struktur di mana siapa pun bisa menjadi penerbit sekaligus kreator
  • Terlepas dari semua perubahan ini, JavaScript tetap menyakitkan
    • Debugging tanpa akhir akibat perbedaan implementasi DOM·event·AJAX antar-browser dan masalah kompatibilitas IE6
    • jQuery(2006) praktis mengakhiri kekacauan ini
      • $('#el').hide() bekerja sama di semua browser
      • $.ajax() menyederhanakan komunikasi asinkron
      • Bagi banyak developer, jQuery nyaris identik dengan JavaScript itu sendiri
        • Pada saat yang sama, ia juga berperan sebagai lapisan penyangga yang membuat orang tidak perlu memahami langsung cara kerja browser
    • Masalah-masalah era ini baru belakangan disadari sebagai masalah
      • SQL Injection dan XSS merajalela bahkan di level tutorial
      • Kode yang langsung menyambungkan input pengguna ke query adalah hal umum
  • Untuk version control, Subversion(2000) adalah arus utama
    • Commit terasa berat dan branch cenderung dihindari
    • Nama folder seperti final_final_REAL adalah hal sehari-hari
  • Tidak adanya standardisasi lingkungan eksekusi
    • Lokal memakai Windows + XAMPP
    • Server memakai Linux + versi PHP yang berbeda
    • “works on my machine” terus berulang
  • Konsep package manager juga belum ada
    • JS dikelola manual di folder /js setelah mengunduh ZIP
    • Library PHP berbasis salin file
  • Struktur tim dan proses pengembangan sangat informal
    • Hampir tidak ada peran PM·EM
    • Tidak ada code review
    • Upload via FTP lalu langsung diterapkan ke produksi
    • Saat ada gangguan, perbaikan dadakan dilakukan langsung di server produksi
  • Meski begitu, energi era ini sangat kuat
    • Dengan PHP dan hosting murah, siapa pun bisa melakukan deployment
    • Muncul rasa bahwa AJAX bisa dipakai untuk membuat “aplikasi sungguhan”
    • Dengan platform sosial, siapa pun bisa memiliki audiens
  • Inilah masa ketika profesionalisasi dan penataan pengembangan web baru mulai muncul
    • Ruby on Rails(2004) dengan “Convention over Configuration” menandai era berikutnya yang lebih terstruktur
  • Para developer di masa ini membangun web dengan stack LAMP, plugin jQuery, dan juga,
    • dalam rasa antisipasi bahwa "mereka akan membuat layanan besar berikutnya"

Perang framework

"Rails changed everything, then everyone copied it"

  • Akhir 2000-an (late 2000s) ketika skala aplikasi web membesar, skrip PHP lama dan struktur yang berpusat pada pengerjaan manual mencapai batasnya

  • Sebagai solusi pada masa itu, pendekatan pengembangan yang berpusat pada framework mulai naik daun, dan yang menentukan arah arus ini adalah Ruby on Rails(2004)

    • Pengaruh nyata RoR benar-benar terasa mulai sekitar 2007–2008
    • Dengan filosofi "Convention over Configuration", framework yang menentukan struktur file, penamaan, dan cara penghubungan
    • Developer cukup mengikuti aturan, dan ini dipandang bukan sebagai pembatasan melainkan kebebasan yang memberi kecepatan
    Iklan
  • Rails lalu menghadirkan sekaligus konsep-konsep yang kemudian menjadi tata bahasa dasar pengembangan web

    • Migration untuk mengelola perubahan database sebagai kode
    • ORM yang sangat mengurangi ketergantungan pada SQL
    • Alur pengembangan dengan testing yang disertakan secara default
    • Standardisasi praktis struktur MVC(Model–View–Controller)
    • MVC memang konsep yang berasal dari Smalltalk era 1970-an, tetapi melalui Rails ia mengukuh sebagai bentuk dasar pengembangan web
    • Setelah kesuksesan Rails, hampir semua ekosistem bahasa mengadopsi rumus ini
      • Django(2005) di Python, dan Laravel(2011) di PHP memantapkan struktur ala Rails
      • CakePHP(2005) dan CodeIgniter(2006) juga berkembang di arus yang sama
    • Peningkatan produktivitasnya bukanlah berlebihan
      • Cakupan yang bisa dibuat developer individu dalam satu akhir pekan dulu setara dengan pekerjaan tingkat tim
      • Di lingkungan startup, ini menjadi alat yang optimal untuk eksperimen cepat dan iterasi
    • Dalam praktiknya, sejumlah layanan ikonik pun tumbuh di atas Rails
      • Basecamp(2004), Twitter(2006), GitHub(2008), Shopify(2006), Airbnb(2008)
      • Rails segera dipandang sebagai simbol kecepatan startup
  • Framework memang meningkatkan produktivitas, tetapi deployment masih menjadi bottleneck

    • Pada era PHP, deployment umumnya dilakukan lewat upload FTP, dengan struktur yang bisa merusak layanan hanya karena satu kesalahan
    • Bahkan dalam kondisi yang lebih baik pun, pekerjaan seperti SSH + SVN pull + restart Apache masih ditangani secara manual
    • Mulai dari memisahkan direktori rilis hingga mengganti symbolic link, seluruh proses bersifat custom dan rapuh
  • Yang mengubah masalah ini secara mendasar adalah Heroku(2007), yang mulai menyebar luas sekitar 2009–2010

    • Memberikan pengalaman deployment selesai hanya dengan satu baris git push heroku main
    • Konfigurasi server, restart web server, dan scaling ditangani oleh platform
    • Heroku kemudian secara efektif memantapkan konsep yang disebut PaaS(Platform as a Service)
      • Developer pun bergeser ke peran yang fokus pada kode, bukan infrastruktur
      • Dengan memopulerkan prinsip Twelve-Factor App(2011), Heroku menyebarkan pola pikir yang ramah cloud seperti proses stateless, konfigurasi berbasis environment variable, dan streaming log
  • Pada periode yang sama, perubahan besar dalam cara kolaborasi juga berlangsung

    • Git(2005) memperkenalkan model version control terdistribusi yang memungkinkan commit, branch, dan merge secara bebas di lokal, dan karena biaya branch nyaris nol, eksperimen dan rollback menjadi pekerjaan sehari-hari
    • Subversion(2000) yang sebelumnya dominan punya struktur terpusat, branch yang berat, dan merge yang menakutkan, sehingga banyak tim bergantung pada pengembangan berbasis trunk
    • Git adalah inovasi di level alat, tetapi GitHub(2008) memantapkannya sebagai budaya dengan menggabungkan penelusuran repositori publik, pengembangan berbasis fork, dan kolaborasi berpusat pada Pull Request
    • GitHub menstandardisasi budaya code review
      • Sebelum PR di-merge, seseorang harus melihat kode tersebut
      • Arus ini lalu menyebar ke pengembangan internal perusahaan
      • Berakhirnya era ketika kode langsung masuk ke production
    • Cara berkontribusi ke open source pun berubah dari mengirim patch ke mailing list menjadi mengirim PR dengan klik tombol, sehingga hambatan partisipasi turun drastis
  • Pada paruh akhir periode ini, muncul juga perubahan yang mengguncang identitas web

    • Dengan hadirnya iPhone(2007) dan App Store(2008), aplikasi native melejit pesat
    • Web mobile saat itu sangat buruk. Pengalaman melihat situs desktop yang diperkecil secara paksa disertai scroll horizontal dan zoom in-out berulang
      • Sebagian membangun situs mobile terpisah seperti m.example.com, tetapi batasannya jelas
    • Aplikasi native terasa cepat, mendukung offline, menyediakan push notification, dan dengan slogan "There’s an app for that" tampak seperti masa depan
    • Developer web mulai mengalami krisis identitas: apakah harus tetap di web? Haruskah belajar Objective-C? Apakah web akan hilang?
  • Sebagai jawaban atas kebingungan ini, muncullah Responsive Web Design(2010)

    • Ethan Marcotte(2010) menunjukkan cara menyesuaikan layout menurut ukuran layar dengan memanfaatkan CSS media query, sekaligus mengajukan arah penyatuan mobile dan desktop dalam satu codebase
    • Pada awalnya penyebarannya lambat karena alat yang belum matang dan beban kerja tambahan, tetapi arah yang harus ditempuh web menjadi jelas
  • Bootstrap(2011) menjadi pemicu yang membuat web responsif benar-benar dipakai di lapangan

    • Berawal dari tool internal Twitter, Bootstrap menyediakan grid system, tipografi dasar, dan style form sekaligus, sehingga developer tanpa desainer pun bisa langsung memakai UI yang siap guna
    • Akibatnya web mulai terlihat makin mirip satu sama lain, tetapi bagi banyak developer, Bootstrap menjadi pengalaman pertama mereka dengan component library dan design system
    • Arus ini kemudian berlanjut ke penyebaran design system yang lebih terstruktur seperti Material Design(2014)
  • Infrastruktur juga berubah cepat pada periode yang sama

    • Dari model membeli atau menyewa server fisik lebih dulu, arsitektur bergeser ke model berpusat pada virtual server(VPS), sehingga sumber daya server bisa dibuat saat diperlukan
    • AWS(2006) memang hadir lebih dulu, tetapi kompleks dan berorientasi enterprise sehingga terasa membebani developer individu
    • DigitalOcean(2011) menurunkan hambatan akses infrastruktur secara besar lewat droplet $5, UI intuitif, dan pengalaman membuat server yang cepat, sehingga developer individu pun mendapat fleksibilitas yang mirip perusahaan besar
  • Masalah penyimpanan file pada dasarnya diselesaikan oleh Amazon S3(2006)

    • Menyediakan model sederhana berupa storage yang bisa diskalakan tanpa bergantung pada jumlah server, dan langsung mengembalikan URL setelah upload
    • Masalah upload pengguna, backup, dan pengelolaan file di lingkungan multi-server bisa dirapikan sekaligus
  • Node.js(2009) memberi guncangan lain bagi developer web

    Iklan
    • Dengan basis engine V8 milik Chrome, JavaScript kini bisa dijalankan di server; bagi developer frontend ini tampak sebagai opsi menarik, sementara developer backend menyambutnya dengan skeptis
    • Model I/O non-blocking menunjukkan kekuatan pada aplikasi real-time, dan hampir semua tutorial akhirnya bermuara pada contoh aplikasi chat
    • Pada masa ini, Node masih lebih dekat sebagai objek rasa penasaran ketimbang arus utama production; layanan nyata tetap berpusat pada Rails, Django, dan PHP, dan ekosistem npm juga masih di tahap awal
    • Namun, pengaruh sejati Node kemudian lebih dulu tampak bukan di server, melainkan pada build tool dan fondasi eksekusi lingkungan pengembangan
  • Di ranah database, arus NoSQL mulai menguat

    • MongoDB(2009) menarik perhatian dengan model data berbasis dokumen, fleksibilitas skema, dan struktur yang ramah JSON
    • Ia unggul dalam prototyping cepat, skalabilitas, dan kecocokan dengan stack JavaScript, tetapi tidak cocok untuk semua layanan
    • Tidak sedikit kasus ketika ia dipilih karena alasan "mungkin suatu hari akan perlu scale", tetapi pada tahap ribuan pengguna justru mulai terasa batasan transaksinya
  • Ekosistem startup pada periode ini memasuki fase pertumbuhan penuh

    • Dengan deklarasi Marc Andreessen(2011), "Software is eating the world", dan meluasnya metodologi Lean Startup(2011), siklus MVP → pengukuran → iterasi pun mengukuh
  • Seiring kematangan alat, daya saing tim kecil mulai benar-benar bekerja

  • Proses pengembangan juga ikut berubah

    • Agile Manifesto (2001) dan Scrum menjadi populer, sehingga stand-up, sprint, dan retrospektif diperkenalkan nyaris sebagai standar
    • Banyak tim juga bermunculan dengan hanya menyisakan formalitas tanpa prinsipnya
    • Code review dan pengujian otomatis bergeser dari sekadar anjuran menjadi ekspektasi dasar, dan sistem CI menjalankan pengujian pada setiap commit, mempercepat profesionalisasi dan spesialisasi pengembangan perangkat lunak
  • Namun, peran-peran yang kini dianggap wajar saat itu masih belum mapan

    • Pada 2012, tim tanpa engineering manager, product manager, atau pengelolaan backlog maupun tiket yang sistematis adalah hal yang umum
    • Tim kecil dan struktur organisasi yang datar adalah hal yang lazim, dan “senior developer” dengan pengalaman 3 tahun juga bukan hal yang jarang
  • Sekitar 2013, web menjadi sesuatu yang sepenuhnya berbeda

    • Framework yang kuat, deployment yang mudah, kolaborasi kode sosial, dukungan mobile, infrastruktur murah, dan meluasnya JavaScript secara penuh terjadi secara bersamaan
    • Setelah melewati krisis mobile, web justru menjadi lebih kuat, dan siap memasuki tahap berikutnya: era ketika JavaScript menguasai segalanya

Renaisans JavaScript

"Everything is a SPA now"

  • Sekitar 2013, web sudah membuktikan lewat contoh seperti Gmail dan Google Maps bahwa ia mampu menangani “aplikasi sungguhan”, tetapi pendekatan jQuery + server rendering yang ada mulai menabrak batasnya :contentReference[oaicite:0]{index=0}
  • Masalah intinya adalah manajemen state
    • Dalam struktur di mana server membuat HTML lalu jQuery menambahkan interaktivitas, menjaga data dan UI tetap konsisten di banyak tempat menjadi semakin sulit
    • Saat state yang sama harus tercermin di banyak UI seperti komentar, penghitung, dan badge notifikasi, kode pun saling terlilit dan berubah menjadi struktur spaghetti
  • Kesimpulan yang muncul secara umum adalah pindahkan seluruh rendering ke klien
    • Server diperkecil perannya menjadi API yang mengembalikan JSON
    • Struktur SPA (Single Page Application), di mana JavaScript di browser mengelola seluruh UI, mulai naik daun
  • Framework SPA awal muncul pada periode ini
    • Backbone.js (2010) menyediakan struktur minimum dengan konsep model dan view
    • Angular (2010) mencoba pendekatan ala enterprise dengan memperkenalkan two-way data binding dan dependency injection
    • Ember.js (2011) menawarkan aturan yang kuat dengan tujuan menjadi “Rails untuk JavaScript”, mencakup routing, data, dan template sekaligus
    • Framework-framework ini merupakan kemajuan, tetapi sama-sama belum sepenuhnya menyelesaikan masalah kompleksitas sinkronisasi DOM dan data
      • Khususnya, two-way binding membuat alur pembaruan sulit dilacak dan meningkatkan biaya debugging
  • Titik baliknya adalah kemunculan React (2013)
    • Saat Facebook merilisnya sebagai open source, sintaks JSX menimbulkan penolakan karena terlihat seperti membalik konsep separation of concerns
    • Namun React menawarkan cara berpikir baru: bukan memanipulasi DOM secara langsung, melainkan mendeskripsikan hasil UI secara deklaratif berdasarkan state
    • Inti React adalah model deklaratif dan Virtual DOM
      • Saat state berubah, React menghitung lalu menerapkan hanya perubahan DOM minimum yang diperlukan
      • Developer bisa fokus pada pengelolaan state tanpa perlu memikirkan manipulasi DOM
    • Konsep komponen juga sangat menentukan
      • UI disusun dengan menggabungkan unit-unit kecil seperti Button, UserAvatar, dan CommentList
      • Setiap komponen bisa dipikirkan secara independen dan dapat digunakan kembali
    • React menyebar perlahan lalu menjadi arus utama sekitar 2015
      • Vue.js (2014) muncul sebagai alternatif dengan konsep serupa tetapi sintaks yang lebih akrab
      • Perang framework memasuki fase baru
  • Penyebaran SPA berarti lonjakan eksplosif dalam jumlah JavaScript
    • Masalahnya, JavaScript yang ingin ditulis developer berbeda dengan JavaScript yang dipahami browser
    Iklan
  • ES6 / ES2015 (2015) menghadirkan perbaikan besar pada bahasa, seperti arrow function, class, module, dan promise
    • Callback hell dan pola var self = this mulai menghilang, dan JavaScript akhirnya terasa seperti bahasa modern
  • Namun dukungan browser tertinggal, sehingga tidak mungkin langsung mendistribusikannya apa adanya
  • Babel (2014) menyelesaikan masalah ini sebagai transpiler yang mengubah JavaScript modern menjadi ES5
    • Sebagai konsekuensinya, tahap build menjadi elemen wajib dalam pengembangan JavaScript
    • Era ketika cukup mengubah file lalu refresh pun berakhir
  • Dalam proses ini, Node.js (2009) menguasai semua mesin developer bukan sebagai server, melainkan sebagai lingkungan menjalankan alat pengembangan
    • Meski backend tidak memakai Node, instalasi Node tetap wajib karena alat build bergantung padanya
  • Rantai alat build juga berevolusi cepat
    • Grunt (2012) mengelola tahapan build yang rumit lewat file konfigurasi sebagai task runner
    • Gulp (2013) mencoba menyederhanakannya dengan pipeline berbasis kode, tetapi tetap kompleks
  • Perubahan yang menentukan datang dari Webpack (2014)
    • Bukan sekadar task runner, tetapi module bundler yang memahami graph dependensi
    • JavaScript, CSS, gambar, hingga font diperlakukan sebagai modul
    • Memperkenalkan konsep seperti code splitting dan hot module replacement
    • Harga dari kekuatannya adalah konfigurasi yang terkenal buruk
      • Konfigurasi Webpack menjadi meme, dan di tiap tim selalu ada “satu orang yang paham ini”
      • Jika orang itu pergi, konfigurasi tersebut tersisa sebagai artefak yang menakutkan untuk disentuh
  • Pada saat yang sama, ekosistem npm tumbuh sangat pesat
    • Dari pendekatan mengunduh library secara langsung, beralih ke model yang berpusat pada npm install
    • moment, lodash, bahkan utilitas super kecil seperti left-pad pun dipaketkan
    • Insiden left-pad (2016) memperlihatkan rapuhnya ekosistem ini
      • Hanya karena paket 11 baris dihapus, build ribuan proyek gagal pada saat yang sama
      • Bahkan React dan Babel ikut tidak bisa dipasang
      • npm menenangkan situasi dengan memulihkan paket tersebut secara paksa, sesuatu yang belum pernah dilakukan sebelumnya
    • Kenyamanan tetap bertahan, tetapi semua orang jadi sadar akan realitas dependency hell
  • Tahun 2016, kompleksitas mencapai puncaknya
    • Tulisan satire “How it feels to learn JavaScript in 2016” menyebar luas
    • Rasa lelah makin meluas karena untuk membuat halaman web sederhana saja dibutuhkan banyak alat seperti React, Webpack, Babel, dan Redux
    • Kecepatan perubahan ekosistem terlalu tinggi, sehingga pengetahuan yang baru dipelajari cepat menjadi usang
    • Meski begitu, hasilnya jelas
      • Aplikasi web interaktif pada level yang sebelumnya mustahil kini bisa dibuat
      • Kompleksitas diterima sebagai biaya dari ambisi
  • Sementara itu, Docker (2013) mulai menyelesaikan masalah yang sama sekali berbeda
    • Masalah “works on my machine” ditangani dengan container
    • Lingkungan eksekusi didefinisikan lewat Dockerfile dan bisa dijalankan sama persis di mana saja
    • Pada awalnya adopsi tidak mudah karena masalah performa di Mac dan kebingungan soal networking
      • Docker Compose, Docker Swarm, lalu Kubernetes (2014) muncul dan memicu perang orkestrasi
      • Sekitar 2017, setidaknya satu hal sudah jelas: container adalah masa depan
  • Bersamaan dengan itu, tren microservices ikut menyebar
    • Menawarkan keunggulan berupa pemisahan layanan dan deployment independen
    • Namun sebagai gantinya muncul kompleksitas baru seperti service discovery, load balancing, dan distributed tracing
    • Banyak tim belakangan menyadari bahwa mereka menukar kompleksitas monolith dengan kompleksitas sistem terdistribusi
  • Pada periode ini, kualitas aplikasi web meningkat secara nyata
    • Slack (2013) menggantikan email dengan alat kolaborasi yang cepat dan bisa dicari
    • Figma (2016) merambah wilayah aplikasi desktop lewat alat desain kolaboratif berbasis browser
    • Bersama Notion (2016) dan lainnya, ini membuktikan bahwa web mampu mewujudkan software setingkat desktop
    • Contoh-contoh ini menjadi dasar pembenaran bagi kompleksitas React, Webpack, dan rantai build
  • Struktur organisasi juga bergerak ke tahap yang lebih matang
    • Sekitar 2016, product manager dan engineering manager mulai mapan sebagai peran standar
    • Struktur tim datar pada masa awal perlahan berubah menjadi organisasi yang berpusat pada proses
    • Scrum dan ritual agile menyebar luas, dan tergantung tim bisa menjadi alat maupun sekadar formalitas
  • Tahun 2017, ekosistem perlahan memasuki fase stabil
    • React praktis menjadi pemenang
    • ES6 menjadi sintaks dasar
    • Webpack dan Docker diterima sebagai standar, meski menyakitkan
  • Tahap berikutnya sebenarnya sudah mulai terlihat
    • Kebangkitan TypeScript
    • Meta-framework seperti Next.js
    • Pengalaman deployment yang lebih sederhana
  • Namun ada satu prasyarat
    • Hanya developer yang berhasil melewati kekacauan Renaisans JavaScript inilah yang bisa melangkah ke tahap berikutnya

Era TypeScript

"Types are good, actually"

  • Setelah Renaissance JavaScript, saat maraknya tool mulai mereda dan ekosistem memasuki fase kedewasaan, TypeScript menempati posisi sebagai titik balik
  • TypeScript (2012) memperkenalkan static typing ke JavaScript, tetapi pada awalnya lama diabaikan karena bertentangan dengan filosofi bahasa dinamis dan menambah beban tahap build
    • Seiring skala aplikasi membesar, keterbatasan dynamic typing makin terlihat jelas
      • Biaya melacak call site meningkat setelah perubahan function signature
      • Masalah keterbacaan kode karena sulit memahami bentuk objek
      • Kasus typo sederhana berulang kali berujung pada gangguan production
    • Mulai 2017–2018, adopsi TypeScript menyebar dengan cepat
      • Menjamin stabilitas refactoring melalui autocomplete dan static analysis
      • Interface berperan sebagai dokumentasi yang dipaksakan dan tetap sinkron dengan kode
    • Penerimaan dari framework utama menjadi titik balik
      • Angular mengadopsi strategi TypeScript-first
      • Type definition React makin matang, dan penulisan ulang Vue 3 berbasis TypeScript membuatnya dipandang sebagai standar de facto
      • Sekitar 2020, proyek baru dengan JavaScript murni hampir tidak lagi dipilih
    • TypeScript sangat meningkatkan aksesibilitas codebase
      • Anggota baru bisa memahami domain model hanya dengan membaca type definition
      • Ketergantungan pada pengetahuan implisit berkurang sehingga biaya ekspansi tim menjadi lebih ringan
      Iklan
  • Kombinasinya dengan VS Code (2015) mengubah pengalaman pengembangan secara menentukan
    • Menyediakan intelligent autocomplete, tampilan error inline, dan refactoring yang andal
    • Pengaruh Sublime Text dan Atom perlahan menurun
  • Lapisan abstraksi lain terbentuk di atas React
    • Sebagai UI library, React tidak memiliki solusi bawaan untuk routing, data fetching, dan SSR
  • Next.js mengisi kekosongan ini sebagai meta-framework yang menyediakan file-based routing, server-side rendering, API route, dan automatic code splitting secara default
    • Berbagai framework tandingan seperti Nuxt, Remix, SvelteKit, dan Gatsby pun muncul
    • Di ekosistem React, Next.js menjadi pilihan default de facto
  • Penyebaran meta-framework sangat mengurangi kelelahan akibat fragmentasi tooling dari era sebelumnya
    • Proses merakit sendiri konfigurasi webpack dan Babel diserap ke dalam default bawaan
  • Lingkungan deployment juga menjadi jauh lebih sederhana
    • Vercel dan Netlify menyediakan deployment otomatis dan lingkungan preview hanya dengan menghubungkan GitHub
    • Desainer, PM, dan QA bisa memeriksa perubahan di lingkungan nyata sebelum merge
  • Pengaruh Heroku melemah, dan PaaS generasi baru seperti Railway dan Render mulai naik daun
  • Konsep Serverless menyebar dengan AWS Lambda (2014) sebagai pusatnya
    • Menyediakan penagihan berbasis penggunaan dan auto-scaling
    • Namun bukan solusi universal karena cold start, manajemen state, dan keterbatasan debugging
    • Cloudflare Workers memperluasnya lewat model eksekusi edge
  • Di ranah CSS juga terjadi transisi yang tenang
    • Setelah Sass dan Less, lalu CSS-in-JS, Tailwind CSS (2017) akhirnya diadopsi luas
    • Pendekatan berbasis utility class
      • menghilangkan beban penamaan class
      • mengurangi masalah cascade dan specificity
      • pada akhirnya membantu mempertahankan stylesheet yang lebih kecil
  • GraphQL (2015) mendapat perhatian sebagai solusi kuat untuk aplikasi yang menangani struktur data kompleks
    • Menawarkan keunggulan berupa query data yang presisi, schema berbasis type, dan ekosistem tool
    • Namun untuk CRUD sederhana, ia menjadi pilihan yang berlebihan karena kompleksitas layer server dan sulitnya caching
    • Sebagian tim tetap memakai REST atau memilih alternatif yang lebih sederhana seperti tRPC
  • Persaingan orkestrasi container berakhir sekitar 2018 dengan kemenangan Kubernetes
    • Sangat kuat, tetapi disertai biaya belajar tinggi dan kompleksitas operasional
    • Bagi banyak tim ini adalah solusi yang berlebihan, dan menjadi latar kebangkitan kembali PaaS
  • COVID (2020) memperluas permintaan pengembangan web secara drastis
    • Kerja jarak jauh, e-commerce, dan alat kolaborasi menjadi kebutuhan wajib
    • Hal ini memicu ledakan permintaan developer dan pertumbuhan pesat perusahaan tool pengembangan
  • Dalam lingkungan remote, pentingnya kolaborasi asinkron dan dokumentasi meningkat
    • Code review, penjelasan PR, dan kualitas dokumentasi internal menjadi elemen inti
  • Kematangan juga terjadi di level organisasi
    • Sistem level engineer menjadi mapan
    • Jalur IC memperoleh legitimasi
    • Peran PM, EM, dan tech lead makin terpisah jelas
  • Developer Experience (DX) mulai dipandang sebagai sasaran investasi tersendiri
    • Tim platform internal, CI yang cepat, dan onboarding yang lebih baik muncul sebagai faktor inti produktivitas
  • Sekitar 2022, pengembangan web mencapai kondisi yang rumit tetapi tetap bisa dikelola
    • TypeScript menjadi default
    • Ekosistem berpusat pada Next.js
    • Otomatisasi deployment dan sistem tool yang matang
  • Lalu semuanya berubah: sebuah perusahaan bernama OpenAI merilis sesuatu yang disebut ChatGPT

Momen AI

"Wait, I can just ask it to write the code?"

  • Dengan peluncuran ChatGPT (2022), muncul pengalaman baru di mana cukup dengan mengetik pertanyaan, kita bisa mendapatkan penjelasan, kode, dan hasil debugging, dan aturan pengembangan pun berubah
    • Dari penjelasan fisika kuantum hingga debugging Python, ia bisa melakukan banyak hal, dan meski tidak sempurna, fakta bahwa hasilnya cukup berguna untuk dipakai terasa mengejutkan
    • Developer langsung mulai bereksperimen, dan menulis komponen React, menganalisis penyebab error, serta mengubah kode antarbahasa menjadi mungkin dalam hitungan detik tanpa harus mencari dokumentasi atau menjelajahi forum
  • GitHub Copilot (2022) menghadirkan generasi kode dalam bentuk autocomplete di editor, dan menyebarkan pengalaman autocomplete superkuat yang dapat mengusulkan implementasi hanya dari komentar
    • Meta-skill baru untuk cepat menilai, menerima, mengubah, atau menolak saran AI muncul sebagai kemampuan inti developer
  • Tugas seperti boilerplate berulang, penulisan test, dan penanganan edge case menjadi jauh lebih cepat, sehingga pengembangan tanpa memutus flow menjadi mungkin
  • Cursor (2023) adalah IDE yang mengintegrasikan AI bukan sebagai fitur, melainkan sebagai prasyarat dasar; developer dapat memilih kode lalu meminta refactoring, mengubah banyak file berdasarkan penjelasan bahasa alami, dan berdialog dengan codebase
  • Perubahan ini menggoyahkan makna senioritas, tetapi dalam praktiknya justru makin menegaskan pentingnya kemampuan memutuskan apa yang akan dibuat, serta menilai requirement, constraint, dan efek samping
    • AI bisa menulis kode, tetapi tidak bisa mendefinisikan masalah dan memilih arah yang benar
  • Secara ekstrem ada dua reaksi kutub, yaitu “akhir dari pemrograman” dan “tren tak berguna”, tetapi hasil nyatanya adalah amplifikasi produktivitas developer yang memakai AI
  • Hambatan masuk untuk proyek personal dan side project turun drastis, sehingga area yang dulu tak berani dicoba seperti ML, game, atau framework baru kini bisa didekati lewat pembelajaran berbasis percakapan
  • Arus ini bekerja sebagai tahap yang mempercepat arah lama web, yaitu demokratisasi kreasi
    • Fokus bergeser dari mengetahui cara menulis kode menjadi mengetahui apa yang ingin dibuat
  • Non-developer pun ikut membuat prototype, dan PM, desainer, serta pakar domain langsung membuat tool sendiri, sehingga batas antara teknis dan nonteknis menjadi kabur
  • Jumlah indie hacker dan solo builder meningkat, dan lingkungan di mana satu orang pun bisa membuat produk yang nyata menjadi realitas
  • Pada saat yang sama, React Server Components, htmx, standar CSS dan JavaScript yang membaik, serta tool seperti Bun memperkuat arus untuk “menggunakan platform itu sendiri”
  • Setelah ledakan perekrutan besar pada 2022–2023 diikuti restrukturisasi, pasar sempat goyah, tetapi AI tidak menggantikan developer, dan kemampuan memanfaatkan AI menjadi ekspektasi dasar
  • Pada titik tahun 2025, pengembangan web berada dalam kondisi tercepat dalam sejarah dari ide hingga deployment, dan
    • di lingkungan gabungan cloud, framework, dan AI, individu menjadi kreator yang lebih kuat daripada sebelumnya
  • Janji web yang dimulai dari tag , yaitu prinsip bahwa “siapa pun bisa membuat dan berbagi”, terus berlanjut dalam bentuk yang lebih kuat di era AI
  • Sekarang adalah masa yang benar-benar bagus untuk mengembangkan web

7 komentar

 
ethanhur 2025-12-19

Saya membacanya dengan menyenangkan, seperti membaca buku sejarah.

 
zihado 2025-12-19

Dulu, saya sempat pakai hosting server di Cafe24, memasang Zeroboard, lalu menghiasnya seadanya agar terasa seperti komunitas, dan bersenang-senang di masa itu hehe

 
lethee 2025-12-19

Saya membacanya dengan sangat menyenangkan. Rasanya seperti kilas balik yang melintas sebelum meninggal, haha

 
edunga1 2025-12-17

Saya membacanya dengan senang hati.
Kalau masuk ke lingkungan pengembangan, ini juga bisa dihubungkan dengan kemunculan VS Code dan LSP. Lalu hingga alat-alat sebelum era AI dari Tabnine.

 
aer0700 2025-12-17

https://id.news.hada.io/topic?id=21170
Tulisan ini juga bagus untuk dibaca bersama.

 
GN⁺ 2025-12-17
Komentar Hacker News
  • Pernyataan bahwa setiap halaman membutuhkan header, navigasi, dan footer yang sama tetapi tidak ada cara untuk membagikannya tidak sepenuhnya benar Di web server sudah ada fitur Server Side Includes (SSI), dan kalau tidak ingin memakainya, ini juga bisa diselesaikan cukup dengan perintah cat header body > file Dokumentasi terkait: Tutorial NCSA SSI (1997)

    • HTML pada awalnya dibuat sebagai kosakata berbasis SGML, sehingga SGML dan XML memiliki fitur entity/makro teks untuk mereferensikan potongan dokumen seperti header atau footer bersama
    • Mungkin komentar aslinya berbicara dengan asumsi hanya HTML murni
  • Saya sempat berpikir akan bagus kalau tulisan ini diakhiri dengan kalimat seperti, "...dan di sepanjang semua proses itu, tag yang sederhana tetap menjalankan perannya"

  • Di perusahaan tempat saya dulu bekerja, kami memakai sistem yang membuat folder baru setiap kali deploy, lalu mengalihkan symbolic link ke versi terbaru Meski manual, cara ini terasa sangat elegan karena memungkinkan peralihan atomik di tiap server dan rollback yang mudah Sebelumnya kami harus menyalin file secara manual ke puluhan server dan menjalankan sendiri 10~20 langkah perintah, jadi dibanding itu cara ini jauh lebih aman dan sederhana Belakangan saya mencoba alat otomasi, tetapi konfigurasinya rumit dan tidak transparan sehingga justru menjadi proses deployment yang lebih rapuh

  • Ada kalimat, “Kalau ingin memakai skrip CGI, Anda harus belajar Perl atau C”, dan saya bertanya-tanya apakah benar perlu ratusan baris kode Kenyataannya, parameter URL bisa dibaca hanya dengan fungsi C yang sederhana Saya baru-baru ini membuat situs web survei dengan C murni, dan berkat pustaka pembuat HTML yang pernah saya buat sebelumnya, prosesnya cukup mudah Saya memfaktorkan ulang pustaka CGI milik OS lalu memakainya, dan menautkan SQLite secara statis untuk deploy sebagai binary tunggal Ini bahkan bisa diuji lewat stdin/stdout tanpa web server Kesimpulannya, situs CRUD cukup mudah dibuat bahkan dengan C, dan karena HTML adalah struktur pohon, interpolasi string (string interpolation) menurut saya adalah pendekatan yang keliru

    • Karena kodenya mencocokkan parameter pertama yang berakhir dengan ``, hasilnya mungkin tidak cocok secara persis, dan juga tidak menangani percent-encoding
    • Saya setuju bahwa interpolasi string tidak tepat jika HTML dipandang sebagai representasi struktur pohon Namun anehnya, bahkan setelah 30 tahun, interpolasi string masih terasa seperti alat yang paling umum dipakai
  • Ini benar-benar artikel yang komprehensif dan ditulis dengan baik Penulisnya optimistis, tetapi bagi saya pengembangan web tampak seperti menara rapuh yang dibangun dari akumulasi tambal sulam Saya merasa ini akibat standardisasi web dikuasai segelintir vendor browser, yang terus menambal alih-alih menyelesaikan masalah mendasar Alat AI generatif terbaru juga hanya solusi sementara untuk mengakali kompleksitas ini Pada akhirnya saya rasa menara ini suatu hari akan runtuh

  • Tulisan ini sepertinya akan menjadi artikel yang bertahan sebagai karya klasik Isinya merangkum sejarah teknologi web yang sering terlewat oleh para developer masa kini dengan singkat

  • Saat membaca bagian “Virtual private servers changed this…”, saya jadi teringat Sebenarnya penyedia VPS pertama sekitar tahun 2001 adalah JohnCompanies, berbasis FreeBSD jail Para pelanggan menginginkan backup jarak jauh, dan mereka menyukai rsync Karena itu, empat tahun kemudian saya mendaftarkan domain rsync.net (dengan izin dari penulis rsync/samba)

  • Saya bekerja di pengembangan web dari 1998 sampai 2012, dan membaca tulisan ini terasa seperti perjalanan nostalgia Ini juga merupakan ringkasan yang memungkinkan kita melihat perubahan setelahnya dalam sekali pandang

  • Isi tulisan ini hampir sepenuhnya sesuai dengan alur teknologi web yang saya ingat CGI sebelum PHP memang merepotkan, tetapi masih cukup layak berkat mod_perl dan FastCGI Menulis CGI dengan bahasa terkompilasi nyaris seperti masokisme, dan PHP dalam hal itu terasa ringan dan menyenangkan Saya berhenti dari pengembangan frontend tepat sebelum jQuery mulai naik daun

  • Tulisan yang benar-benar luar biasa Ini bukan sekadar daftar kronologi teknologi, tetapi menyampaikan semangat zaman (zeitgeist) di tiap era dengan sangat hidup Yang paling mengesankan adalah bagaimana tulisan ini berhasil menangkap konteks manusiawi yang biasanya hanya diwariskan lewat cerita lisan Alih-alih mengkritik “mengapa dunia cloud menjadi serumit ini”, tulisan ini membantu kita memahaminya sebagai hasil sejarah dari akumulasi pilihan-pilihan yang masuk akal di tiap titik waktu Ironi sejarah manusia terasa jelas di dalam sejarah teknologi ini

 
geekgig 2026-05-04

Bagi saya yang selama ini hanya melihat web/mobile dari kejauhan,
dan menjalani hidup terutama dengan PC App (C++),
ini adalah tulisan yang sangat membantu memahami alur perubahan historis web secara keseluruhan.
Berkat ini, rasanya saya jadi sedikit punya sudut pandang untuk menghubungkan potongan-potongan pengetahuan yang sebelumnya saya ketahui secara terpisah.

Terima kasih. ~~