Java neden Android için seçildi?


46

C ++ gibi bir şey yerine neden Android için Java seçildi? Java'nın oldukça fazla bellek kullandığını duydum ve düşük bellek kullanımının mobil cihazlarda oldukça önemli olacağını farz ediyorum. Bir mobil cihazda Java'yı C ++ gibi bir dil yerine kullanmanın gerçek bir avantajı var mı?


29
Küçük nokta, Android Google tarafından başlatılmadı. Google, Java kullanımı da dahil olmak üzere Android'i satın aldı.
World Engineer

2
@ZJR: Google'da kullanılan ana diller her zaman Java, Python ve C ++ olmuştur. Java, Android'den önce her zaman oradaydı.
Amzéiv

15
Android, Java kullanan Dili ve DEĞİL bir var, Java Virtual Machine büyük fark bile kendi byte kod biçimini kullanır. Bu soru niyeti yanlış ve her iki şekilde de yapıcı değil!

8
@JarrodRoberson Bir flamewar aştığı sürece yapıcı olduğunu düşünüyorum, ancak topluluk konuşuyor ...
maple_shaft

5
Tarihsel öneme sahip sorularla ilgili Meta tartışmalarına dayanarak yeniden açıyorum . Yazılım geliştirme tarihçesi ve ilgili konular hakkında sorular burada tartışılır ve değer katılır. Bu sorunun ifadesi ve cevapları göz önüne alındığında, bu sorunun bu topluluk için uygun olduğunu düşünüyorum.
Thomas Owens

Yanıtlar:


40

Bu makale duruma biraz ışık tutuyor. Bu makale içinde en uygun bağlantıdır bu . Yani dili bilen pek çok programcının bulunduğu ve üniversitelerde yaygın olarak öğretilen çok büyük bir kurulum tabanınız var. C ++ okulumun müfredatından çıkarıldı, Java hala burada. Java, diğer cep telefonlarında büyük bir yükleme tabanına sahip olan Java ME'ye sahiptir. Şu an cebimdeki Pantec Kolaylığı ekranın köşesinde küçük bir kahve fincanı var. Bunun ne olduğunu tahmin etmek isteyen var mı?

Yığın Taşma üzerine bu cevap da oldukça iyi kapsar.

SO cevabının özeti:

Java bilinen bir dildir, geliştiriciler bunu bilir ve öğrenmek zorunda değildir.

işaretçi aritmetiğine sahip olmadığından cava, c ++ kodundan çok java ile çekim yapmanız daha zordur

bir vm içinde çalışır, bu yüzden her telefon için tekrar derlemeye gerek yoktur ve güvenli olması kolaydır

Java için çok sayıda geliştirme aracı (ilk önce bakın)

zaten bazı cep telefonları java kullanıyordu, bu yüzden java endüstrisinde biliniyordu.

Hız farkı, çoğu uygulama için bir sorun değildir;


1
Ah, beni yendin, ben de listenize ekleyeceğim. Java'nın seçilmesinin başka bir nedenini ekleyen bu diğer SO sorusunu buldum (yönetilen bir dil). - stackoverflow.com/questions/5605575/…
Shauna

1
Teşekkürler, bu sorumu yanıtladı. Her farklı Android çalışan cihaz için derlemek zorunda değil aslında Java seçmek için büyük bir profesyonel gibi görünüyor. Bunu neden düşünmediğimi bilmiyorum. Teşekkürler!
cgt

2
Piyasanın kaç tane Android cihazına paylaştığı göz önüne alındığında, bununla başa çıkmak neredeyse imkansız olurdu.
World Engineer

3
Bu doğru, ancak herhangi bir dil seçtiler. Hatta yeni bir tane bile yazabilirlerdi; VM'yi kurdular. Java, açıkça tanımlanmış bir VM spesifikasyonu avantajına sahiptir.
Michael K

18

Başka bir şey yapmazsa Google’ın Java'yı tanıdık bulmak için seçtiğini tahmin ediyorum. Google’ın projelerinin çoğu, en azından Java şemaları (örneğin GWT) kavramlarını yansıtmaktadır.

Ayrıca, teknik okullarda yaygın olarak öğretilen bir dildir (aksine, Javascript (Android'in de şiddetle desteklediği)). Java kesinlikle bir mobil cihaz için performans ve üretim açısından en iyi dil değil, ama iyi biliniyor.

Ayrıca Android'in partiye biraz geç geldiğini de unutmayın. Geliştiricileri düşük seviyeli bir derleme dili olan C ++ kullanmaya zorlamak, bir 'wow' faktörü oluşturmayı zorlaştırır ve başka bir şey olmazsa, Android'in sayıları (uygulamaların) ve yeryüzünden çıkmak için göz alıcı olmaları gerekirdi.


3
Uygulama geliştirme hakkındaki fikrini beğendim. Bunu daha önce hiç düşünmedim, ama mantıklı. +1
Russell

6
Bence bu durumda Java üzerinden C ++ 'a olan isteksizlik, daha az açıklık ve wow faktörü ile daha az, geliştiricilerin pazar için daha hızlı ve kolay bir şekilde uygulama yazabilme yetenekleri ile ilgili. Spesifikasyonun yazıldığı tarihte, ortak bilgi, iPhone'un başarısının Apple'ın uygulama geliştiricilere uygulama geliştirmeyi cazip hale getirme konusundaki başarısı ile ilişkili olduğuydu. C ++ çoğu geliştiricinin yutması için biraz zor olurdu, bu yüzden Java'nın minimum performans kaybı buna değerdi.
maple_shaft

8
@maple_shaft: gerçekten ?? Her zaman bana, iPhone'un başarısının ne kadar çekici olmasından kaynaklanıyordu.
Carson63000,

3
@maple_shaft: Burada Carson ile aynı fikirdeyim. iOS gelişimi bir kabustur. Apple ekosisteminin dışındaki hiç kimsenin Objective-C kullanmamasının bir nedeni var ve bu, Apple'ın düpedüz kötü şartlarına dokunmadan önce, sizin yarattığınız uygulamayı dağıtmaya çalışırken aslında ...
Mason Wheeler

@Jeffrey, Neden Android'in JavaScript'i desteklediğini söylüyorsun?
Pacerier

9

Tam olarak neden Java'nın seçildiğinden emin değilim, ancak muhtemelen birkaç nedenden dolayıydı.

  1. Java'yı tanıyan ve kullanan büyük geliştiriciler grubunu yakalamak için

  2. Java'daki J2ME gibi teknolojilerin Java'nın olmadığı mobil boşluğu doldurun.

İkincisi, Android için belirtilen Java Sanal Makinesi yoktur. Bunun yerine tüm Java kodu, özellikle mobil ortamlarda çalışmak üzere tasarlanmış hafif ve optimize edilmiş bir VM olan Dalvik'te çalışmak üzere derlenmiştir . Batarya ömrünü arttırır ve kaynakların verimli kullanımını en üst düzeye çıkarır.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.