Stories
Slash Boxes
Comments

News for nerds, stuff that matters

Slashdot Log In

Log In

Create Account  |  Retrieve Password

Best Platform For Hobbyist Mobile Development?

Posted by kdawson on Mon Oct 01, 2007 11:53 PM
from the joy-of-programming dept.
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.
+ -
story

Related Stories

This discussion has been archived. No new comments can be posted.
The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
 Full
 Abbreviated
 Hidden
More
Loading... please wait.
  • Badly written (Score:5, Insightful)

    by strags (209606) on Tuesday October 02 2007, @12:01AM (#20819381)
    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.

    • Re:Badly written (Score:5, Informative)

      by Iftekhar25 (802052) on Tuesday October 02 2007, @12:13AM (#20819479) Homepage
      This article is fluff. The section on the iPhone is common knowledge. He's never touched the Blackberry, never worked on Brew, he's waiting for Palm to do something, there's no indication he's developed anything on Symbian, and he "doesn't see any way" to develop for Linux because of lack of tools.


      Nothing to see here.

      • Re:Badly written (Score:5, Insightful)

        by S3D (745318) on Tuesday October 02 2007, @02:30AM (#20820157)
        Well, I did develop for Symbian and he is mostly correct. Certification and signing is nightmare. Even if developer is not using any capabilities and can self-sign application it still present some problems, due to poor documentation - some not quite necessary API call included by mistake can prevent application from installation. If any non-trivial capabilities are used freeware development (outside of promotional demo for big companies) becoming practically impossible. Signing freeware application can take months. Or freeware application could be ignored by test house without any explanations at all. There will be some changes soon. Free developer certificates to be abolished soon. Only TC Center certificates (cost 200 euro per year) will be accepted, valid only for like 100 phones, and process of getting them is not fast anyway.
    • Re:Badly written (Score:4, Insightful)

      by djradon (105400) on Tuesday October 02 2007, @12:39AM (#20819609) Homepage Journal
      Unfortunately for the world of would-be hobbyist programmers, there really is only one reasonable development platform, and it is Windows Mobile. His points might be poorly-referenced, but I think he's pretty right-on about everything.
      • Re:Badly written (Score:5, Insightful)

        by Lumpy (12016) on Tuesday October 02 2007, @09:04AM (#20821747) Homepage
        From my experience you are 100% correct.

        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.
      • by WED Fan (911325) <akahige@nOspAm.trashmail.net> on Tuesday October 02 2007, @09:50AM (#20822297) Homepage Journal

        He's apparently never heard of the comma. The article is frustrating to read.
        its a if everyone who ever instant messaged were students of ee cummings with a bad lsd and grammer trip thrown and we are all reading 2 page long sentences written by faulkner because our english teachers said he was one of the worlds greatest writers when all we wanted to do was pass with some semblance of knowing what the class was about so we could get on with our technical careers and forget that we were subjected to the torture of keats and poe while would have rather been reading the articles in playboy right like that is what the magazine is for cause dude i go to the web and read news papers and never look at pr0n because my boss would kill me as i try to hammer out code for his new gizmo gadget toy of a phone that can do everything but place a decent call on a decent cell service even though the prices are so freaking high you would think that there quality would be fantastic and right now im thinking that someone is looking for a hidden message in all this but there is no message i didnt bury paul and im am not a knight in satans service but i do own a jack russel terrier and that is one wired dog and is only out done by my border collie thank god weve got a miniature schnauzer now that is a dog that is even tempered and is happy just sitting in the room looking at me staring at me penetrating my brain with those ineffable eyes leaving me wonder what he is thinking what is that dog looking at damn the cat just knocked down my wifes roses and is now eating their leaves
  • by DrJimbo (594231) on Tuesday October 02 2007, @12:04AM (#20819409)
    From the summary:

    The writer seems open-minded and is a strong fan of free software, ..
    From TFA:

    I've always had a love hate relationship with Linux. I love it 'cause its a great platform for learning but I hate the licensing.

    Coming next to Slashdot: up is down and black is white.

  • Mostly useless (Score:5, Insightful)

    by Anonymous Coward on Tuesday October 02 2007, @12:08AM (#20819449)
    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)
    • by neersign (956437) on Tuesday October 02 2007, @08:44AM (#20821593) Homepage

      Blackberry

      Next comes the blackberry, I have no idea about this as a programming platform so cannot say much about the SDK support.

      oblig. Billy Madison quote: We are all dumber for having listened to you. I award you no points, and may God have mercy on your soul.
  • Issues (Score:3, Interesting)

    by Anonymous Coward on Tuesday October 02 2007, @12:08AM (#20819451)
    Overall, I had my hopes up when I saw this title -- I was hoping to get a better review of many platforms...and we do, so long as those platforms are one's the author used.

    Right off the bat, two very large platforms, he says 'I've never done anything with this one.' So he counts it out -- why even put it in the article?! My minimal experience with Blackberry development seemed pleasant enough -- it was easy to compile the software and get it on the phone, and it was easy enough to execute it. Granted, it was a loaner blackberry so I only got it for a few days, which in my case, was enough time to tinker with example code.

    As for Brew, which the author also states he has no experience with, but goes on to talk about the horrendous signing requirements...which I guess is better than the one-sentence approach to Blackberry.

    As for Symbian, wtf is he talking about? I had a good friend that was porting some small-time development house's flagship phone cardgame suite from, believe it or not, XBox to a Symbian smart phone. I don't recall what version of the OS it was, but it certainly didn't seem like it was a pain to sign anything. He showed me the entire process - save code in IDE, compile code, open phone in My Computer > Bluetooth Devices section, drag-n-drop the compiled package, go on phone, run program.

    He did however complain about how picky Symbian was about memory management, and that it was extremely annoying in that it would tell you about every byte you didn't clean up perfectly when your application closed. I suppose thats a good thing and a bad thing. Maybe they had some weird dev phone that didn't need signing, I don't know -- they were big enough to have a developer XBox 360 several months before it was officially released.

    For some reason, I have a feeling this guy was just running out of material and got bored.
  • Oblig OpenMoko shill (Score:5, Informative)

    by Anonymous Coward on Tuesday October 02 2007, @12:16AM (#20819507)
    Of course, if it's just for yourself, you should check out the OpenMoko [openmoko.org]. It is the most open phone with the best developer support. You are literally writing GTK apps running on real Xorg and real Linux. And the whole point is that it's open, so no vendor trying to lock you out.

    And the Neo 1973 GTA02 hardware [openmoko.org] is looking to be pretty sweet. Includes 3D accelerometer, GPS, WiFi, Bluetooth, and touch screen (with rumor of enabling multitouch [openmoko.org] through a driver update).
  • My Take (Score:5, Interesting)

    by RAMMS+EIN (578166) on Tuesday October 02 2007, @12:19AM (#20819521) Homepage Journal
    I don't have a lot of time, but I'll just quickly give you all my take, without going into details too much.

    1. J2ME. It's the Java you all know and either love or hate, but with a different library. Some things work the same way as they do on the desktop. Some things work differently. And some don't work at all. Generally, there will be differences from device to device. Lots of devices come with J2ME implementations. Developing tools are freely available. J2ME seems to be a relatively stable target.

    2. Linux. It's Linux. In theory, it's the same as desktop, server, etc. Linux. You should be able to use the same developing tools and libraries, which are freely available. In practice, devices may have odd differences and limitations compared to desktops running Linux. Sometimes, vendors go out of their way to introduce incompatibilities. It's a mine field. The number of devices Linux runs on is limited, and the ones you can reasonably limited are fewer still. Although the core of the platform is stable, parts of it are very much moving targets.

    3. Windows Mobile (formerly known an Windows CE and Pocket PC). Pretends to be Windows but isn't. The platform has odd limitations and restrictions that differ from version to version and from device to device. Developer tools are available, but not necessarily free of charge. It all depends on the target device, its configuration, and the version of Windows Mobile. In general, you will have to pay for developer tools, compile different versions of your app for different targets, and pay for signatures on some targets. Many devices come with some incarnation of Windows Mobile on them. The whole platform is a moving target, with incompatibilities introduced at about every release.

    The way I see it, of the three, Java wins hands down. It's the only one that is actually workable.

    I don't know where Vivek is coming from when he says ``I never thought that Windows Mobile would take the pie, but for a hobbyist programmer they offer the best SDK's and you can make applications without worrying about certificates while testing and debugging. With a windows mobile one really feels in control, if you want to screw up your mobile device its really upto you. One rarely feels tied down the API's are clean and functional. Getting your first demo program onto the device takes a few seconds. It just makes sense to develop for windows mobile. There is almost no need to get your applications signed, at least for testing.''

    To me, it has been the exact opposite of that. It's a nightmare. It's a nightmare to figure out what you have to download to get up and running. You can compile binaries for th platform with various tool chains, including some (user friendly for me) open source ones, but they won't run on all devices, as they will be lacking the right signatures. If you do get your application signed (which is costly; you have to sign every version of every exe, dll, and cab), it won't work on older releases that don't support code signing. The platform is almost ridiculously limited, and limitations aren't consistant across versions (e.g. you may or may not be able to get at a given file using the file open common dialog).

    I'm thinking Vivek just tested things using one device, and was lucky enough that it didn't throw a tantrum.
    • Re:My Take (Score:5, Interesting)

      by Shados (741919) on Tuesday October 02 2007, @12:30AM (#20819565)
      I didn't read the article, but the reason many people prefer Windows Mobile is because of the .NET framework. It just makes it too easy to make apps for it. While a binary for desktop will not run on a Windows Mobile device, the source code recompiled often will, if you avoid the subset of the language thats not available. Failing that, a Windows Mobile .NET assembly -will- work on a desktop, so its pretty cool to test stuff out. Yeah you need to pay for the (better) tools (the basic tools being freely available), but its actually quite cheap and so easy to use its almost like cheating.

      Personally I was put on the spot with no mobile device experience -whatsoever-, with a 2 weeks deadline to learn it AND deliver a tested, fully working and deployable (on customer devices) remote real time inventory management software su pporting most mainstream Windows Mobile enabled barcode scanners (I realise I'm not talking hobby anymore) with nothing but the lowest version of Visual Studio that supported it (which is incredibly cheap, especially since you can get an upgrade from virtually anything, including competing products), and I actually finished ahead of time.

      Then by replacing the bits that actually used the barcode scanner with a stub, we were using my boss' cellphone to demo it to customer without any changes (beyond the one I just mentionned). That was pretty fun :)
      • Re:My Take (Score:5, Informative)

        by Xtravar (725372) on Tuesday October 02 2007, @03:01AM (#20820273) Homepage Journal
        Zomg was it a Symbol, Intermec, or HHP device? :)

        Hello, fellow Windows Mobile barcode scanner developer. I hate my life.

        I hate the compact framework. It's got limitations everywhere that drive me nuts. It's a memory hog. P/Invoke is virtually required. Generics make jitting 10x slower, and it's already pretty damn slow.

        I hate taking 4 minutes to deploy a multi-dll app using Visual Studio.

        I hate debugger freezes that require soft-resets.

        I hate how every device behaves differently.

        I hate constant out of memory errors since the compact framework is a memory hog and the devices are all under-equipped.

        I hate how CF 2.0 apps are compiled to be "hi-res aware" because Microsoft assumes that all of your controls are going to scale properly.

        I hate the input panel and it's flaky behavior.

        I hate Microsoft SQL CE. Poor documentation. Vague errors. Slow.

        I hate having to deal with 3 different barcode scanning APIs from 3 different vendors that won't give me devices or up-to-date documentation.

        Basically, the only reason I'm still doing this is because the other teams at my company are using VB6. I think I'd rather die.
  • 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.
  • My experiences (Score:5, Interesting)

    by JustNiz (692889) on Tuesday October 02 2007, @01:12AM (#20819775)
    I used to work as a software consultant for a large company who shall remain nameless, making those in-car systems that integrate Navigation/cellphone/internet/car control all in one built-in unit in the car's dashboard.
    They wanted to get away from their usual approach of having to make a whole new custom system for each car project, so we made a custom hardware platform running Windows-CE that we could sell to different car manufacturers just by modifying the front panel and changing some of the graphics.

    Anyway I just told you all that to establish my experience and tell you that porting CE to a custom platform and developing drivers etc. for CE sucks very badly compared to doing the same with Linux due partly to the poor documentation and lack of support from Microsoft, and also that CE itself and its APIs are very badly designed and structured compared to Linux.
  • by Octorian (14086) on Tuesday October 02 2007, @08:21AM (#20821507) Homepage
    It is a shame that he doesn't bother to even mention anything about the BlackBerry platform. First and foremost, it *is* J2ME. (well, for the most part) You can run standard J2ME stuff on the BlackBerry, but you can also run stuff written against the BlackBerry-specific API. RIM provides free development tools, and while their own IDE is pretty poor, integrating their tools with the NetBeans IDE is pretty easy.

    The biggest advantage of BlackBerry Java development, IMHO, is that the OS itself is practically a JVM, and the built-in apps are also Java. On most phones, running a J2ME app requires waiting forever for the thing to start and never integrate well. On the BlackBerry, your own Java apps start instantly and can look just like all the other built-in apps. Finally, BlackBerry is a common platform across a wide range of popular devices, so you'll always have plenty of potential users even if you build BlackBerry-specific apps.

    And now for the shameless plug...
    Back when I got my BlackBerry, I found that there were no decent available E-Mail clients for them. (only the service-based E-Mail, which stinks if you're not hooked to a corporate BIS server.) So, I kicked off an open-source project to write my own:
    LogicMail - http://www.logicprobe.org/proj/logicmail [logicprobe.org]
    • Re: (Score:3, Interesting)

      ``I just don't get why J2ME development has to be so complicated: weird acronyms, half a dozen versions''

      It's the Java way, or maybe the Enterprise way. They like acronyms and buzzwords and pretending they've invented something new, when it's really something that has existed outside the Java world for ages, or a workaround for some limitation of Java.

      ``Sun is snatching defeat from the jaws of victory; give it another few years and they'll have thoroughly destroyed the mobile Java market as well, just like
      • Re:J2ME (Score:5, Interesting)

        by teh kurisu (701097) on Tuesday October 02 2007, @06:57AM (#20821195) Homepage

        Java EE is an utter mess, in my opinion. Too many acronyms and buzzwords and oh god the XML configuration files where everything has to be configured in three different places and then when you get something wrong it breaks and you can't figure out why... *deep breath*

        That was my impression of it anyway. Some of it was incredibly useful, but all the unnecessary configuration just got in the way.

        J2ME is nowhere near as complicated or difficult to get up and running. Eclipse, the EclipseME plugin and a compatible device are all you really need. The plugin does all the essential stuff for you, and having bluetooth on both the device and your PC makes deployment easy. For more serious stuff I use J2ME Polish (as in Mr Sheen), which handles handset compatibility and APIs quite well, as well as giving more control over the GUI.

        That said, I got the distinct impression from TFA that, on the subject of J2ME, the author didn't have a clue what he was talking about:

        As of today the they offer/highlight Sun Java Wireless Toolkit 2.5.1 for CLDC for download. But I have no idea about any device which offers support for it, I like the fact that I can use swing in Java ME applications but where am I supposed to test it. Unless they want a programmer to develop for a hypothetical platform which exists only as an emulator. They should offer/highlight Mobile Information Device Profile (MIDP) v2.0 which makes a lot more sense.

        For a start, MIDP 2.0 is part of the CLDC Wireless Toolkit. And as for "where am I supposed to test it"... well, the toolkit comes with an emulator for precisely that purpose. Most modern mobile phones are also MIDP 2.0 / CLDC 1.1 compatible, so that shouldn't be a problem. There are also optional APIs that the mobile manufacturers can provide according to the capabilities of the phone (for example, the Nokia N95 contains a GPS unit, so the Location API is included).

        I'm not saying that it's the best mobile development platform out there, as I've come close to tearing my hair out when faced with some of it's limitations. But if there's one thing I can't fault it on, it's the shallow learning curve. I suspect the author wasn't really trying.

    • Re: (Score:3, Interesting)

      I wasted hours trying to be able to develop java software for my PocketPC, and never did get it to work decently. There's no JRE preinstalled, no freely available JRE available for download, and to target a device you need some sort of device profile - which I never found for a plain old PocketPC! I ended up with IBM's J9 runtime, which I realized is designed for OEM's to preinstall on cellphones, and a big headache to get working on a PocketPC. After all that, it doesn't support Swing (or even AWT) any
    • Re:J2ME (Score:4, Insightful)

      by hey! (33014) on Tuesday October 02 2007, @01:31AM (#20819865) Homepage Journal

      I just don't get why J2ME development has to be so complicated


      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.

    • by siDDis (961791) on Tuesday October 02 2007, @04:37AM (#20820633)

      I just don't get why J2ME development has to be so complicated: weird acronyms, half a dozen versions, different packages which may or may not be supported on any particular device, applications that sometimes run and sometimes don't, installers that sometimes work and sometimes don't, etc.

      Sun is snatching defeat from the jaws of victory; give it another few years and they'll have thoroughly destroyed the mobile Java market as well, just like they did with the Java desktop market.
      You should try NetBeans 6, the developers have implemented great support for developing J2ME applications. There is even a GUI/Flow designer for Mobile devices included. It's true that before I had to spend a week configuring just to get Hello World up and running, but with a clean NetBeans 6 install I(and probably all of you) can do it within seconds. Also an emulator is included so you can test/debug on your computer, still if you want to test your application on your mobile device you just have to copy the compiled jar file over.

      There are several samples included: like sounds, graphics, basic networking, games. I recommend everyone who is interested in developing application for mobile devices to check it out ;)

      But if you already hate Java, then just stick to the Windows platform. It's also very good.
      • Re:Not just J2ME (Score:4, Insightful)

        by cs02rm0 (654673) on Tuesday October 02 2007, @03:22AM (#20820365)
        ...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.