<?xml version="1.0" encoding="UTF-8"?><!-- generator="wordpress/2.2.1" -->
<rss version="2.0" 
	xmlns:content="http://purl.org/rss/1.0/modules/content/">
<channel>
	<title>Comments on: What is the point of Java on the iPhone?</title>
	<link>http://huibert-aalbers.com/blog/archives/209</link>
	<description></description>
	<pubDate>Tue, 06 Jan 2009 15:07:40 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.2.1</generator>

	<item>
		<title>By: Huibert</title>
		<link>http://huibert-aalbers.com/blog/archives/209#comment-6064</link>
		<author>Huibert</author>
		<pubDate>Sun, 23 Mar 2008 04:53:02 +0000</pubDate>
		<guid>http://huibert-aalbers.com/blog/archives/209#comment-6064</guid>
		<description>&lt;p&gt;Jorge, you are right about Flash and Silverlight but Java can hardly be called propietary. What you probably mean is that Apple is betting on HTML5 for the presentation layer and is making no bets on the server side. If that was the case, you are absolutely right. However, in order to succeed, Apple needs to quickly  grow Safari's market share so that no business user can ignore that market and therefore chooses not to adopt non-standard technologies such as Silverlight or Air. That reasoning is probably behind Apple's recent decision to push Safari 3.1 to Windows iTunes users. &lt;/p&gt;
&lt;p&gt;Even so, there is a big Java market for web application developers and Apple has never been enthusiastic about that technology either. I am not really sure why. Apple could win many Java developers over by providing first class support for that programming language and they have clearly chosen not to do so by severely limiting their investment in that technology and by not participating actively in other community objects such as Eclipse or J2EE. Despite that decision, many Java developers use the Mac as their development platform (myself included). However, better Java support could woo many Windows an Linux developers to the Mac platform.&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>Jorge, you are right about Flash and Silverlight but Java can hardly be called propietary. What you probably mean is that Apple is betting on HTML5 for the presentation layer and is making no bets on the server side. If that was the case, you are absolutely right. However, in order to succeed, Apple needs to quickly  grow Safari&#8217;s market share so that no business user can ignore that market and therefore chooses not to adopt non-standard technologies such as Silverlight or Air. That reasoning is probably behind Apple&#8217;s recent decision to push Safari 3.1 to Windows iTunes users. </p>
<p>Even so, there is a big Java market for web application developers and Apple has never been enthusiastic about that technology either. I am not really sure why. Apple could win many Java developers over by providing first class support for that programming language and they have clearly chosen not to do so by severely limiting their investment in that technology and by not participating actively in other community objects such as Eclipse or J2EE. Despite that decision, many Java developers use the Mac as their development platform (myself included). However, better Java support could woo many Windows an Linux developers to the Mac platform.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jorge Chamorro</title>
		<link>http://huibert-aalbers.com/blog/archives/209#comment-6062</link>
		<author>Jorge Chamorro</author>
		<pubDate>Sat, 22 Mar 2008 14:22:21 +0000</pubDate>
		<guid>http://huibert-aalbers.com/blog/archives/209#comment-6062</guid>
		<description>The truth is that it's not in Apple's plans to promote any propietary web technology. Flash, SilverLight and Java therefore do not fit in their plans... As somebody elsewhere has already pointed out, the functionality incorporated in the last version of WebKit shows their standars-compliant non-propietary vision of how RIAs and/or the Web 2.0 should be deployed instead. A (silent) war is taking place on the internet front, altough most people seem not to be aware of it.</description>
		<content:encoded><![CDATA[<p>The truth is that it&#8217;s not in Apple&#8217;s plans to promote any propietary web technology. Flash, SilverLight and Java therefore do not fit in their plans&#8230; As somebody elsewhere has already pointed out, the functionality incorporated in the last version of WebKit shows their standars-compliant non-propietary vision of how RIAs and/or the Web 2.0 should be deployed instead. A (silent) war is taking place on the internet front, altough most people seem not to be aware of it.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: thunk</title>
		<link>http://huibert-aalbers.com/blog/archives/209#comment-6055</link>
		<author>thunk</author>
		<pubDate>Fri, 14 Mar 2008 05:50:55 +0000</pubDate>
		<guid>http://huibert-aalbers.com/blog/archives/209#comment-6055</guid>
		<description>@Umberto

On the contrary, the state of the art is moving toward more dynamic linkage due to the increased flexibility of the resulting software.  

Java has some excellent attributes, but there are some things for which it is not well suited.  In full-sized systems, making low latency, high performance applications (games, analytics, engineering) is almost never done with Java.  In a constrained system, performance issues are magnified, and Java is not going to make for the best solution in an even wider scope of applications. 

The reason, I think, is partly architecture, and partly the difficulty of making complete type-safety as efficient as partial type-safety: Objective-C can outperform Java in the all-important inner loop routines because Java requires more checks for its complete type-safety, and also the bottom-most parts of any Objective-C application can very easily be written in C or C++.   Some other architectural issues were identified and addressed by Microsoft in its take on Java, with some gains in performance, but type-safety keeps these sorts of languages from being top performers in many applications.</description>
		<content:encoded><![CDATA[<p>@Umberto</p>
<p>On the contrary, the state of the art is moving toward more dynamic linkage due to the increased flexibility of the resulting software.  </p>
<p>Java has some excellent attributes, but there are some things for which it is not well suited.  In full-sized systems, making low latency, high performance applications (games, analytics, engineering) is almost never done with Java.  In a constrained system, performance issues are magnified, and Java is not going to make for the best solution in an even wider scope of applications. </p>
<p>The reason, I think, is partly architecture, and partly the difficulty of making complete type-safety as efficient as partial type-safety: Objective-C can outperform Java in the all-important inner loop routines because Java requires more checks for its complete type-safety, and also the bottom-most parts of any Objective-C application can very easily be written in C or C++.   Some other architectural issues were identified and addressed by Microsoft in its take on Java, with some gains in performance, but type-safety keeps these sorts of languages from being top performers in many applications.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Huibert</title>
		<link>http://huibert-aalbers.com/blog/archives/209#comment-6054</link>
		<author>Huibert</author>
		<pubDate>Fri, 14 Mar 2008 01:34:22 +0000</pubDate>
		<guid>http://huibert-aalbers.com/blog/archives/209#comment-6054</guid>
		<description>Umberto, if you read my post carefully, you will see that I never say that Objective-C is superior as a language to Java. If I did I would be calling for someone to write an Objective-C app server and I don't. The problem is that Java doesn't offer a good way to write user interfaces that actually take advantage of the native GUI. That may not be very important on Linux or Solaris but it matters on the iPhone. Sure, I could use JNI to make native calls to the OS but that defeats most of the benefits of using Java.

I still love Java and think it is a great platform for the enterprise, I just don't want it on my iPhone to get the full UI experience Apple designed.</description>
		<content:encoded><![CDATA[<p>Umberto, if you read my post carefully, you will see that I never say that Objective-C is superior as a language to Java. If I did I would be calling for someone to write an Objective-C app server and I don&#8217;t. The problem is that Java doesn&#8217;t offer a good way to write user interfaces that actually take advantage of the native GUI. That may not be very important on Linux or Solaris but it matters on the iPhone. Sure, I could use JNI to make native calls to the OS but that defeats most of the benefits of using Java.</p>
<p>I still love Java and think it is a great platform for the enterprise, I just don&#8217;t want it on my iPhone to get the full UI experience Apple designed.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Desenvolvedor: &#8216;Java no iPhone? Pra quê?&#8217; &#124; AppleMania.info</title>
		<link>http://huibert-aalbers.com/blog/archives/209#comment-6053</link>
		<author>Desenvolvedor: &#8216;Java no iPhone? Pra quê?&#8217; &#124; AppleMania.info</author>
		<pubDate>Thu, 13 Mar 2008 22:20:14 +0000</pubDate>
		<guid>http://huibert-aalbers.com/blog/archives/209#comment-6053</guid>
		<description>[...] detalhes no artigo completo de Aalbers. No momento da finalização deste artigo nosso iTunes tocava: Hans Zimmer &#38; Lisa [...]</description>
		<content:encoded><![CDATA[<p>[&#8230;] detalhes no artigo completo de Aalbers. No momento da finalização deste artigo nosso iTunes tocava: Hans Zimmer &#38; Lisa [&#8230;]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Umberto</title>
		<link>http://huibert-aalbers.com/blog/archives/209#comment-6047</link>
		<author>Umberto</author>
		<pubDate>Thu, 13 Mar 2008 18:12:06 +0000</pubDate>
		<guid>http://huibert-aalbers.com/blog/archives/209#comment-6047</guid>
		<description>A modern Java VM is an extremely fast environment based on a very advanced set of libraries that handle everything from massive parallelism to hardware abstraction very well. It's probably faster than the Objective-C runtime on which the MacOS X is based. Objective-C has the worst of both worlds-- static compilation with dynamic linking. Since Java is dynamically compiled, it has runtime information available to the optimizer which means it can optimize the wazoo out of the code and cache the optimized version. Objective-C's extreme bent towards dynamicism means almost nothing can be inlined and everything turns into these huge stack calls in assembler. It was a great choice for the late 80's, but the state of the art has moved way beyond it by now.

The problem with a modern JDK's perceived performance is not so much its speed, but its size. Since they didn't break it down into little pieces that could be loaded individually, it takes potentially dozens of MB just to start executing line 1, so it takes even the tiniest applet many seconds to get going while flash starts almost immediately. Sun is fixing that in JDK6u10, due out in a few months. Java applets will start just as fast as Flash. And since Java is a very deep, well-architected system (unlike Flash) it will make a very compelling case for developers.

It's no coincidence that Java is everywhere from your Blu-Ray player to your set-top box to the servers running a website. The only place Java HASN'T gained traction is in front of users eyes. Personally I think that's because Swing made some bad choices and Sun hasn't prioritized the desktop.

Besides, the chipset Apple chose for the iPhone/Touch has some native support for Java. It's likely that Java will run faster on it than anything else you've tried.</description>
		<content:encoded><![CDATA[<p>A modern Java VM is an extremely fast environment based on a very advanced set of libraries that handle everything from massive parallelism to hardware abstraction very well. It&#8217;s probably faster than the Objective-C runtime on which the MacOS X is based. Objective-C has the worst of both worlds&#8211; static compilation with dynamic linking. Since Java is dynamically compiled, it has runtime information available to the optimizer which means it can optimize the wazoo out of the code and cache the optimized version. Objective-C&#8217;s extreme bent towards dynamicism means almost nothing can be inlined and everything turns into these huge stack calls in assembler. It was a great choice for the late 80&#8217;s, but the state of the art has moved way beyond it by now.</p>
<p>The problem with a modern JDK&#8217;s perceived performance is not so much its speed, but its size. Since they didn&#8217;t break it down into little pieces that could be loaded individually, it takes potentially dozens of MB just to start executing line 1, so it takes even the tiniest applet many seconds to get going while flash starts almost immediately. Sun is fixing that in JDK6u10, due out in a few months. Java applets will start just as fast as Flash. And since Java is a very deep, well-architected system (unlike Flash) it will make a very compelling case for developers.</p>
<p>It&#8217;s no coincidence that Java is everywhere from your Blu-Ray player to your set-top box to the servers running a website. The only place Java HASN&#8217;T gained traction is in front of users eyes. Personally I think that&#8217;s because Swing made some bad choices and Sun hasn&#8217;t prioritized the desktop.</p>
<p>Besides, the chipset Apple chose for the iPhone/Touch has some native support for Java. It&#8217;s likely that Java will run faster on it than anything else you&#8217;ve tried.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Huibert</title>
		<link>http://huibert-aalbers.com/blog/archives/209#comment-6043</link>
		<author>Huibert</author>
		<pubDate>Thu, 13 Mar 2008 18:09:23 +0000</pubDate>
		<guid>http://huibert-aalbers.com/blog/archives/209#comment-6043</guid>
		<description>Steve, I am not sure that Sun would agree with you. They would argue that Java was designed to give customers choice over their favorite OS or handset. In practice though, you are right because Sun had to compromise too much in order to achieve portability on the client side.

On the server side the story is quite different. Java customers have benefitted from increased competition and innovation among hardware and software manufacturers.</description>
		<content:encoded><![CDATA[<p>Steve, I am not sure that Sun would agree with you. They would argue that Java was designed to give customers choice over their favorite OS or handset. In practice though, you are right because Sun had to compromise too much in order to achieve portability on the client side.</p>
<p>On the server side the story is quite different. Java customers have benefitted from increased competition and innovation among hardware and software manufacturers.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Steve Moore</title>
		<link>http://huibert-aalbers.com/blog/archives/209#comment-6042</link>
		<author>Steve Moore</author>
		<pubDate>Thu, 13 Mar 2008 17:06:39 +0000</pubDate>
		<guid>http://huibert-aalbers.com/blog/archives/209#comment-6042</guid>
		<description>Great post.  am I right that the Java side of development is more engineering focused than customer focused?  Customer's don't care how easy it is to move an application from one device to another, they just want it to work well and fit everything else on their system.</description>
		<content:encoded><![CDATA[<p>Great post.  am I right that the Java side of development is more engineering focused than customer focused?  Customer&#8217;s don&#8217;t care how easy it is to move an application from one device to another, they just want it to work well and fit everything else on their system.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Java on the iPhone &#171; Ramblebot</title>
		<link>http://huibert-aalbers.com/blog/archives/209#comment-6040</link>
		<author>Java on the iPhone &#171; Ramblebot</author>
		<pubDate>Thu, 13 Mar 2008 14:36:19 +0000</pubDate>
		<guid>http://huibert-aalbers.com/blog/archives/209#comment-6040</guid>
		<description>[...] on the&#160;iPhone Posted by Chris Gervais under iPhone &#124; Tags: iphone java who-cares &#124; &#160;  What&#8217;s the point of Java on the iPhone? Great question. I&#8217;d put the question about Flash in the same category. The category is: [...]</description>
		<content:encoded><![CDATA[<p>[&#8230;] on the&nbsp;iPhone Posted by Chris Gervais under iPhone | Tags: iphone java who-cares | &nbsp;  What&#8217;s the point of Java on the iPhone? Great question. I&#8217;d put the question about Flash in the same category. The category is: [&#8230;]</p>
]]></content:encoded>
	</item>
</channel>
</rss>
