Por que o Java foi escolhido para o Android?

46

Por que o Java foi escolhido para Android, em vez de algo como C ++? Ouvi dizer que o Java usa bastante memória e presumo que o baixo uso de memória seja muito importante em dispositivos móveis. Existe alguma vantagem real em usar Java em vez de uma linguagem como C ++ em um dispositivo móvel?

cgt
fonte
29
Ponto secundário, o Android não foi iniciado pelo Google. O Google comprou o Android, incluindo o uso de Java.
World Engineer
2
@ZJR: as principais linguagens em uso no Google sempre foram Java, Python e C ++. Java estava sempre lá antes mesmo do Android.
precisa saber é o seguinte
15
O Android usa a linguagem Java e NÃO a Java Virtual Machine, há uma grande diferença , ele ainda usa seu próprio formato de código de bytes. Esta questão é falha em sua intenção e não é construtiva de qualquer maneira!
8
@JarrodRoberson eu acho que é construtiva, desde que ele não transformar-se em um flamewar, mas a comunidade fala ...
maple_shaft
5
Estou reabrindo com base em uma discussão meta sobre questões de importância histórica . Perguntas sobre o histórico de desenvolvimento de software e tópicos relevantes estão no tópico aqui e agregam valor. Dada a redação desta pergunta e suas respostas, acho que essa pergunta é uma boa opção para esta comunidade.
Thomas Owens

Respostas:

40

Este artigo lança alguma luz sobre a situação. O link mais pertinente nesse artigo é esse . Então você tem uma base de instalação massiva com muitos programadores que conhecem o idioma e é amplamente ensinado nas universidades. C ++ foi retirado do currículo da minha escola, Java ainda está aqui. Java possui Java ME, que possui uma base de instalação massiva em outros celulares. O Pantec Ease que tenho no meu bolso agora tem uma xícara de café no canto da tela. Alguém quer adivinhar o que é isso?

Esta resposta no Stack Overflow cobre muito bem também.

Resumo da resposta do SO:

java é uma linguagem conhecida, os desenvolvedores a conhecem e não precisam aprender

é mais difícil atirar em si mesmo com java do que com código c, c ++, pois ele não tem aritmética de ponteiro

ele roda em uma vm, portanto, não é necessário recompilá-lo para todos os telefones existentes e fácil de proteger

grande número de ferramentas de desenvolvimento para java (veja primeiro)

vários telefones celulares já usavam o java me, então o java era conhecido na indústria

a diferença de velocidade não é um problema para a maioria dos aplicativos, se você deveria codificar na montagem

Engenheiro Mundial
fonte
1
Ah, você me venceu, então vou adicionar à sua lista. Encontrei essa outra pergunta SO que acrescenta outro motivo pelo qual o Java foi escolhido (é uma linguagem gerenciada). - stackoverflow.com/questions/5605575/...
Shauna
1
Obrigado, isso respondeu à minha pergunta. Não ter que recompilar para cada dispositivo Android diferente parece um grande profissional para escolher Java. Não sei por que não pensei nisso. Obrigado!
Cgt
2
Dado o número de dispositivos Android em que o mercado se fragmentou, seria quase impossível lidar com o contrário.
World Engineer
3
Isso está correto, mas eles poderiam ter escolhido qualquer idioma. Eles poderiam ter escrito um novo mesmo; eles construíram a VM. Java tem a vantagem de uma especificação de VM claramente definida.
Michael K
18

Arriscarei um palpite de que o Google escolha Java por familiaridade, se nada mais. Muitos dos projetos do Google envolvem pelo menos conceitos de esquemas Java (GWT, por exemplo).

Além disso, é uma linguagem amplamente ensinada nas escolas técnicas (diferentemente do Javascript (que o Android também suporta zelosamente)). O Java certamente não é a melhor linguagem para um dispositivo móvel em termos de desempenho e produção, mas é bem conhecido.

Lembre-se também de que o Android chegou um pouco tarde para a festa. Forçar os desenvolvedores a usar o C ++, uma linguagem de compilação de baixo nível, dificultaria a geração de um fator 'uau' e, se nada mais, o Android precisava de números (de aplicativos) e brilho para decolar.

Jeffrey Sweeney
fonte
3
Gosto da sua ideia sobre o desenvolvimento de aplicativos. Eu nunca pensei nisso antes, mas faz sentido. 1
Russell
6
Eu acho que a aversão ao C ++ sobre Java, neste caso, tem menos a ver com flashiness e fator uau, e mais com a capacidade dos desenvolvedores de escrever aplicativos de forma mais rápida e fácil para o mercado. No momento em que a especificação foi escrita, o conhecimento comum era que o sucesso do iPhone se correlacionava com o sucesso da Apple em tornar o desenvolvimento de aplicativos atraente para os desenvolvedores. C ++ teria sido um pouco difícil demais para a maioria dos desenvolvedores, portanto a perda mínima de desempenho do Java valeu a pena.
Maple_shaft
8
@maple_shaft: really ?? sempre me pareceu que o sucesso do iPhone foi apesar de como o desenvolvimento de aplicativos não era atraente, não por ser atraente!
Carson63000
3
@ maple_shaft: Tenho que concordar com Carson aqui. O desenvolvimento do iOS é um pesadelo. Há uma razão para ninguém fora do ecossistema da Apple está usando Objective-C, e isso antes mesmo de tocar em termos francamente mal da Apple para quando se trata de realmente tentando implantar o aplicativo que você criou ...
Mason Wheeler
@ Jeffrey, por que você diz que o Android suporta JavaScript?
Pacerier
9

Não sei por que exatamente o Java foi escolhido, mas provavelmente foi por várias razões

  1. Para capturar o grande grupo de desenvolvedores que estão familiarizados e usam Java

  2. Preencha a lacuna móvel em Java, onde tecnologias como J2ME estão ausentes.

Em segundo lugar, não há Java Virtual Machine especificado para Android. Em vez disso, todo o código Java é compilado para execução no Dalvik , que é uma VM leve e otimizada, projetada especificamente para execução em ambientes móveis. Supostamente aumenta a vida da bateria e maximiza o uso eficiente dos recursos.

maple_shaft
fonte