The Innovation Gap: Mengapa AI “Gagap” Menulis Svelte 5 Analisis Arsitektural Mendalam
Minggu lalu, saya melakukan ekspeerimen sederhana.
Saya meminta seorang AI Assistant untuk membuat sebuah komponen di Next.js.
Hasilnya bersih. Type-safe. Hampir siap masuk ke produksi.
Lalu saya beralih ke Svelte 5.
Tiba-tiba, AI yang sama menghasilkan kode yang bahkan tidak bisa dikompilasi.
Sintaks JavaScript-nya valid. Tapi Svelte menolak semuanya.
Error di mana-mana.
Awalnya, saya berpikir:
“Apakah framework ini aneh?”
Ternyata, tidak.
Masalahnya jauh lebih struktural.
Saya menyebut fenomena ini:
The Innovation Gap.
Ini terjadi ketika teknologi berkembang lebih cepat daripada model AI yang dilatih untuk menulisnya.
Dan Svelte 5 adalah contoh yang sempurna.
Mari kita bedah alasannya.
1. The Great Semantic Reset
Reaktivitas berubah makna
Di Svelte 3/4, reaktivitas bersifat implisit.
let count = 0
Compiler secara otomatis memperlakukan ini sebagai state reaktif.
Pola ini sudah ada selama bertahun-tahun. Jadi model AI telah melihatnya ribuan kali selama masa pelatihan.
Lalu Svelte 5 mengubah aturannya.
Reaktivitas sekarang bersifat eksplisit:
let count = $state(0)
Sekarang let hanyalah JavaScript normal lagi.
Tidak reaktif.
Jadi makna dari simbol yang sama telah berubah.
Bagi manusia, ini lebih jelas. Bagi AI, ini membingungkan.
Karena AI tidak memahami niat (intent). Ia memprediksi token berdasarkan probabilitas.
Ketika makna dari pola inti berubah, prediksi tersebut rusak.
Hasilnya seringkali berupa kode “hibrida” seperti ini:
export let count = 0
let doubled = $derived(count * 2)
Ini mencampuradukkan paradigma lama dan baru.
- JavaScript: valid
- Svelte: tidak valid
Inilah yang saya maksud dengan reset semantik.
2. Runes Bukanlah Sekadar Library
Mereka adalah bahasa primitif
Kesalahan AI yang sangat umum:
import { $state } from 'svelte'
Terlihat masuk akal. Tapi sepenuhnya salah.
Mengapa?
Karena Runes bukanlah fungsi runtime.
Mereka adalah compiler primitives.
Mereka tidak ada saat runtime. Mereka hanya ada selama proses kompilasi.
Bandingkan:
- React Hooks → fungsi JavaScript biasa
- Runes → instruksi untuk compiler
Maka secara mental:
- React = library
- Svelte 5 = ekstensi bahasa
LLM sangat baik dalam mempelajari pola library.
Namun, mereka lebih kesulitan dengan transformasi di tingkat bahasa.
Ketidakcocokan itulah yang menyebabkan banyak halusinasi.
3. Terikat Komponen → Reaktivitas Universal
Arsitekturnya sendiri telah berubah
Sebelum Svelte 5:
state hidup di dalam komponen
Setelah Svelte 5:
state bisa hidup di mana saja (.svelte.js / .svelte.ts)
State tidak lagi terikat pada komponen.
Ini adalah pergeseran arsitektural yang nyata.
Bukan sekadar fitur kecil.
Data pelatihan lama berasumsi:
“state selalu berada di dalam komponen”
Asumsi itu sekarang salah.
Jadi AI terus menyelesaikan masalah baru menggunakan model mental yang sudah usang.
Seperti developer yang melewatkan panduan migrasi.
4. Mengapa Next.js Terlihat Lebih Mudah bagi AI?
Bukan karena ia lebih baik.
Tapi karena ia dominan secara statistik.
Next.js:
- sebagian besar berupa JavaScript/TypeScript biasa
- perubahan yang evolusioner
- stabilitas selama bertahun-tahun
- adopsi yang masif
- jutaan contoh tersedia online
Svelte 5:
- sintaks yang lebih baru
- DSL yang dikendalikan compiler
- repositori produksi yang lebih sedikit
- ekosistem yang lebih kecil
AI belajar dari frekuensi, bukan kebenaran.
Jadi pola yang paling umum akan menang.
Pola React/Next muncul ribuan kali lebih sering daripada pola Svelte 5.
Tentu saja, AI akan memprediksi pola tersebut.
5. “Tapi Svelte 5 Sudah Keluar Selama Setahun…”
Ini adalah klarifikasi yang penting.
Tanggal rilis tidak terlalu berarti bagi LLM.
Model tidak belajar dari pengumuman atau dokumentasi.
Mereka belajar dari distribusi data.
Meskipun Svelte 5 diluncurkan setahun yang lalu, jumlah codebase Svelte 5 di dunia nyata masih sangat kecil dibandingkan dengan ekosistem React.
Jadi secara statistik:
- React/Next = sinyal kuat
- Svelte 5 = sinyal lemah
Bagi model probabilistik, dominasi lebih penting daripada usia.
Keberadaan saja tidak cukup. Volume lah yang utama.
6. The Innovation Gap
Inilah ide intinya.
Setiap LLM dilatih pada cuplikan masa lalu.
Jadi selalu ada:
- teknologi hari ini
- pengetahuan AI dari hari kemarin
Jika sebuah framework berkembang lambat, AI bisa mengimbanginya.
Jika sebuah framework mengubah fundamentalnya, AI akan tertinggal.
Svelte 5 memilih jalan kedua:
- reaktivitas eksplisit
- compiler primitives
- sintaks baru
- model mental baru
Hasilnya:
- Performa runtime yang lebih baik
- Arsitektur yang lebih bersih
- Tapi untuk sementara, bantuan AI yang lebih buruk
Ini bukan bug.
Ini hanyalah biaya dari bergerak lebih cepat daripada dataset.
Saya menyebutnya:
The Innovation Tax.
Kesimpulan: Sebuah Trade-off Engineering
Jika AI terasa “buruk” dalam menulis Svelte 5, itu tidak berarti framework-nya cacat.
Itu berarti framework-nya berada di depan data pelatihan.
Jadi trade-off-nya praktis:
- Ingin bantuan AI maksimal dan pembuatan scaffolding cepat → Next.js
- Ingin performa runtime yang ringan dan arsitektur modern → Svelte 5 (dengan lebih banyak pemikiran manual)
Seiring berjalannya waktu, AI akan mengejar ketertinggalannya.
Lebih banyak repo. Lebih banyak contoh. Lebih banyak data pelatihan.
Celah itu akan tertutup.
Tapi sekarang?
Svelte tidaklah sulit.
Ia hanya berada di depan model.
Dan modelnya belum mengejar ketertinggalannya.
References
[1] Svelte Core Team, “Svelte 5 Migration Guide,” Svelte Documentation. https://svelte.dev/docs/svelte/v5-migration-guide
[2] R. Harris, “Introducing Runes,” Svelte Blog. https://svelte.dev/blog/runes
[3] Svelte Core Team, “The Omnisite,” Svelte Blog. https://svelte.dev/blog/the-omnisite