Mengapa Java dipilih untuk Android?

46

Mengapa Java dipilih untuk Android, bukan sesuatu seperti C ++? Saya telah mendengar bahwa Java menggunakan cukup banyak memori dan saya akan menganggap bahwa penggunaan memori yang rendah akan sangat penting pada perangkat seluler. Apakah ada keuntungan nyata menggunakan Java daripada bahasa seperti C ++ di perangkat seluler?

cgt
sumber
29
Poin kecil, Android tidak dimulai oleh Google. Google membeli Android termasuk penggunaan Java.
Insinyur Dunia
2
@ZJR: bahasa utama yang digunakan di Google selalu Java, Python dan C ++. Java selalu ada bahkan sebelum Android.
UncleZeiv
15
Android menggunakan Bahasa Java dan BUKAN Mesin Virtual Java, ada perbedaan besar , bahkan menggunakan format kode byte sendiri. Pertanyaan ini cacat dalam maksudnya dan tidak konstruktif dengan cara apa pun!
8
@JarrodRoberson Saya pikir ini konstruktif asalkan tidak berubah menjadi flamewar, TETAPI komunitas berbicara ...
maple_shaft
5
Saya membuka kembali berdasarkan diskusi Meta tentang pertanyaan-pertanyaan penting sejarah . Pertanyaan tentang sejarah pengembangan perangkat lunak dan topik yang relevan ada di topik di sini dan menambah nilai. Mengingat kata-kata dari pertanyaan ini dan jawabannya, saya pikir pertanyaan ini sangat cocok untuk komunitas ini.
Thomas Owens

Jawaban:

40

Artikel ini menjelaskan situasi. Tautan yang paling relevan dalam artikel itu adalah ini . Jadi Anda punya basis instalasi besar dengan banyak programmer yang tahu bahasa dan itu banyak diajarkan di universitas. C ++ diturunkan dari kurikulum sekolah saya, Java masih ada di sini. Java memiliki Java ME yang memiliki basis instalasi besar-besaran di ponsel lain. Kemudahan Pantec yang saya miliki di saku saya sekarang memiliki secangkir kopi kecil di sudut layar. Adakah yang mau menebak apa itu?

Ini jawaban pada Stack Overflow mencakup itu cukup baik juga.

Ringkasan jawaban SO:

java adalah bahasa yang dikenal, pengembang tahu itu dan tidak harus mempelajarinya

lebih sulit untuk menembak diri sendiri dengan java daripada dengan c, c ++ kode karena tidak memiliki aritmatika pointer

ini berjalan dalam vm, jadi tidak perlu mengkompilasi ulang untuk setiap telepon di luar sana dan mudah diamankan

sejumlah besar alat pengembangan untuk java (lihat dulu)

beberapa telepon seluler sudah menggunakan java saya, jadi java sudah dikenal di industri

perbedaan kecepatan bukan masalah bagi sebagian besar aplikasi, jika Anda harus kode dalam perakitan

Insinyur Dunia
sumber
1
Ah, Anda mengalahkan saya untuk itu, jadi saya hanya akan menambah daftar Anda. Saya menemukan pertanyaan SO lainnya ini yang menambahkan alasan lain mengapa Java dipilih (ini adalah bahasa yang dikelola). - stackoverflow.com/questions/5605575/…
Shauna
1
Terima kasih, ini menjawab pertanyaan saya. Tidak harus mengkompilasi ulang untuk setiap perangkat yang menjalankan Android berbeda tampaknya seperti pro besar untuk memilih Java. Saya tidak tahu mengapa saya tidak memikirkan itu. Terima kasih!
cgt
2
Mengingat berapa banyak perangkat Android yang terpecah oleh pasar, hampir tidak mungkin untuk berurusan dengan yang sebaliknya.
Insinyur Dunia
3
Ini benar, tetapi mereka bisa memilih bahasa apa pun. Mereka bahkan bisa menulis yang baru; mereka membangun VM. Java memang memiliki keunggulan spesifikasi VM yang jelas.
Michael K
18

Saya akan menebak bahwa Google memilih Java untuk keakraban, jika tidak ada yang lain. Banyak proyek Google berputar setidaknya konsep skema Java (GWT misalnya).

Selain itu, ini adalah bahasa yang diajarkan secara luas di sekolah teknis (tidak seperti katakanlah, Javascript (yang Android juga mendukung dengan bersemangat)). Java jelas bukan bahasa terbaik untuk perangkat seluler dalam hal kinerja dan produksi, tetapi sudah terkenal.

Juga ingat bahwa Android datang sedikit terlambat ke pesta. Memaksa pengembang untuk menggunakan C ++, bahasa kompilasi tingkat rendah, akan membuatnya lebih sulit untuk menghasilkan faktor 'wow', dan jika tidak ada yang lain, Android membutuhkan jumlah (aplikasi) dan flashiness untuk keluar dari tanah.

Jeffrey Sweeney
sumber
3
Saya suka ide Anda tentang pengembangan aplikasi. Saya tidak pernah memikirkan itu sebelumnya, tetapi itu masuk akal. +1
Russell
6
Saya pikir keengganan untuk C ++ lebih dari Jawa dalam hal ini kurang berkaitan dengan faktor mencolok dan wow, dan lebih berkaitan dengan kemampuan pengembang untuk lebih cepat dan mudah menulis aplikasi untuk pasar. Pada saat spesifikasi ditulis, pengetahuan umum adalah bahwa keberhasilan iPhone berkorelasi dengan seberapa sukses Apple dalam membuat pengembangan aplikasi menarik bagi pengembang. C ++ akan menjadi agak terlalu sulit bagi sebagian besar pengembang untuk menelan, sehingga kehilangan kinerja minimal Java sangat berharga.
maple_shaft
8
@maple_shaft: benarkah ?? bagi saya selalu terlihat bahwa keberhasilan iPhone terlepas dari betapa tidak menariknya pengembangan aplikasi, bukan karena betapa menariknya itu!
Carson63000
3
@maple_shaft: Harus setuju dengan Carson di sini. Pengembangan iOS adalah mimpi buruk. Ada alasan mengapa tidak ada orang di luar ekosistem Apple yang menggunakan Objective-C, dan itu bahkan sebelum Anda menyentuh istilah jahat Apple yang sebenarnya ketika mencoba benar-benar mencoba untuk menyebarkan aplikasi yang Anda buat ...
Mason Wheeler
@ Jeffrey, Mengapa Anda mengatakan bahwa Android mendukung JavaScript?
Pacerier
9

Tidak yakin mengapa Jawa dipilih, tetapi mungkin karena beberapa alasan

  1. Untuk menangkap kelompok besar pengembang yang terbiasa dan menggunakan Java

  2. Isi kesenjangan ponsel di Jawa di mana teknologi seperti J2ME di mana Java kurang.

Kedua, tidak ada Java Virtual Machine yang ditentukan untuk Android. Sebagai gantinya semua kode Java dikompilasi untuk berjalan di Dalvik , yang merupakan VM ringan dan dioptimalkan yang dirancang khusus untuk berjalan di lingkungan seluler. Ini konon meningkatkan masa pakai baterai dan memaksimalkan penggunaan sumber daya secara efisien.

maple_shaft
sumber