Bisakah Java dianggap sebagai bahasa pemrograman terkelola?

8

Saya penasaran; dapatkah Java disebut sebagai bahasa yang dikelola? Saya terutama berpikir tentang model Microsoft ketika datang ke kode dikelola dikelola versus (katakanlah asli vc ++ ke C #). Dengan kesamaan antara C # dan Java sebagai bahasa tingkat tinggi, apakah benar menyebut Java sebagai bahasa yang dikelola juga?

KaiserJohaan
sumber
4
Silakan tentukan "bahasa yang dikelola". Tidak mungkin menjawab pertanyaan ini tanpa definisi yang tepat tentang apa "bahasa yang dikelola" itu.
Jörg W Mittag

Jawaban:

21

Iya. Java dianggap sebagai bahasa pemrograman yang dikelola karena di-sandbox dengan baik oleh JVM. Tetapi istilah "kode terkelola" adalah spesifik microsoft.

shadowfoxmi
sumber
1
@ S.Lott Mono juga menggunakan terminologi ini pada platform non-Windows. Jadi tidak, bukan "Hanya Windows".
Konrad Rudolph
4
@ S.Lott Saya pikir Microsoft menggunakan "kode terkelola" lebih sebagai istilah umum daripada mengikatnya pada implementasi tertentu (IL, CLR). Tapi saya mungkin salah. "Dikelola" bagi saya hanya menyiratkan bahwa pelaksanaan kode adalah "aman" karena bergantung pada pemeriksaan akses pointer dll. Dengan definisi itu, eksekusi JVM juga akan dikelola.
Konrad Rudolph
2
@Konrad: Saya setuju - "dikelola" lebih merupakan istilah pemasaran daripada istilah teknis. Saya akan melangkah sedikit lebih jauh: programer dan proyek pemrograman sebagian besar dianggap hampir tidak dapat dikelola, dan saya pikir maksud sebenarnya adalah menyiratkan bahwa jika Anda menggunakan Microsoft "dikelola" (kode, atau apa pun) yang keduanya akan menjadi lebih mudah dikelola - dan, kebetulan, para manajer akan menjadi bagian yang lebih penting dari proyek juga. Singkatnya, Microsoft memasarkan langsung kepada orang-orang yang mengendalikan uang alih-alih kepada programmer, dan berharap mereka akan meyakinkan para manajer untuk membeli dari Microsoft.
Jerry Coffin
1
Dari sudut pandang itu, saya akan mengatakan bahwa ya, Java serupa. Keduanya mengambil posisi bahwa programmer tidak kompeten, tidak dapat dipercaya, dan perlu "dikendalikan". Keduanya pada dasarnya juga mendefinisikan "manajemen" sebagai dilaksanakan dengan paksa - daripada membujuk seseorang untuk melakukan sesuatu dengan baik, mereka menganggap bahwa apa yang dikelola akan melakukan kesalahan sebanyak mungkin, sehingga "manajer" harus memastikan terhadap semua yang mereka miliki didefinisikan sebagai "salah". Singkatnya, keduanya dimaksudkan untuk menarik naluri paling dasar dari manajer terburuk.
Jerry Coffin
7
Baik Java maupun .Net mengasumsikan ketidakmampuan pihak pengembang, mereka hanya mengaburkan manajemen memori. Istilah kode yang dikelola berasal dari manajemen memori otomatis, yaitu pengumpulan sampah. Ini bukan istilah pemasaran (".Net" adalah istilah pemasaran).
Steve
9

Iya. Bahasa yang dikelola adalah bahasa yang berjalan di wadahnya sendiri.

Java adalah bahasa yang dikelola karena Anda punya JVM dan dalam. NET Anda punya CLR .

Istilah "kode terkelola" tampaknya merupakan sesuatu yang spesifik dari Microsoft, lihat artikel wikipedia berikut .

Kevin
sumber
3
Saya tidak berpikir definisi "dikelola" sebenarnya bergantung pada keberadaan pengumpul sampah.
Konrad Rudolph
2
@ Konrad: Saya telah memperbarui jawaban saya.
Kevin
Paragraf terakhir dari jawaban ini tampaknya bertentangan dengan dua lainnya. Artikel wikipedia cukup spesifik tentang "dikelola" yang berkaitan dengan CLR VM, bukan sembarang VM
Ben Aaronson