Sun i Apple: bitwa o Javę na wyspie iPhone
W ciągu 24h od release’u iPhone SDK inżynierzy Sun’a zbadali platformę Apple aby stwierdzić, czy da się na niej zaimplementować Javę. Po burzliwej, całonocnej analizie stwierdzili, że jest to możliwe i postanowiono zaimplementować na iPhone technologię J2ME. O ile można się było spodziewać takiego obrotu spraw ze strony Sun’a, nie bardzo wiadomo jakie będzie stanowisko samego Apple.
Nie wiadomo dlaczego wybór Sun’a padł właśnie na Java ME. Powszechnie uważa się, że jest ona dość ograniczona i nie daje możliwości korzystania z nawet ułamka najciekawszej funkcjonalności oferowanej przez iPhone’y. Sun będzie musiał wprowadzić kilka dodatkowych API, aby developerzy mogli rozwinąć skrzydła, a aplikacje Javy na iPhone nie pozostawały w tyle za innymi technologiami. Dziwne jednak, że nie zdecydowali się wspierać od początku swojego Java FX Mobile, które ma szansę w przyszłości zastąpić J2ME. Ponadto, J2ME często krytykowana i ma kiepską opinię.
Apple w tej chwili w pełni kontroluje swoją platformę i całe środowisko skupione wokół iPhone’a. SDK jest dostępne w tej chwili tylko na Mac OS X, więc aby tworzyć aplikacje na ten telefon, trzeba mieć Mac’a. Ruch ten spowodowany jest chęcią jego popularyzacji. Ponadto, użytkownicy w tej chwili mogą pobierać i instalować aplikacje jedynie ze specjalnego sklepu. Pozwala to Apple’owi kontrolować jakie aplikacje są dostępne użytkownikom. Podnosi to poziom bezpieczeństwa tej technologii, ale jednocześnie znacznie ogranicza użytkowników i developerów.
Gdyby na iPhone udało się pisać, instalować i uruchamiać aplikacje napisane w Javie, Apple straciłby tą kontrolę. Programy można byłoby pisać używając konkurencyjnych wobec Apple rozwiązań, a także nie można byłoby kontrolować co instalują użytkownicy. Jeśli Apple pozwoli Sun’owi zaimplementować J2ME na iPhone, Apple może stracić. Warto zwrócić uwagę na fakt, że Apple’owi nie zależy na otwartości swojego rozwiązania.
W licencji iPhone SDK można przeczytać, iż zabronione jest tworzenie aplikacji korzystających z interpretowanych runtime’ów. Oznacza to, że programiści nie mogą portować technologii takich jak Python, Ruby czy .NET na iPhone’y. Klauzula ta nie znalazła się w licencji przypadkowo. Polityka Apple może nie być więc przychylna Sun’owi.