Best Platform For Hobbyist Mobile Development? 143
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.
Badly written (Score:5, Insightful)
Mostly useless (Score:5, Insightful)
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)
Re:J2ME (Score:2, Insightful)
What is this garbage doing on the front page? (Score:5, Insightful)
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.
Re:Badly written (Score:4, Insightful)
Re:Strong fan of free software??? (Score:5, Insightful)
Re:J2ME (Score:4, Insightful)
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.
Linux Vs Windows Mobile (Score:2, Insightful)
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.
Re:Badly written (Score:5, Insightful)
Re:Not just J2ME (Score:4, Insightful)
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.
Re:Not just J2ME (Score:3, Insightful)
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?
Developing environement (Score:2, Insightful)
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.
Re:Badly written (Score:5, Insightful)
I have tried all the platforms. Palm based treos are decent if you use CASL to write for them. it's fast enough for management to be happy and powerful enough for the typical programmer. but it sometimes causes problems and connectivity out the cellular connection can be a PITA.
windows smartphone 5 after getting past the C# strangeness is actually quite nice to write for. and releasing for a new phone is as easy as a compile. the current software I write for the company on the phones we are about to roll out (deploying the samsung blackjack to all field employees and throwing away the blackberries.) allows full job tracking and other task management easily. all phone report back to a central server management has a complete up to minute picture as to where all projects are at and the employees love the fact that they do not have to do any paperwork anymore.
I suggested the Linux phone offering on openMoko but it's hardware and software is still early beta and not ready for company wide use. right now the dirt cheap WM5 smartphones are the best solution for rapid deployment of mobile applications for a company.
and I hate to say it but Microsoft seemed to got this one right. which does suprise me. they dropped the ball on all the other ones. AutoPC and the others (windows CE) sucked HARD.