<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	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/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Ovidiu Iliescu * Software Developer &#187; Opinions</title>
	<atom:link href="http://www.ovidiuiliescu.com/category/opinions/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.ovidiuiliescu.com</link>
	<description>Quality Software Development Services</description>
	<lastBuildDate>Tue, 10 May 2011 20:18:21 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>The imminent death of J2ME ?</title>
		<link>http://www.ovidiuiliescu.com/2009/09/27/the-imminent-death-of-j2me/</link>
		<comments>http://www.ovidiuiliescu.com/2009/09/27/the-imminent-death-of-j2me/#comments</comments>
		<pubDate>Sun, 27 Sep 2009 17:34:10 +0000</pubDate>
		<dc:creator>ovidiu</dc:creator>
				<category><![CDATA[Opinions]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[blackberry]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[j2me]]></category>
		<category><![CDATA[symbian]]></category>
		<category><![CDATA[windows mobile]]></category>

		<guid isPermaLink="false">http://www.ovidiuiliescu.com/?p=211</guid>
		<description><![CDATA[The iPhone, Android, Blackberry, Symbian and Windows Mobile platforms seem to be all the rage these days. Everyone&#8217;s talking about them, everybody&#8217;s using them and everybody&#8217;s praising their state-of-the art capabilities. In fact, some even believe that they will bring with them the death of J2ME, citing the platform&#8217;s age, speed and primitive API as [...]]]></description>
			<content:encoded><![CDATA[<p>The iPhone, Android, Blackberry, Symbian and Windows Mobile platforms seem to be all the rage these days. Everyone&#8217;s talking about them, everybody&#8217;s using them and everybody&#8217;s praising their state-of-the art capabilities.</p>
<p>In fact, some even believe that they will bring with them the death of J2ME, citing the platform&#8217;s age, speed and primitive API as its mortal weaknesses. While there is some truth to these claims (J2ME is pretty old, and more modern platforms do have some pretty cool applications running on them), make no mistake about it: J2ME is not going anywhere anytime soon.</p>
<p>Find out why after the jump.</p>
<p><span id="more-211"></span> I must admit, when the iPhone was first launched I got a little bit concerned about the future of J2ME. But, as I spent more time thinking about the matter, my fears pretty much vanished. In fact, in the years since the iPhone was launched, I was unable to find a <em>single</em> solid  reason for which J2ME might become extinct. For your entertainment, here is a list of some of the most commonly cited causes for J2ME&#8217;s imminent death, along with an explanation of why they&#8217;re wrong (for simplicity&#8217;s sake, I will refer to the iPhone, Android, Blackberry, Windows Mobile and Symbian platforms collectively and generically as &#8220;the iPhone&#8221;) :</p>
<ul>
<li>&#8220;<strong>J2ME is slow when compared to the iPhone</strong>&#8221; &#8211; J2ME is only a standard. It can&#8217;t be slow,  and it can&#8217;t be fast. What can be slow (or fast) is the <em>hardware</em> running J2ME.  Sure, a  $600 iPhone is faster than a $100 J2ME-enabled regular phone, but that&#8217;s not really a fair comparison. The fastest J2ME enabled devices of today can provide performance levels on par with those offered by the iPhone, at a very competitive price.</li>
<li>&#8220;<strong>The J2ME API is not nearly as powerful as the iPhone&#8217;s</strong>&#8221; &#8211; This is extremely false. In the beginning J2ME <em>was </em>limited (it was developed a decade ago for the devices of the day), but over the years it has been extended and upgraded to keep up with the times.  Sure, at first we didn&#8217;t even have floating-point support, but things have changed and today stuff like <a title="3d support" href="http://developers.sun.com/mobility/apis/articles/3dgraphics/">3D graphics</a>, <a href="http://developer.sonyericsson.com/site/global/techsupport/tipstrickscode/java/p_jsr75_accessing_pim_fileconnectionapi.jsp">integration with the phone&#8217;s contacts, calendar and filesystem</a>, <a href="http://developers.sun.com/mobility/midp/articles/mmapioverview/">multimedia</a> and <a href="http://developers.sun.com/mobility/midp/articles/bluetooth2/">bluetooth support</a> (take that, iPhone!) are commonplace features. More advanced features, like <a href="http://developers.sun.com/mobility/apis/articles/location/">GPS</a> and touchscreen support (available since the MIDP 1.0 days !), are quickly gaining ground.</li>
<li><strong>&#8220;J2ME suffers badly from device fragmentation issues&#8221; </strong>- this is pretty much the only legitimate claim on the list. However, good coding practices, attention to detail and tools like <a href="http://www.enough.de/">J2ME Polish</a> can pretty much take care of this.  At the same time, if you try to run a state of the art J2ME application on a 5 year old device and find that it doesn&#8217;t work  because the phone does not have enough resources or it is missing some API&#8217;s, you really can&#8217;t blame that on J2ME. Question: do you think that an application for the iPhone 6.0 will work on today&#8217;s iPhones ? Me neither.</li>
<li><strong>&#8220;J2ME applications can&#8217;t match the look and feel of the iPhone&#8221; </strong>- One word : <a href="http://www.tricastmedia.com/twuik/">TWUIK</a> .</li>
<li><strong>&#8220;The iPhone has an ever-growing userbase and will eventually kill  J2ME&#8221; -</strong> As iPhones get cheaper, so do J2ME phones. As the iPhone gets more powerful, so do J2ME phones (for example, the next generation of J2ME devices, those that will feature JavaFX support, should be pretty powerful). As more iPhones are sold, many more J2ME phones are sold at the same time. As the iPhone specs are improved, so are the specs of J2ME phones. As more clever applications appear for the iPhone, clever applications appear for J2ME also. For example, have you seen some of the latest augmented reality applications on the <a href="http://www.youtube.com/watch?v=5fZk0HaIs4s&amp;feature=related">iPhone</a> ? J2ME had stuff like that way back in <a href="http://discussion.forum.nokia.com/forum/showthread.php?t=87541">2006</a>. Unless the iPhone somehow magically becomes dirt-cheap, it doesn&#8217;t stand a chance to kill J2ME.</li>
<li><strong>&#8220;J2ME is not as flexible as the iPhone&#8221; &#8211; </strong>Let&#8217;s compare a standard J2ME phone with a current generation Apple iPhone! I don&#8217;t have to jailbreak my J2ME phone to install &#8220;unapproved&#8221; applications on it. Nor do I have to wait for proper bluetooth support (it&#8217;s already here).  And, from a business standpoint, J2ME is <em>the most flexible </em>platform around simply because it has the largest userbase and the cheapest devices.</li>
<li><strong>&#8220;With so many platforms around, J2ME&#8217;s market share is going to dwindle&#8221; </strong>- Regular phones support J2ME. Symbian phones support J2ME. Windows Mobile phones support J2ME (albeit not directly). Blackberry phones support J2ME. The only platforms that do not yet support J2ME are Android and the iPhone.  Even if these two somehow manage to gain a 50% market share (we&#8217;re talking about 50% of <em>all </em>mobile devices), that still leaves J2ME with a 50% marketshare. Enough said.</li>
<li><strong>&#8220;Everyone is switching to the iPhone and there won&#8217;t be enough developers left to work with J2ME&#8221; </strong>- The cost of entry for J2ME development is <em>almost ZERO </em>(you only need a computer running Linux) and for that money (again, $0.0) you can get a mature, fast and full-featured development environment (Netbeans, for example). Being low-level and simple, J2ME is easy to learn. Being old, there is a lot of freely available information on the Internet. Being the most widely available mobile platform, you get the largest  possible userbase for your applications. These reasons alone should attract a constant following of developers.</li>
</ul>
<p>So what does all this mean? Well, certainly there&#8217;s plenty of competition for J2ME. And certainly a lot of developers are focusing on other platforms, to capitalize on their growing marketshare. And, as a developer, it would be wise to take a peek at the competition and learn something about development on other platforms.</p>
<p>But, just like Windows in the desktop world, J2ME has a huge userbase and enough features and flexibility built-in to safely place it in the #1 spot  for a long time to come. For these reasons, J2ME simply<em> cannot </em>be ignored if you&#8217;re targeting the mobile world. You can always release a high-end version of your application for the iPhone and its limited userbase, but you&#8217;re probably going to be much better off releasing a J2ME version for the masses first and see how it catches on. With the proper development team and tools, your J2ME application can look just like its  iPhone counterpart on high-end devices, while still running on lower-end devices (albeit without the fancy look and feel). If nothing else, this fact alone will ensure J2ME&#8217;s survival.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ovidiuiliescu.com/2009/09/27/the-imminent-death-of-j2me/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Why I think JavaFX will fail</title>
		<link>http://www.ovidiuiliescu.com/2009/08/02/why-i-think-javafx-will-fail/</link>
		<comments>http://www.ovidiuiliescu.com/2009/08/02/why-i-think-javafx-will-fail/#comments</comments>
		<pubDate>Sun, 02 Aug 2009 16:49:01 +0000</pubDate>
		<dc:creator>ovidiu</dc:creator>
				<category><![CDATA[Opinions]]></category>

		<guid isPermaLink="false">http://www.ovidiuiliescu.com/?p=194</guid>
		<description><![CDATA[Long story short, JavaFX is Sun&#8217;s attempt to compete with technologies like Microsoft Silverlight and Adobe Flash/Flex/Air by finally bringing Java&#8217;s UI capabilities into the 21st century. It&#8217;s great in theory, it&#8217;s great for the Java world in general, but I don&#8217;t think it&#8217;s going to be so great in practice. The reason I&#8217;m saying [...]]]></description>
			<content:encoded><![CDATA[<p>Long story short, <a href="http://javafx.com/">JavaFX</a> is Sun&#8217;s attempt to compete with technologies like Microsoft Silverlight and Adobe Flash/Flex/Air by finally bringing Java&#8217;s UI capabilities into the 21st century. It&#8217;s great in theory, it&#8217;s great for the Java world in general, but I don&#8217;t think it&#8217;s going to be so great in practice.</p>
<p>The reason I&#8217;m saying this is because JavaFX simply doesn&#8217;t have a place on the modern map of computing. I mean, let&#8217;s look at the facts:</p>
<ul>
<li>Flash clearly dominates the web. The ubiquity and maturity of Flash gives developers virtually no reason to switch, especially when considering that most users don&#8217;t even know what Java is, let alone have it installed on their computers.</li>
<li>On the desktop side of things, Air is pretty cool, however technologies from Microsoft (like WPF and Silverlight) have a greater chance of catching on. Sun is left way behind because of the large downloads and long start up times usually associated with Java. Remember, we&#8217;re talking mainstream users here.</li>
<li>Great UIs need great visuals, and these in turn need powerful image processing tools. Adobe has time proven software under it&#8217;s belt, like Flash, Illustrator and Photoshop. Microsoft <a href="http://www.microsoft.com/expression/">is making an effort to catch up</a> (though it&#8217;s arguable how successful this effort will be). Sun has nothing. And regardless of what you&#8217;ll say, there will <strong>always</strong> be more &#8220;cooperation&#8221; between Photoshop/Illustrator and Flash than there will be between Photoshop/Illustrator and JavaFX.</li>
<li>Consoles and other similar devices have built-in web browsers. These web browsers usually run Flash. And I don&#8217;t think they&#8217;re going to switch to Java anytime soon.</li>
<li>The only real chance JavaFX has is in the mobile world, and Sun knows it. In fact, Sun says JavaFX will be available on mobile devices starting sometime in 2009. However, they don&#8217;t specify on what class of devices JavaFX will run. Unless they somehow manage to get it running properly on mainstream devices, they&#8217;re ship is sunk. Let&#8217;s face it, if you&#8217;re going for a high-end device, you might as well use it&#8217;s native API. Or go for Flash. Speaking of Flash, my old Nokia E50 can happily run FlashLite content <strong>right now</strong>.</li>
<li>Serious (read: &#8220;enterprise&#8221;) users don&#8217;t need JavaFX. At all.
</ul>
<p>Bottom line, unless Sun somehow manages to pull a magic rabbit out of a magic hat, I simply don&#8217;t see how they can make JavaFX really catch on. I admit I like the <strong>idea</strong> of JavaFX, but something tells me I&#8217;m not going to like the <strong>reality</strong> of it.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ovidiuiliescu.com/2009/08/02/why-i-think-javafx-will-fail/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Why I love J2ME</title>
		<link>http://www.ovidiuiliescu.com/2009/07/31/why-i-love-j2me/</link>
		<comments>http://www.ovidiuiliescu.com/2009/07/31/why-i-love-j2me/#comments</comments>
		<pubDate>Fri, 31 Jul 2009 11:07:37 +0000</pubDate>
		<dc:creator>ovidiu</dc:creator>
				<category><![CDATA[Opinions]]></category>

		<guid isPermaLink="false">http://www.ovidiuiliescu.com/?p=176</guid>
		<description><![CDATA[Programming J2ME is a very tricky business, much more so than regular desktop programming. Because you have limited resources, most of the time you simply don&#8217;t have the luxury of wasting them. Granted, sometimes you can get away with using RAM and CPU cycles like there&#8217;s no tomorrow, but any serious number-crunching in J2ME requires [...]]]></description>
			<content:encoded><![CDATA[<p>Programming J2ME is a very tricky business, much more so than regular desktop programming. Because you have limited resources, most of the time you simply don&#8217;t have the luxury of wasting them. Granted, <em>sometimes</em> you can get away with using RAM and CPU cycles like there&#8217;s no tomorrow, but any serious number-crunching in J2ME requires you to be a really, really clever coder. You have to use all the tricks you&#8217;ve got : clever memory allocation techniques, clever ways of speeding up your computations, clever ways of storing  your data, even clever ways of displaying information. Not to mention you have to handle device-specific issues, of which there are a lot. There&#8217;s no question about it, J2ME programming can be (and often is) difficult, inconsistent and perplexing.</p>
<p>So why do I love it ? Well, plenty of reasons. It always keeps me thinking while I work. It doesn&#8217;t allow me to get rusty, because I always have to tackle new challenges and learn new tricks. It gives me the satisfaction of literally holding my work in the palm of my hand. It makes me feel great because I can create some very cool stuff despite the very restrictive environment. It fuels my imagination, because J2ME means computer programs that you can carry around and use wherever you are. Last but certainly not least, it makes me feel like a <a href="http://en.wikipedia.org/wiki/Real_Programmer">real programmer</a> (without the convoluted and hieroglyphic-like coding style).</p>
<p>Why do you love (or hate) J2ME ?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ovidiuiliescu.com/2009/07/31/why-i-love-j2me/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

