Apa itu Kode Terkelola?

“Kode terkelola” adalah istilah yang dibuat oleh Microsoft® Coproration. Istilah ini mengacu pada kode program yang memerlukan penggunaan mesin virtual Common Language Runtime (CLR) agar dapat digunakan. Istilah “kode tidak terkelola” digunakan untuk merujuk pada kode program yang tidak memerlukan mesin virtual ini.

Common Language Runtime dikembangkan dalam upaya untuk memungkinkan program berjalan di berbagai komputer dan sistem operasi tanpa memerlukan perubahan dalam kode program. Untuk melakukan ini, kode program komputer diubah menjadi bytecode mesin virtual. Bytecode ini kemudian ditafsirkan oleh mesin virtual CLR dan diubah menjadi bytecode untuk komputer tertentu yang menjalankannya.

Kode terkelola dapat berjalan di komputer mana pun yang dilengkapi dengan mesin virtual CLR. Tingkat portabilitas yang tinggi ini memberikan keunggulan definitif dibandingkan kode yang tidak dikelola. Kode yang tidak dikelola mengharuskan pemrogram mengubah kode program untuk digunakan pada mesin yang berbeda. Proses ini tidak hanya lambat, tetapi juga dapat menyebabkan banyak kesalahan aplikasi.

Keuntungan lain yang dimiliki kode terkelola adalah keamanannya yang ditingkatkan. Keamanan program yang dibuat dengan kode yang tidak dikelola sangat bergantung pada implementasi yang dibuat oleh programmer. Penggunaan mesin virtual CLR membantu menghilangkan sebagian besar masalah keamanan dari pundak programmer. Mayoritas masalah keamanan yang dapat muncul secara langsung terpusat di dalam mesin virtual itu sendiri. Ini dengan sendirinya membantu memusatkan masalah, membuatnya lebih cepat untuk menerapkan patch keamanan.

Masalah apakah kumpulan kode tertentu adalah kode terkelola atau kode tidak terkelola sangat penting bagi pemrogram komputer. Kode yang dikelola memiliki tingkat portabilitas yang lebih tinggi, tetapi portabilitas ini mengharuskan Common Language Runtime diinstal pada komputer target. Kode yang tidak dikelola, di sisi lain, dapat dijalankan tanpa penambahan CLR.

Ada banyak keuntungan menggunakan kode terkelola, tetapi ada juga beberapa kelemahannya. Kerugian utama adalah overhead yang dibutuhkan oleh penggunaan mesin virtual CLR. Perbedaan antara kecepatan menjalankan kode terkelola versus kecepatan kode tidak terkelola sering kali dapat diabaikan, tetapi dalam beberapa kasus, perbedaan tersebut menciptakan perbedaan yang sangat mencolok dalam waktu respons aplikasi. Akibatnya, kode yang tidak dikelola memainkan peran penting dalam sebagian besar aplikasi yang memerlukan tingkat kecepatan yang tinggi daripada portabilitas.