Best Platform For Hobbyist Mobile Development?
An anonymous reader notes a blog entry, possibly his own, comparing and evaluating 8 mobile platforms from the point of view of their suitability for a hobbyist programmer. Covered are iPhone, Java ME, Windows Mobile, Linux, Palm, Brew, Symbian, and Blackberry. The writer seems open-minded and is a strong fan of free software, but he gives the edge to Windows Mobile for this class of developer.
This piece reads more like a stream-of-consciousness than a carefully prepared technical article - maybe it's not meant to be considered as such. The author doesn't event attempt to justify a number of his assertions - in fact most of them seem to be based on some kind of vague "feeling" rather than concrete data or research.
Not only is it not well written, many of the platforms are there just for show, as he knows nothing about them.
Examples:
iPhone
It's not clear he's developed for it. He spends his time whining about the closed SDK, which is valid enough, but could have simply said "Apple doesn't welcome outside developers currently". And left it off.
Blackberry
I can just quote him
"Next comes the blackberry, I have no idea about this as a programming platform so cannot say much about the SDK support."
Brew
And here:
Brew as a platform is great but its not a platform for a hobbyist programmer. The tools are "supposed to be good. I have never directly worked on a brew project so cannot say much about it."
Linux
(goes off boring us about his dislike of GPL (fine, but out of place). And then finally gets to the matter
(His JavaME and Windows Mobile coverage is decentish)
This article contains less information than you'd get from 5 minutes of google searches on the names of the various technologies. Why reward such haphazardly written articles with frontpage coverage and ad impressions?
The author's few actual opinions about technologies are equally worthless; his rambling about Palm and J2ME makes it clear that he's never actually used the technology for more than a few minutes, and the ranting about Linux's license and the hassle of 'signing' applications makes you wonder if he's ever written any software at all. Someone who considers the Java Mobile API 'beyond him' probably shouldn't be writing articles about programming.
using namespace slashdot;
troll::post();
I dunno. I have some peers who won't touch FOSS with a ten foot pole, but at the same time feel very insulted having to PAY for their proprietary software. There do exist people who like their software free as in beer, but no free as in speech. Odd, I know.
It starts from what J2ME is. Or rather what it is not.
First and foremost, it is not a product -- at least of the the company that controls it. You can't buy J2ME and plop it on your phone; it has to be put there by the manufacturer, who in turn sells them through the wireless carriers, who don't give a shit about anything unless it can be turned into a monthly service fee.
Secondly -- and this accounts for the alphabet soup issue -- J2ME isn't really a platform. It's more like a family of specifications, or at least it is "marketed" (?) that way. Sun's direct audience for J2ME isn't users, it isn't developers, nor is it enterprises. It is device manufacturers. Since devices come in all shapes and sizes and capabilities, J2ME is balkanized so that there is a J2ME specification that work on just about anything more powerful than a PIC. Furthermore any J2ME implementation is going to extend the standard both with non-standard capabilities and with a non-standardizable selections of optional features. Which means that if you aren't careful you end up with a program that doesn't run on all.
If you step back and squint, J2ME is handled exactly the opposite way that Java is handled. There are no standardized implementations you can deploy on, not even on PDAs, which would bring a lot of ideas and talent in from the developer community. This diametrically opposite effect explains why Java, which is so important in the enterprise, is a toy platform in the mobile world. You either develop for a specific device, or you develop trivial games that don't cause a lot of grief when they don't work cross platform.
It's not entirely Sun's fault, at least on the mobile end. Our de-regulated telecom model means that the wireless companies are gatekeepers between developers and consumers. However, the failure to extend Java to the PDA was a lost opportunity to gain momentum before PDAs lost ground to smart phones, and smart phones lose ground to closed devices like the iPhone.
Post may contain irony: discontinue use if experiencing mood swings, nausea or elevated blood pressure.
Not as a hobbyist but as a professional developer i have little experiences of both.
:(.
Whenever i need to do something on windows mobile/wince i never commit on a deadline because you don't know where will you get stuck with so many libs (without source code) around. Microsoft is not going to support you until you really mean something to them and windows mobile documents sucks.
Some point of time, I had to demo VoIP on wince. I plan to use wince messenger but it was returning 421(IIRC). I was using M$ SIP stack so code was not available to me. There was no way to find out the root cause until I get M$ support. Luckily i thought little differently and figured out that there could be some problem in Wi-Fi driver(it was developed by me again). NDIS API for maximum data rate was not correct. I don't understand how can someone think of development on M$ platform as a HOBBY with such a bad documentation and no support.
Later,i had to port Linux kernel on a alien platform with some minimal applications (e.g ftp, ssh ) within a month. I am basically a network engineer with no embedded experience at all but have some user level Linux experience. With the help of community(IRC) i successfuly completed the task within the specified time. I was amazed the way linux kernel is written. You dont have to do anything to port on a new device. Error handling is great. Error reporting is excellent and tools really rocks. No OS give support over IM as Linux has. I feel, Linux is best for developing applications for mobile devices(at least for command line applications, haven't tried GUI ever). You don't have fear to get locked in with issues in some alien binary.
Windows mobile looks good at beginning but once you go inside it, its all muddy and you find yourself helpless. Still trying to figure out what is equivalent of kernel magic number in windows mobile
PS: Sorry for broken English. I am not a native speaker.
...JSP, JCA, JCE, JAI...
It's crazy isn't it. What's most infuriating is it means when you go for a Java job half the time you'd get turned down because you haven't got the latest three letter abbreviation in your CV (resume) even though you're perfectly capable of churning out Java code and you'd be familiar with whichever two APIs they use most pretty quickly.
JSP, JCA, JCE, JAI...
It's crazy isn't it. What's most infuriating is it means when you go for a Java job half the time you'd get turned down because you haven't got the latest three letter abbreviation in your CV (resume) even though you're perfectly capable of churning out Java code and you'd be familiar with whichever two APIs they use most pretty quickly.
There are only 676 possible TLAs that start with 'J'. Why not just list them all?
Hello.
At an amateur level, J2ME is the best because is well documented, reasonable IDEs and free. It is not very powerful or fast, but it is simple and will do a lot of things.
At a professional level, Symbian and Windows CE/Mobile are the viable options. If you want to build a decent UI, get good performance and use decent IDEs and get lots of resources, that's the way.
Linux is the most promising new platform, but I tried to get into openmoko, as a useful hobby, but the development tools are a lot different of what I'm used to... It is taking a lot more time than I expected to learn the thing.
Math is beautiful... e^(pi*i)+1=0