<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: The Frustrations of Java</title>
	<atom:link href="http://mobhappy.com/blog1/2006/04/26/the-frustrations-of-java/feed/" rel="self" type="application/rss+xml" />
	<link>http://mobhappy.com/blog1/2006/04/26/the-frustrations-of-java/</link>
	<description>Russell Buckley and Carlo Longino on mobile technology.</description>
	<lastBuildDate>Tue, 22 May 2012 09:13:00 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
	<item>
		<title>By: &#187; J2ME and the need for an effective IDE for handheld development - Momochicago.com</title>
		<link>http://mobhappy.com/blog1/2006/04/26/the-frustrations-of-java/comment-page-1/#comment-18500</link>
		<dc:creator>&#187; J2ME and the need for an effective IDE for handheld development - Momochicago.com</dc:creator>
		<pubDate>Tue, 18 Jul 2006 21:34:12 +0000</pubDate>
		<guid isPermaLink="false">http://mobhappy.com/blog1/2006/04/26/the-frustrations-of-java/#comment-18500</guid>
		<description>[...] Recently there has been a lot of noise on the mobile net about the inadequacies of Java as a development platform on handhelds. Russell, has a really great set of posts on precisely this subject and you should be reading MobHappy online to get sync&#8217;ed in on the debate. [...]</description>
		<content:encoded><![CDATA[<p>[...] Recently there has been a lot of noise on the mobile net about the inadequacies of Java as a development platform on handhelds. Russell, has a really great set of posts on precisely this subject and you should be reading MobHappy online to get sync&#8217;ed in on the debate. [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Porting Java Applications at MobHappy</title>
		<link>http://mobhappy.com/blog1/2006/04/26/the-frustrations-of-java/comment-page-1/#comment-18479</link>
		<dc:creator>Porting Java Applications at MobHappy</dc:creator>
		<pubDate>Tue, 18 Jul 2006 17:30:35 +0000</pubDate>
		<guid isPermaLink="false">http://mobhappy.com/blog1/2006/04/26/the-frustrations-of-java/#comment-18479</guid>
		<description>[...] A few months ago I wrote a piece about The Frustrations of Java, which you left a lot of comments about. My post was a rant about¬†what a bitch¬†Java Platform, Micro Edition (or J2ME as it used to be called) is to develop for, with a huge amount of work going into porting the application, once you&#8217;ve finished the initial build. In fact, I&#8217;d suggest that 20% of the work goes into the initial iteration of the code and 80% into the porting, which can be a shock for the uninitiated. [...]</description>
		<content:encoded><![CDATA[<p>[...] A few months ago I wrote a piece about The Frustrations of Java, which you left a lot of comments about. My post was a rant about¬†what a bitch¬†Java Platform, Micro Edition (or J2ME as it used to be called) is to develop for, with a huge amount of work going into porting the application, once you&#8217;ve finished the initial build. In fact, I&#8217;d suggest that 20% of the work goes into the initial iteration of the code and 80% into the porting, which can be a shock for the uninitiated. [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: SoonR Adds Mobile Browser-Based Skype Support &#8212; With Voice at MobHappy</title>
		<link>http://mobhappy.com/blog1/2006/04/26/the-frustrations-of-java/comment-page-1/#comment-4591</link>
		<dc:creator>SoonR Adds Mobile Browser-Based Skype Support &#8212; With Voice at MobHappy</dc:creator>
		<pubDate>Thu, 04 May 2006 14:13:48 +0000</pubDate>
		<guid isPermaLink="false">http://mobhappy.com/blog1/2006/04/26/the-frustrations-of-java/#comment-4591</guid>
		<description>[...] There are other companies working on solutions to do much the same thing; what&#8217;s cool about SoonR is that it does this all through a browser, opening it up to so many more devices than those relying on standalone applications (nicely illustrating one of Russell&#8217;s points about Java). SoonR&#8217;s also got some other interesting plans for its business model, adding premium services (like the ability to have your data persist on its services so you can access it when your PC&#8217;s offline), as well as licensing their service to operators, both mobile and wired broadband. [...]</description>
		<content:encoded><![CDATA[<p>[...] There are other companies working on solutions to do much the same thing; what&#8217;s cool about SoonR is that it does this all through a browser, opening it up to so many more devices than those relying on standalone applications (nicely illustrating one of Russell&#8217;s points about Java). SoonR&#8217;s also got some other interesting plans for its business model, adding premium services (like the ability to have your data persist on its services so you can access it when your PC&#8217;s offline), as well as licensing their service to operators, both mobile and wired broadband. [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Allen Lau</title>
		<link>http://mobhappy.com/blog1/2006/04/26/the-frustrations-of-java/comment-page-1/#comment-4575</link>
		<dc:creator>Allen Lau</dc:creator>
		<pubDate>Wed, 03 May 2006 19:37:41 +0000</pubDate>
		<guid isPermaLink="false">http://mobhappy.com/blog1/2006/04/26/the-frustrations-of-java/#comment-4575</guid>
		<description>I agree with Matt.  Fragmentation in mobiles has not much to do with the underlying technology in general.  While admittedly Java ME is not perfect, similar issues exist in other environments such as BREW and WAP.  Unlike desktop PCs, mobile phones are personalized devices.  For all the good reasons, there is a need for handset manufacturers to segment the market with different screen sizes, performance, memory, sound systems, form factors, keypad layouts etc. etc.  All these contribute to fragmentation of the runtime environment.  On top of that, there are also operator specific APIs (e.g. Sprint‚Äôs Game Lobby) and network related issues (e.g. certain ports are blocked on some networks ‚Äì developers who had deployed network apps for multiple operators must have experienced this).  All these make mobile application development a dramatically different exercise than in other environments.  We should accept the fact that adaptation and optimization is a necessary step in mobile application development.  It is very similar to console game development ‚Äì publishers and developers have long accepted the fact that making sure the game will work on different platforms (PS, Xbox and Nintendo) is part of the cost of doing business.  The difference here is that the number of mobile platforms to deal with is dramatically larger while the delta between the platforms is smaller (compare to the relative difference between PS and Xbox) but fundamentally the challenges are quite similar.

It is important for me point out that these new challenges require new techniques/technologies/solution to combat.  For example, while using pre-processor can help maintain a single code base, it usually makes the source code unreadable and not maintainable if the number of devices is more than a handful.  Also, it might not be very scalable as more people are added to the team.  Using more modern techniques such as Aspect Oriented Programming (AOP) can help to speed up the overall development process and make it much less painful.  AOP helps modularizing and reusing code snippet for device/operator specific issues or other optimizations without reverting to the lowest common denominator approach.  There are many other mobile domain specific software/solutions in market to help tackle the mobile deployment challenges.

Ultimately it all comes down to finding the right solution to the problems.  With the right solution, these problems are not insurmountable.

Allen</description>
		<content:encoded><![CDATA[<p>I agree with Matt.  Fragmentation in mobiles has not much to do with the underlying technology in general.  While admittedly Java ME is not perfect, similar issues exist in other environments such as BREW and WAP.  Unlike desktop PCs, mobile phones are personalized devices.  For all the good reasons, there is a need for handset manufacturers to segment the market with different screen sizes, performance, memory, sound systems, form factors, keypad layouts etc. etc.  All these contribute to fragmentation of the runtime environment.  On top of that, there are also operator specific APIs (e.g. Sprint‚Äôs Game Lobby) and network related issues (e.g. certain ports are blocked on some networks ‚Äì developers who had deployed network apps for multiple operators must have experienced this).  All these make mobile application development a dramatically different exercise than in other environments.  We should accept the fact that adaptation and optimization is a necessary step in mobile application development.  It is very similar to console game development ‚Äì publishers and developers have long accepted the fact that making sure the game will work on different platforms (PS, Xbox and Nintendo) is part of the cost of doing business.  The difference here is that the number of mobile platforms to deal with is dramatically larger while the delta between the platforms is smaller (compare to the relative difference between PS and Xbox) but fundamentally the challenges are quite similar.</p>
<p>It is important for me point out that these new challenges require new techniques/technologies/solution to combat.  For example, while using pre-processor can help maintain a single code base, it usually makes the source code unreadable and not maintainable if the number of devices is more than a handful.  Also, it might not be very scalable as more people are added to the team.  Using more modern techniques such as Aspect Oriented Programming (AOP) can help to speed up the overall development process and make it much less painful.  AOP helps modularizing and reusing code snippet for device/operator specific issues or other optimizations without reverting to the lowest common denominator approach.  There are many other mobile domain specific software/solutions in market to help tackle the mobile deployment challenges.</p>
<p>Ultimately it all comes down to finding the right solution to the problems.  With the right solution, these problems are not insurmountable.</p>
<p>Allen</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Java Magazines at MobHappy</title>
		<link>http://mobhappy.com/blog1/2006/04/26/the-frustrations-of-java/comment-page-1/#comment-4570</link>
		<dc:creator>Java Magazines at MobHappy</dc:creator>
		<pubDate>Wed, 03 May 2006 16:42:26 +0000</pubDate>
		<guid isPermaLink="false">http://mobhappy.com/blog1/2006/04/26/the-frustrations-of-java/#comment-4570</guid>
		<description>[...] Last week I wrote a somewhat controversial post about developing Java applications for mobile. Some people seemed to think that I was dissing Java per se, which isn&#8217;t the case at all - sometimes only Java cuts the mustard and here&#8217;s a nice example. [...]</description>
		<content:encoded><![CDATA[<p>[...] Last week I wrote a somewhat controversial post about developing Java applications for mobile. Some people seemed to think that I was dissing Java per se, which isn&#8217;t the case at all &#8211; sometimes only Java cuts the mustard and here&#8217;s a nice example. [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Charlie Sierra</title>
		<link>http://mobhappy.com/blog1/2006/04/26/the-frustrations-of-java/comment-page-1/#comment-4541</link>
		<dc:creator>Charlie Sierra</dc:creator>
		<pubDate>Tue, 02 May 2006 18:30:49 +0000</pubDate>
		<guid isPermaLink="false">http://mobhappy.com/blog1/2006/04/26/the-frustrations-of-java/#comment-4541</guid>
		<description>I like Peter&#039;s idea because it&#039;s not 100% theoretical, but has aspects of practical reality. It seesm to be the best interim solution to a very difficult issue insofar as J2ME is concerned. I&#039;d like to see a few proposals of how this can be done...the J2ME execlet framework, I mean.


best regards,

Charlie</description>
		<content:encoded><![CDATA[<p>I like Peter&#8217;s idea because it&#8217;s not 100% theoretical, but has aspects of practical reality. It seesm to be the best interim solution to a very difficult issue insofar as J2ME is concerned. I&#8217;d like to see a few proposals of how this can be done&#8230;the J2ME execlet framework, I mean.</p>
<p>best regards,</p>
<p>Charlie</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Matt Volpi</title>
		<link>http://mobhappy.com/blog1/2006/04/26/the-frustrations-of-java/comment-page-1/#comment-4540</link>
		<dc:creator>Matt Volpi</dc:creator>
		<pubDate>Tue, 02 May 2006 18:26:40 +0000</pubDate>
		<guid isPermaLink="false">http://mobhappy.com/blog1/2006/04/26/the-frustrations-of-java/#comment-4540</guid>
		<description>While I will not claim that Java ME does not have its problems, I think the 20/80 statement is really inaccurate if you&#039;re using an appropriate programming paradigm and tools. Your application&#039;s business logic doesn&#039;t need to change from one device to the next, and that should be where most of your work and innovation is taking place.

Solutions that rely on preprocessing (such as NetBeans Mobility Pack: http://www.netbeans.org/kb/50/preprocessor-syntax.html) also simplify the code porting and management issues by letting one source serve all of the different target devices and only if/then-ing on the portions of code that really require it.

While using the latest and greatest APIs is very cool and leads to compelling apps, you can&#039;t reasonably expect all of the devices out there to support those features. So, you can either comment those out or just target your app at a smaller selection of the devices on the market.

Fragmentation in mobiles has nothing to do with technology most of the time, it has to do with marketing devices to different consumer niches. An OEM such as Nokia doesn&#039;t come out with 20-some devices per year because they have nothing better to do - they identify different segment requirements (or operators define them for them) and produce devices that appeal to consumers. Regardless of what application technology you are using (native, Java, browser, Flash), those physical and sw differences will have an impact. While browsers may have the smallest deltas, there are plenty of differences between them as well, especially in the mobile context.

Ultimately, it&#039;s about taking a &quot;lowest-common-denomitator&quot; approach and then optimizing on the aspects and devices that matter most. That will be the case regardlesss of what language, platform or runtime is in question.</description>
		<content:encoded><![CDATA[<p>While I will not claim that Java ME does not have its problems, I think the 20/80 statement is really inaccurate if you&#8217;re using an appropriate programming paradigm and tools. Your application&#8217;s business logic doesn&#8217;t need to change from one device to the next, and that should be where most of your work and innovation is taking place.</p>
<p>Solutions that rely on preprocessing (such as NetBeans Mobility Pack: <a href="http://www.netbeans.org/kb/50/preprocessor-syntax.html" rel="nofollow">http://www.netbeans.org/kb/50/preprocessor-syntax.html</a>) also simplify the code porting and management issues by letting one source serve all of the different target devices and only if/then-ing on the portions of code that really require it.</p>
<p>While using the latest and greatest APIs is very cool and leads to compelling apps, you can&#8217;t reasonably expect all of the devices out there to support those features. So, you can either comment those out or just target your app at a smaller selection of the devices on the market.</p>
<p>Fragmentation in mobiles has nothing to do with technology most of the time, it has to do with marketing devices to different consumer niches. An OEM such as Nokia doesn&#8217;t come out with 20-some devices per year because they have nothing better to do &#8211; they identify different segment requirements (or operators define them for them) and produce devices that appeal to consumers. Regardless of what application technology you are using (native, Java, browser, Flash), those physical and sw differences will have an impact. While browsers may have the smallest deltas, there are plenty of differences between them as well, especially in the mobile context.</p>
<p>Ultimately, it&#8217;s about taking a &#8220;lowest-common-denomitator&#8221; approach and then optimizing on the aspects and devices that matter most. That will be the case regardlesss of what language, platform or runtime is in question.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: alan jones</title>
		<link>http://mobhappy.com/blog1/2006/04/26/the-frustrations-of-java/comment-page-1/#comment-4512</link>
		<dc:creator>alan jones</dc:creator>
		<pubDate>Mon, 01 May 2006 14:26:17 +0000</pubDate>
		<guid isPermaLink="false">http://mobhappy.com/blog1/2006/04/26/the-frustrations-of-java/#comment-4512</guid>
		<description>Rafe, your optimism is great to see, but while developing an app only for 3 UIQ phones or only S60 phones helps you develop applications quickly, it also means unless you can get a distribution deal with a handset manufacturer your app is never going to make money. No PC software vendor would ever dream of trying to break even on a Windows app that only runs on three models of desktop from one manufacturer.

The problem with developing an app specifically for a handset deal is you inevitably end up designing with the wealthy patron in mind, not the actual consumer - hence all the lame apps that showcase some whacky here-today-gone-tomorrow feature in a particular series of handset. When that handset is off retailer&#039;s shelves, there goes your app too.</description>
		<content:encoded><![CDATA[<p>Rafe, your optimism is great to see, but while developing an app only for 3 UIQ phones or only S60 phones helps you develop applications quickly, it also means unless you can get a distribution deal with a handset manufacturer your app is never going to make money. No PC software vendor would ever dream of trying to break even on a Windows app that only runs on three models of desktop from one manufacturer.</p>
<p>The problem with developing an app specifically for a handset deal is you inevitably end up designing with the wealthy patron in mind, not the actual consumer &#8211; hence all the lame apps that showcase some whacky here-today-gone-tomorrow feature in a particular series of handset. When that handset is off retailer&#8217;s shelves, there goes your app too.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Cedric NICOLAS</title>
		<link>http://mobhappy.com/blog1/2006/04/26/the-frustrations-of-java/comment-page-1/#comment-4476</link>
		<dc:creator>Cedric NICOLAS</dc:creator>
		<pubDate>Sat, 29 Apr 2006 15:19:12 +0000</pubDate>
		<guid isPermaLink="false">http://mobhappy.com/blog1/2006/04/26/the-frustrations-of-java/#comment-4476</guid>
		<description>Hi all,

I&#039;m in charge of handsets design and development in a European mobile operator which operates i-mode service (1.5 Millions i-mode subscribers for now)

As you may know i-mode uses a different flavor of Java which is call DoJa. We have now an experience as operator for 3 years with DoJa, and we reached to get 400 different contents on our official i-mode portal, and much more in the independant world. All those contents are running on all the i-mode phones we have launched. This is a huge difference with MIDP, where operators have to indicate to their customers which content runs on which phone.

Now we do understand much more why DoJa is far superior to MIDP : software porting from one DoJa phone to another DoJa phone is an average 5 times less work compare to the same task for MIDP. There are two main reasons to this difference :

1) NTT Docomo&#039;s specification for DoJa, given to handsets vendors, is much more precise in terms of behavior for each described API. There is no optional features as we can find everywhere in MIDP specs. One good example is application size limit that doesn&#039;t exist in MIDP. (DoJa 1.5 is functionnally slight superior to MIDP 1.0. Doja 2.5 is functionnaly equivalent to MIDP2.0   MMAPI   Messaging API)

2) Docomo ensure itself DoJa conformance for each new handsets. Those conformance tests are extremely complete : more than 8000 tests cases for DoJa 1.5 and 14000 for DoJa 2.5. This take 3 weeks to be done before handset being approved by Docomo. Including is also a performance benchmark, and we now that it is also often difficult to port software when there are huge performance gaps between phones.

Yes the effort required by handsets vendors is higher, but the benefit for content developer is huge : each API is guaranteed to have one well defined behavior. Adapting and porting then is mostly reduced to screen size differences.

With this feedback, we can deduce why MIDP is an hassle for content developers : Sun should have put much stricter certification procedure, and should have asked to specification guys not only to write programmers documentation, but detailed handset implementation documentation and get rid of all optional features.

Regards,</description>
		<content:encoded><![CDATA[<p>Hi all,</p>
<p>I&#8217;m in charge of handsets design and development in a European mobile operator which operates i-mode service (1.5 Millions i-mode subscribers for now)</p>
<p>As you may know i-mode uses a different flavor of Java which is call DoJa. We have now an experience as operator for 3 years with DoJa, and we reached to get 400 different contents on our official i-mode portal, and much more in the independant world. All those contents are running on all the i-mode phones we have launched. This is a huge difference with MIDP, where operators have to indicate to their customers which content runs on which phone.</p>
<p>Now we do understand much more why DoJa is far superior to MIDP : software porting from one DoJa phone to another DoJa phone is an average 5 times less work compare to the same task for MIDP. There are two main reasons to this difference :</p>
<p>1) NTT Docomo&#8217;s specification for DoJa, given to handsets vendors, is much more precise in terms of behavior for each described API. There is no optional features as we can find everywhere in MIDP specs. One good example is application size limit that doesn&#8217;t exist in MIDP. (DoJa 1.5 is functionnally slight superior to MIDP 1.0. Doja 2.5 is functionnaly equivalent to MIDP2.0   MMAPI   Messaging API)</p>
<p>2) Docomo ensure itself DoJa conformance for each new handsets. Those conformance tests are extremely complete : more than 8000 tests cases for DoJa 1.5 and 14000 for DoJa 2.5. This take 3 weeks to be done before handset being approved by Docomo. Including is also a performance benchmark, and we now that it is also often difficult to port software when there are huge performance gaps between phones.</p>
<p>Yes the effort required by handsets vendors is higher, but the benefit for content developer is huge : each API is guaranteed to have one well defined behavior. Adapting and porting then is mostly reduced to screen size differences.</p>
<p>With this feedback, we can deduce why MIDP is an hassle for content developers : Sun should have put much stricter certification procedure, and should have asked to specification guys not only to write programmers documentation, but detailed handset implementation documentation and get rid of all optional features.</p>
<p>Regards,</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Rafe</title>
		<link>http://mobhappy.com/blog1/2006/04/26/the-frustrations-of-java/comment-page-1/#comment-4475</link>
		<dc:creator>Rafe</dc:creator>
		<pubDate>Sat, 29 Apr 2006 09:00:45 +0000</pubDate>
		<guid isPermaLink="false">http://mobhappy.com/blog1/2006/04/26/the-frustrations-of-java/#comment-4475</guid>
		<description>I&#039;m not that knowledgeable in this area so this has been a very informative thread. My overiding impression was that the big issue was incompatible implementations / problems with different hardware specifications meaning that the write once idea doesn&#039;t exist. On top of that differential implementations of JSRs just add to the problem. I&#039;m actually of the opinion that JME works best of mobile platforms of one sort or another. A good example of this is UIQ 3 where the rich Java implementation (JSRs etc.) mean it quite powerful. That and the fact it is standardised across the platform (only 3 phones at the moment, but that may grow). The Java development tools for UIQ are probably better than te native ones (especially for RAD). S60 i somehwat similar in that you&#039;ve got a big range of phone that are standardised against a platform (although even here it&#039;s not perfect). I think there&#039;s a lot to be said for mobile platforms based phones with JME in the future. Of course that doesn&#039;t solve the problem now...</description>
		<content:encoded><![CDATA[<p>I&#8217;m not that knowledgeable in this area so this has been a very informative thread. My overiding impression was that the big issue was incompatible implementations / problems with different hardware specifications meaning that the write once idea doesn&#8217;t exist. On top of that differential implementations of JSRs just add to the problem. I&#8217;m actually of the opinion that JME works best of mobile platforms of one sort or another. A good example of this is UIQ 3 where the rich Java implementation (JSRs etc.) mean it quite powerful. That and the fact it is standardised across the platform (only 3 phones at the moment, but that may grow). The Java development tools for UIQ are probably better than te native ones (especially for RAD). S60 i somehwat similar in that you&#8217;ve got a big range of phone that are standardised against a platform (although even here it&#8217;s not perfect). I think there&#8217;s a lot to be said for mobile platforms based phones with JME in the future. Of course that doesn&#8217;t solve the problem now&#8230;</p>
]]></content:encoded>
	</item>
</channel>
</rss>

