Quais as razões para as restrições do iPhone SDK
12/03/08 10:41 Assunto : Negócios
Acho que nunca o lançamento de um
SDK foi tão badalado pela mídia como o do iPhone SDK.
Mas também acho que nenhum SDK foi tão criticado como esse.

Quais são as razões para a Apple ser tão restritiva?
Mas também acho que nenhum SDK foi tão criticado como esse.

Quais são as razões para a Apple ser tão restritiva?
Depois de um pequeno momento de namoro
começaram as primeiras críticas:
- Só existe para Mac OS X!
- A única linguagem de programação é Objective-C!
- Só a Apple pode distribuir aplicações para o iPhone! E ela pode barrar a distribuição de algumas aplicações!
As criticas técnicas tem algum fundamento, mas alguém pode me dizer onde está o SDK do Windows Mobile para Mac ou Linux? Não existe, e a razão é simples o fornecedor da plataforma constrói o SDK onde sente mais confiança.
Sobre o Objective-C acho que a Apple também está liberando um SDK para uma linguagem de sua confiança, e se você analisar a evolução do Xcode vai ver que no início ele só aceitava Objective-C e Java, mas hoje você pode programar também em Python e Ruby.
O último ponto o de comercialização e distribuição é extremamente polemico, ao mesmo tempo que a Apple facilita a distribuição e comercialização de aplicações, se dá o direito de barrar qualquer aplicação que ela não queira na plataforma. Nesse momento só podíamos contar com a boa vontade da Apple.
Essas foram as críticas iniciais, após a leitura da documentação descobriu-se que:
1 - A aplicação só pode utilizar as APIs que estão inclusas no SDK.
2 - Uma aplicação não pode instalar ou disparar código executável.
3 - Nenhum código interpretável pode ser rodado pela aplicação, com exceção do que já é disponibilizado pela Apple.
4 - Uma aplicação de terceiros não pode rodar em background.
As duas últimas podem ser justificadas por uma questão de desempenho, mas em especial a última restrição impõe que sua aplicação tenha controles extremamente complexos, o que leva a somente programadores experientes conseguirem programar algo que seja usável no iPhone. Será que isso é proposital? Será que a Apple está menos interessada na quantidade, do que na qualidade do que será disponível par o iPhone? Eu acho que esta é uma boa resposta para essas limitações.
Bem, e aí me perguntam. E as duas primeiras? Como se justifica a não utilização de APIs alienígenas e a não permissão de rodar outro código executável ou interpretável?
A resposta a isso vêm de uma frase que a apple utilizava no seus primórdios.
SOFTWARE SELLS SYSTEMS. Em português, SOFTWARE VENDE SISTEMAS.
Para entender melhor vamos abrir um parêntesis e falar um pouco de história.
(
Para quem não sabe a base do pacote office da Microsoft veio toda da plataforma Apple, as primeiras versões do MS Word foram desenvolvidas ainda na época do Apple II, o MS Excel e o MS Powerpoint foram desenvolvidos para a plataforma Macintosh.
A Microsoft que já detinha praticamente o monopólio dos SOs para PC com o MS DOS portou logo o Word para a plataforma PC. Com o Windows 3.0 vieram os dois pacotes que faltavam Excel e Powerpoint. Isso deu o empuxo necessário para a popularização do ambiente Windows e consequentemente consolidou o domínio de SOs da Microsoft para PCs.
)
Agora vem a pergunta. Se a Apple não tivesse aberto a plataforma Macintosh para outros desenvolvedores, ou tivesse um controle maior sobre o que era desenvolvido o cenário hoje seria diferente? Possivelmente sim. Quem iria utilizar Windows sem software que justificasse seu uso?
A meu ver a Apple olhou o passado e está tentando evitar que isso se repita com o iPhone. Sendo assim, as restrições existentes são todas para forçar que as aplicações do iPhone sejam únicas para a plataforma e de alta qualidade, o que justifica todas as restrições postas.
O que vocês acham destes pontos? Acertei em algo? Mais importante, onde errei?
- Só existe para Mac OS X!
- A única linguagem de programação é Objective-C!
- Só a Apple pode distribuir aplicações para o iPhone! E ela pode barrar a distribuição de algumas aplicações!
As criticas técnicas tem algum fundamento, mas alguém pode me dizer onde está o SDK do Windows Mobile para Mac ou Linux? Não existe, e a razão é simples o fornecedor da plataforma constrói o SDK onde sente mais confiança.
Sobre o Objective-C acho que a Apple também está liberando um SDK para uma linguagem de sua confiança, e se você analisar a evolução do Xcode vai ver que no início ele só aceitava Objective-C e Java, mas hoje você pode programar também em Python e Ruby.
O último ponto o de comercialização e distribuição é extremamente polemico, ao mesmo tempo que a Apple facilita a distribuição e comercialização de aplicações, se dá o direito de barrar qualquer aplicação que ela não queira na plataforma. Nesse momento só podíamos contar com a boa vontade da Apple.
Essas foram as críticas iniciais, após a leitura da documentação descobriu-se que:
1 - A aplicação só pode utilizar as APIs que estão inclusas no SDK.
2 - Uma aplicação não pode instalar ou disparar código executável.
3 - Nenhum código interpretável pode ser rodado pela aplicação, com exceção do que já é disponibilizado pela Apple.
4 - Uma aplicação de terceiros não pode rodar em background.
As duas últimas podem ser justificadas por uma questão de desempenho, mas em especial a última restrição impõe que sua aplicação tenha controles extremamente complexos, o que leva a somente programadores experientes conseguirem programar algo que seja usável no iPhone. Será que isso é proposital? Será que a Apple está menos interessada na quantidade, do que na qualidade do que será disponível par o iPhone? Eu acho que esta é uma boa resposta para essas limitações.
Bem, e aí me perguntam. E as duas primeiras? Como se justifica a não utilização de APIs alienígenas e a não permissão de rodar outro código executável ou interpretável?
A resposta a isso vêm de uma frase que a apple utilizava no seus primórdios.
SOFTWARE SELLS SYSTEMS. Em português, SOFTWARE VENDE SISTEMAS.
Para entender melhor vamos abrir um parêntesis e falar um pouco de história.
(
Para quem não sabe a base do pacote office da Microsoft veio toda da plataforma Apple, as primeiras versões do MS Word foram desenvolvidas ainda na época do Apple II, o MS Excel e o MS Powerpoint foram desenvolvidos para a plataforma Macintosh.
A Microsoft que já detinha praticamente o monopólio dos SOs para PC com o MS DOS portou logo o Word para a plataforma PC. Com o Windows 3.0 vieram os dois pacotes que faltavam Excel e Powerpoint. Isso deu o empuxo necessário para a popularização do ambiente Windows e consequentemente consolidou o domínio de SOs da Microsoft para PCs.
)
Agora vem a pergunta. Se a Apple não tivesse aberto a plataforma Macintosh para outros desenvolvedores, ou tivesse um controle maior sobre o que era desenvolvido o cenário hoje seria diferente? Possivelmente sim. Quem iria utilizar Windows sem software que justificasse seu uso?
A meu ver a Apple olhou o passado e está tentando evitar que isso se repita com o iPhone. Sendo assim, as restrições existentes são todas para forçar que as aplicações do iPhone sejam únicas para a plataforma e de alta qualidade, o que justifica todas as restrições postas.
O que vocês acham destes pontos? Acertei em algo? Mais importante, onde errei?
