Thursday, November 11, 2004

TASM yang Agnostik vs .NET yang Gnostik: Liturgi Mesin dan Apokrif Modern

Ada dua aliran besar dalam iman komputasi: mereka yang percaya pada mesin, dan mereka yang percaya pada runtime. Yang pertama disebut TASM — sang agnostik sejati. Ia tidak berteori tentang hakikat keberadaan memori; ia langsung menulis ke sana. Ia tidak banyak bicara tentang keamanan, etika, atau metadata. Ia hanya tahu: mov ax, bx adalah doa, dan int 21h adalah pengabulannya.

Lalu datanglah sang nabi modern, .NET, dengan kitab tebal penuh simbol, refleksi, dan istilah Yunani seperti Intermediate Language dan Just-In-Time compilation. Ia mengaku membawa keselamatan dari segfault dan pointer hell, tapi dengan syarat: kau harus tunduk pada liturgi runtime yang maha berat. CLR menjadi imam besar, GC menjadi malaikat pembersih, dan developer menjadi umat yang taat menunggu build selesai.

TASM adalah agama alam: kamu bicara langsung pada batu, dan batu menjawab dengan listrik. .NET adalah agama mistik: kamu berdoa pada framework, dan framework memanggil roh yang menerjemahkan doamu ke mesin. Yang satu agnostik, percaya bahwa “jika benar, pasti jalan.” Yang satu gnostik, yakin bahwa “tidak ada yang benar kecuali melalui layer yang disucikan oleh CLR.”

Di zaman TASM, kebenaran bisa diukur dalam byte — 168 bytes untuk satu “Hello, world!”. Satu kesalahan segmen adalah ujian iman; satu jmp salah bisa membuat seluruh dunia beku. Namun setiap reboot adalah baptisan ulang; setiap keberhasilan kompilasi adalah mukjizat kecil. Tidak ada dependency hell, tidak ada nuget, tidak ada mscorlib.dll. Hanya kamu, kode, dan mesin.

Lalu datanglah era .NET, di mana “Hello, world” bisa berukuran 135 MB, karena di dalamnya tersimpan semua ajaran keselamatan digital: framework, runtime, metadata, dan debugger yang selalu berjaga. Di sinilah keindahan mistiknya: kamu tidak tahu di mana sebenarnya logika dijalankan — di CPU, di JIT, atau di semesta metafisis milik Microsoft.

TASM percaya pada dunia nyata.
.NET percaya pada dunia ide.
Di TASM, satu byte bisa membunuh.
Di .NET, satu paket bisa menyelamatkan.
Agnostik memberi kendali.
Gnostik memberi kenyamanan.

Di kantor, sang ICT yang sudah melewati satu dekade server dan solder tersenyum getir. Yang tahu, setiap kali menulis mov ah, 09h di masa lalu, artinya sedang berbicara dengan Tuhan Mesin. Tapi setiap kali melihat Visual Studio menulis “Restoring packages…”, ia sadar bahwa kini ia berbicara dengan para malaikat perantara. Banyak, bersayap, dan semua butuh update.

Namun jangan salah: sang gnostik juga membawa damai. .NET memeluk umatnya dengan intellisense dan try-catch, menghapus dosa pointer, dan memberi mereka surga bernama Garbage Collection. Tak ada lagi stack overflow — hanya runtime exception yang bisa diurus dengan tenang.

Dulu, programmer menulis logika di atas pasir silikon,
dan angin listrik menghapus kesalahannya.
Kini, programmer menulis doa di atas cloud,
dan runtime mengabulkannya… perlahan-lahan.

Di antara kedua ekstrem ini, ada kita — generasi yang menulis kode di Geany, memplot fungsi gelombang dengan Python, dan kadang masih memimpikan TASM yang sederhana tapi brutal. Kita tahu bahwa interpreter itu gendut, tapi ia juga lembut. Ia memberi ruang untuk berpikir, tidak membekukan komputer setiap kali kita lupa segment override.

Mungkin kita memang hidup di zaman apokrif: di mana runtime menjadi roh kudus, dan syntax highlighting menjadi bentuk doa baru. Tapi jika kita melihat dengan hati yang jernih, baik TASM maupun .NET hanya dua jalan menuju hal yang sama: keinginan manusia untuk membuat logika menjadi hidup.

Dan barangkali, di antara register dan runtime, Tuhan tersenyum —
karena ciptaan-Nya kini mampu mencipta, meski dalam bahasa yang berbeda.