Problema 4: Diferentes linguagens de programação
Os colaboradores têm alguma flexibilidade na escolha de uma linguagem de programação para cada uma destas três plataformas, mas, em geral, cada plataforma está muito intimamente relacionada com uma linguagem de programação específica:
- Objective-C para o iPhone
- Java para dispositivos Android
- C # para Windows Phone
Estas três línguagens são primas, porque elas são todas descendentes de orientação a objetos de C, mas elas se tornaram primas bastante distantes.
Por estas razões, uma empresa que quer atingir múltiplas plataformas poderia muito bem empregar três equipes de programadores diferentes, cada equipe qualificada e especializada em uma linguagem e API particular.
Este problema da liguagem é particularmente desagradável, mas é o problema que é o maisdesafiador para resolver: Se você poderia usar a mesma linguagem de programação para estas três plataformas, você poderia, pelo menos, compartilhar algum código entre as plataformas. Este código compartilhado provavelmente não estaria envolvido com a interface de usuário porque cada plataforma tem diferentes APIs, mas pode muito bem ser o código do aplicativo que não toca a interface do usuário em tudo.
Uma linguagem única para estas três plataformas certamente seria conveniente. Mas qual a linguagem que seria isso?