Slashdot Mirror


Java on Handheld Devices?

superfred queries: "I work for a Java-based software company, and have been tasked with researching Java on handhelds...I've managed to dig up information on which handhelds support Java (most of the major ones do), but what puzzles me, is if any company is actually *using* this for any reason (besides Java-based handhelds/phones). The Palm OS has apparently supported Java since the Palm V, but has anyone written any software to take advantage of it? Are there any major software developers working on Java applications for handhelds? It seems like a great deal of effort has been used in getting Java on these platforms, but nothing's really utilizing it."

162 comments

  1. Networking by Blinkenpilzen · · Score: 3, Interesting

    I dunno about major players but we've been using it to port some of our networking code to the Palm platform. Not having to rewrite everything for gcc was quite a time (and $$) saver.

    1. Re:Networking by Aanallein · · Score: 1

      You mean "write once" actually did mean "write once" for you? Heh, that'll be quite a shock to java bashers... :)

  2. We are prototyping by Clockwrk · · Score: 3, Informative

    My company is starting to look this direction. We do field data capture on Palm's already. The next gen we are looking at java-enabled devices. But is seems that java is still too slow on these devices. Maybe as processors speed up, this will be a better option.

    1. Re:We are prototyping by yasth · · Score: 1

      If you really want to do Java don't use palm, or palm based products, it really is that simple. Compared to modern handhelds they are very slow and limited, and I don't think anyone has the full JavaSE on palm. Try an nice arm powered unit.

      --
      I'd do something interesting, but my server can't handle a slashdotting.
    2. Re:We are prototyping by alext · · Score: 2

      Especially an ARM with a JVM in hardware.
      Contrast with the dismal Itanic - moving in completely the wrong direction - painful optimization, dumb VLIW RISC instructions etc etc

    3. Re:We are prototyping by mhandis · · Score: 1

      ARM's Jazelle is not a VM in hardware. It is a mode of the processor which can execute Java bytecodes in hardware, but it still needs a full-fledged Java VM to be made use of. What's more, the VM has to be written specifically to work with Jazelle, because it requires a specific memory model (what classes and objects look like in memory), which doesn't allow many standard optimizations of a standard VM.

      In many cases, JIT or AOT turns out to be much faster than Jazelle-like processors.

  3. Realistic uses of Java in Handheld Devices by AlaskanUnderachiever · · Score: 3, Insightful

    I've seen a few programs on Palm OS (3.5 and higher) that utilize Java but they all seem to be (comparatively speaking we are talking Palm here) to be a bit bloated and resource needy for what they did (one was a game and as I recall the other one I used for a bit was a training log of some sort for sports). I am not a programmer myself, nor claim to have any experience with Java, but based on personal experience with Palm and Java it seems to me that it's just another added layer of unneeded complexity on what is a relatively tightly coded device. I think we might see more Palm "ports" of java in the future, but for now I doubt it's going to be very usefull in it's current form.

    --
    Find out about my new childrens book: SS Death Camp Criminal Batallion Go To Monte Carlo For The Massacre
    1. Re:Realistic uses of Java in Handheld Devices by blibbleblobble · · Score: 1

      Well java will -always- be slow and bloated, that's what the virtual machine's for. And given that Sun aren't letting anyone license the processors to run java code directly, we're not going to see fast java code anytime soon.

    2. Re:Realistic uses of Java in Handheld Devices by ticklejw · · Score: 1

      Just compile natively. No more slowness, no more bloatedness.

      --
      "Software is like sex; it's better when it's free." -Linus Torvalds
    3. Re:Realistic uses of Java in Handheld Devices by Anonymous Coward · · Score: 0

      Were it not that native compilers only support (a subset of) 1.1 API. I suppose this can suck.

    4. Re:Realistic uses of Java in Handheld Devices by elem · · Score: 2, Informative

      Nokia seems to be using java already

      One of their newest phones (the 6310i) uses it. From the specs:

      Phone Features
      * Tri-band phone - works in three networks on five continents
      * downloadable personal applications via Java(TM) technology
      * Support of Java applications download via WAP

      IIRC the 9210i does as well....

      Not tried either of them (yet) but sounds like it works... nokia also just had a java programming compo for their phones

    5. Re:Realistic uses of Java in Handheld Devices by Steveftoth · · Score: 1

      Are does this already. They have processors that go into a Java mode to execute bytecode directly. So that myth is false. Nobody wants to impelement a pure java engine because there is still no javaOS, and no java (coprocessor card) because it's still much faster to just interpret the java code, rather then offload it to another processor.

    6. Re:Realistic uses of Java in Handheld Devices by alext · · Score: 2

      Two statements, both 100% wrong. At least you're consistent.
      JVMs have JITs, and ARM and others have hardware VMs such as Jazelle.

    7. Re:Realistic uses of Java in Handheld Devices by mhandis · · Score: 1

      Jazelle is not a VM in hardware.

      Refer to my previous post:
      http://slashdot.org/comments.pl?sid=29543&c id=3174 313

    8. Re:Realistic uses of Java in Handheld Devices by dan+the+person · · Score: 1

      Native compilers support a subset of the 1.4 API.

  4. Java on Palm OS by ardiri · · Score: 5, Informative
    Java on the Palm has not been a major success primarially due to the processor speeds :( a number of virtual machines have been available (KVM (now, official j2me), waba) - and, there was even a project called "jump" which would compile java code natively into m68k code on the palm (but, lacked a lot of support) - [find it on sourceforge.net].

    i am a Java programmer myself, been doing so since mid 1995 (heck, remember the 1.0 beta) :P but, i have spent most of my development on the palm using C, and, where necessary for speed - resorting to native m68k assembly routiens. it just isn't possible to do something "impressive" with the Java engines are they are now - unfortunately :) but, it all depends on what you need it for.

    1. Re:Java on Palm OS by Uberminky · · Score: 1
      i am a Java programmer myself
      I would have assumed you to be a LISP programmer, judging by all the parentheses in your post. (Sorry, couldn't resist. ;-)
      --

      The streets shall flow with the blood of the Guberminky.

    2. Re:Java on Palm OS by tedric · · Score: 1

      I've done my master thesis with PalmOS 3.5, a Palm Vx and J2ME on Linux at IBM. Unfortunately it's confidential what I did - but for beginners (I'm teaching high school kids now) I've made a starters project at http://dvx.d2g.com/~david/j2me/ - nothing with kSOAP an kXML as in my thesis and it's really easy and it doesn't need much of understanding of PalmOS or J2ME, but hey - you need to show the kids some easy stuff they understand and make them hungry to learn more by themselves.

      Would you please give me an URL to the projects you did with PalmOS and Java so I can check why your Java projects have not been successfull? Or your C/C++ projects? I mean, you must have a lot of experience doing Java on PalmOS, because you're doing this for 7 years now. So share your knowledge.

    3. Re:Java on Palm OS by RevAaron · · Score: 2

      It's a shame he isn't. I've been told that using LispMe for creating PalmOS apps is far more practical than Java.

      --

      Working toward a usable PDA environment in the spirit of Newton OS: Dynapad
    4. Re:Java on Palm OS by ardiri · · Score: 1
      • Would you please give me an URL to the projects you did with PalmOS and Java so I can check why your Java projects have not been successfull? Or your C/C++ projects? I mean, you must have a lot of experience doing Java on PalmOS, because you're doing this for 7 years now. So share your knowledge.

      www.ardiri.com = our palm development site.

      when you visit, you'll see why we didn't use java at such a level :) i explored the kvm back in 1999 when the palm v was given out cheaply with the kvm installed (at javaone). it just didn't have the balls to do what i wanted - so, i dug up the gcc compiler for palm (and, eventually ended up maintaining pilrc - the resource compiler).

      as for the java projects and what i do with java, i primarially use it for server side solutions these days and the occasional quick and dirty ui (heck, i aint gonna use VC++ in win32) when coding some interactive applications. bottom line is that without the CPU power, java on pda's isn't worth the effort. j2me is also too simple for doing anything real :) [esp from gaming point, no direct frame access]

      native compilers are the way to go, but, they have been few and far between - either massively out of date, or, not enough development push behind them to make it worth while [a few sdk releases behind or lacking many major system level features]. java is nice, but, like many other things in life - it has its time and place :) [<pun>long live c!!</pun>] - soon, it'll be worth it - it just hasn't been up to this point in time :)

    5. Re:Java on Palm OS by Zurk · · Score: 1

      hmm..actually the C on PalmOS is not really C..its got a bunch of the object oriented libraries instead of regular C calls which makes it look a lot like Java without the VM and safety. I used to hack on PalmOS 2.x a lot and handled the weird database like memory/file i/o structure on the palm which was a royal pain. i dont know how Java file i/o can be translated into the 4K record database type memory structure on the palm without making it slow as heck.

    6. Re:Java on Palm OS by ardiri · · Score: 1
      • hmm..actually the C on PalmOS is not really C..its got a bunch of the object oriented libraries instead of regular C calls which makes it look a lot like Java without the VM and safety

      what the...? the headers look like C to me :) C++ is bloated and clumsy on palm - and, up until recently was very difficult to write on the Palm due to its limitations. my programs are C - there is no "object orientated" libraries.. just a bunch of header files with good old system trap level catches.

    7. Re:Java on Palm OS by Zurk · · Score: 1

      hardly. have a look at some code segments from one of my applications as an example :
      static FieldPtr SetFieldTextFromStr(FieldPtr fieldP, CharPtr strP, ULong size)
      {
      Handle txtH;
      VoidPtr textPtr;
      size = size + 1; /* add '\0' size */
      txtH= (Handle) MemHandleNew(size);
      if (!txtH) return NULL;
      textPtr = MemHandleLock((VoidHand) txtH);
      MemMove(textPtr,strP,size);
      // MemHandleUnlock((VoidHand) txtH);
      MemPtrUnlock(textPtr);
      ClearFieldText(fieldP);
      return SetFieldTextFromHandle(fieldP,txtH);
      }

      more than half the functions above are calls to system libraries which look awfully like object oriented code to me.
      or another example :
      static void StopApplication(void)
      {
      if (g_dbID != 0){
      CloseDoc();
      }
      // FldFreeMemory(DOC_Field.field);
      FldEraseField(DOC_Field.field);
      FrmCloseAllForms();
      }

      again passing object like structures around. Doc_Field.field looks awfully like an object reference with a variable..

      i know its not object oriented and it is normal C but it looks pretty close to an object oriented language.

    8. Re:Java on Palm OS by ardiri · · Score: 1
      • again passing object like structures around. Doc_Field.field looks awfully like an object reference with a variable..

      Doc_Field.field = an element within a structure, as defined in C using something like this:

      struct
      {
      FieldType field;
      };

    9. Re:Java on Palm OS by Anonymous Coward · · Score: 0

      yes i know. i just said that it *looks* vaguely like an object reference.

  5. how much pain does your customers deserve ..... by Anonymous Coward · · Score: 1, Interesting

    You already know the "starting java .. " pain on an otherwise fast PC. How would you think your customers would react to java applications on a handheld ???

    1. Re:how much pain does your customers deserve ..... by Anonymous Coward · · Score: 1, Insightful

      The "Starting java..." has always been Netscape's problem, even since the beginning. Their implementation inside their browser has always sucked, even back to the 1.0alpha3 days.

  6. "No one's using it". Know why? by dmorin · · Score: 4, Insightful
    I was at JavaONE when they gave out hugely discounted Palm V's as a way to promote Java on the Palm. That was years ago. People still aren't writing lots of apps for it (I have heard about some dedicated, internal applications where you can give your people a pre-configured Palm w/Java). Know why I think that is? Why hasn't Palm managed to put the JVM into the machine by default? If the device was inherently able to run Java, and I could just send out JAR files, I think it would be a huge win because your typical customer doesn't really care about the difference between an executable, a data file, an interpreted bytecode, etc... But if for any application I want to make I have to include a whole lot of junk that is just going to confuse them, that stinks. Also, it makes my app smaller. Imagine the subliminal message that's sent out when you say "In order to run my 100k program you need to download and install this 5 meg program." (sizes made up, of course). It makes people think that your program is tiny, and that this other "support" code thingie is going to be wasting all of your precious memory.

    I wonder if the introduction of Java as a supported development platform for Palm would help them with market share? I mean it's not like there's a shortage of applications for the Palm now. What's the big hook from Palm's perspective to do this? I can understand why I as a Java programmer want it, but why would Palm care?

  7. Code Reuse by Maik · · Score: 2, Informative

    I am currently looking into Waba (a subset of Java, look at http://www.wabasoft.org) to use much of the same code both for an applet and a Palm application (and possibly later on a CE application if our client requests it). While the UI stuff has to be different, all the business logic should be portable.

  8. We're developing a java-app for handheld by Hektor_Troy · · Score: 5, Interesting

    Well - it can run on handhelds, and considdering the point of the program, it's a neat idea to do so. It's a building automation monitoring applet running off a _very_ small embedded webserver, meaning the entire program has to take up less 256 kbytes.

    This limitation means the program has to be lean and sleek, and it starts in less than one second on an average office PC. Of course, this probably means a five to ten second startup time on a standard handheld, but in this case, being a fast starter isn't a requirement. Taking up less space than your average word-document _is_.

    The fun things about making such an application are the limitations you're stuck with. Since I've started I've been forced to scrap several ideas for implementing stuff, simply because it takes up too much space. Right now I'm 97% finished - and I've cut the program down to 22 kbytes. Who said that programming in java means programming bloated applications?

    --
    We do not live in the 21st century. We live in the 20 second century.
    1. Re:We're developing a java-app for handheld by MrBandersnatch · · Score: 1

      Heh I've already done this and writting a small application isnt the problem. Is the damn size of Java that hurts. Oh and startup is under 1 second on a 206Mhz Arm.

    2. Re:We're developing a java-app for handheld by evilfrog2 · · Score: 3, Interesting

      I work for a company which is doing J2ME development. The device constraints are even more severe on cellphones! Total application size can be limited to something like 50-90K.

      We develop "enterprise" applications, ie the usual database-driven screen/field kinda stuff. I wrote a stripped-down SQL database for J2ME which takes up less than 20K. (Originally we were using a commercial 3rd party database but it was too big and way too slow.)

      Like the previous poster, I found it to be a fun challenge. By today's standards, it requires "Real Programmer" skills, as opposed to more typical "Java developer" skills.

      Of course the market is tough, but there does seem to be some interest in this sort of thing, primarily on the basis of cost savings (to the customer). Mobile empoyees already have cellphones, maybe even PDAs, so the cost of the "solution" is low. But enough of that; I'm a Programmer not a Marketroid. :)

    3. Re:We're developing a java-app for handheld by r00tarded · · Score: 1

      hells yes! i worked on that project too. moral of the story....KISS.
      if you want desktop functionality, get a desktop.

  9. Possible Uses for Java Enabled Handhelds? by AlaskanUnderachiever · · Score: 0, Offtopic

    OOh ooh! I know! A beowolf cluster of Palm III's running a virtual machine that uses java to play a game of pong! And not just any Pong. Pong with smaller paddles!

    --
    Find out about my new childrens book: SS Death Camp Criminal Batallion Go To Monte Carlo For The Massacre
  10. I doubt that you'll find many external apps by Curt+Cox · · Score: 2, Interesting

    At work we produce desktop and workstation applications for a clients. We use Java quite heavily, but since most of our stuff is written for a particular client, you would only ever encounter it, if you were a user it was installed for. As a member of the general public, you will never know about it.

    While there is a certain potential for J2ME generic applications, I think it works pretty much the same way. J2ME clients will be written largely for internal corporate applications. Since many corporate web based applications are based on JSP, Servlets, or even J2EE, using Java at both ends has lots of advantages.

    At a previous employer, we were doing just that. It would have made things drastically easier, if we could have written for J2ME cell phones, instead of the various cell-phone "micro-browsers" we had to write for.

  11. I'm starting to see interest by taj · · Score: 2, Informative

    This is interesting to me too. You never know what direction open source will go.

    As maintainer of a Java API, I'm starting to see corperate interest in Java on PDA's. I've seen interest come and go (BeOS) and interest come and stay (Mac OS X, HP-UX, Win32, Sol2, linux). The PDA group as a whole appears to be fairly intent on making things work.

    The CE appears to be comming along faster than Palm here but that could change.

    Your experience may be different.

    --
    Trent Jarvi
    maintainer www.rxtx.org

    1. Re:I'm starting to see interest by macom · · Score: 1
      The CE appears to be comming along faster than Palm here but that could change.

      For Field Force devices which can spend 20 hours out in the field at a time, the Palm device has better longevity from the battery. IMHO WinCE devices are great when there is a power supply consistently nearby.

      mocom--

  12. Re:I can't stand... by ticklejw · · Score: 1

    Why? Its so incredibly clean, so much more so than any language I have seen (C++, etc). Its a little slow-ish, but Java 1.4 has significantly improved this, and they are getting better about it all the time. You can do practically anything with it, and it runs on almost any platform you can think of. And don't get me started on how much of PHP's ass that Java's JSPs and servlets kick...

    --
    "Software is like sex; it's better when it's free." -Linus Torvalds
  13. Get to JavaOne by deanj · · Score: 5, Informative
    First, if you can do it at all, get yourself to JavaOne. It starts on March 25th, and usually has the handheld things that are either just coming out, or are about to come out.

    Off the top of my head: Sharp Zaurus PDA, IPAQ (either running Windows or the complete Java replacement OS, the name of which escapes me at the moment), Palm (you know that already). Bigger "handheld" Windows devices, like tablets, can also run it, but you have to look at which chipsets these things support.

    Phones can do this too... some are Palm based, so you can use those. Others, like Motorola's i85s (you can get this via NexTel) have been running Java for a year. No idea what the cost to run this would be for networked apps.... these phone companies like to charge out the ying-yang for service. There's a new wireless service in South Dakota that gives all you can eat wireless service for $50. Not sure how widespread that'll be, but hopefully it'll become more commonplace.

    Nokia is building Java into all their phones,and Sprint is working on stuff too. I don't know if they'll have products announced at JavaOne or not, but they both have either regular sessions or "Birds of a Feather" sessions planned for during the conference.

    good luck

    1. Re:Get to JavaOne by macpeep · · Score: 3, Informative

      "IPAQ (either running Windows or the complete Java replacement OS, the name of which escapes me at the moment)"

      You are probably thinking about SaveJe (http://www.savaje.com/).

    2. Re:Get to JavaOne by steve_l · · Score: 1

      I aint going to javaOne because I despair at sun trying to control it too much; for example they wouldnt allow sessions on the Eclipse windowing stuff, which is an interesting alternative to swing. Too much control like that stops conferences being interesting; makes them more like reruns of the XVI congress of the communist party of the union of soviet socalist republics: "the java developers of the 13th Gulag would like to praise commissar McNealy for adding the assert statement to Java", that kind of thing. Same reason I dont go to any Windows conferences either.

      Go to things like the Ubicomp conference and you get to see some really interesting stuff, like people putting a java web server inside a normal GMS handset (via a java smartcard), which responds to requests proxied over SMS. Slick.

  14. Java-like by chipwich · · Score: 2, Informative

    There are also java-like development platforms for the palm such as superwaba (www.superwaba.com) and waba (www.wabasoft.com).

    These platforms allow you to use your favorite java tools IDE (eg, Jbuilder) and give you a lean VM that runs on the palm. There are some tradeoffs and the UI libraries are differe,t but IMHO the simplicity of these platforms and the open-source nature make them very attractive.

    These platforms have also been ported to Palm, WinCE, Zaurus, TI-calculator (really!), Newton, 386, etc, as well as running under standard java as an applet. Many alternatives.

  15. Ack!! by MrBandersnatch · · Score: 3, Insightful

    Im not a major developer by anymeans but for what its worth I've been writting a Java application that works on both handhelds and PCs for the last year.

    And let me tell you it is a pain in the arse.

    The JREs that are available tend to be commercial and on WinCE certainly - far slower than the (free) beta JRE that Sun (silently) dropped support and development for last year. Add to the speed problems the fact that the supported JREs (if they are not embedded already into ROM) add SERIOUS bloat to memory (3-6 MB ) and being tied (realistically) to 1.1.8 (if not 1.0.2 in some case) in order to obtain wide portability and you have some major hassles in store if you want to develop a single codebase for multiple platforms.

    I would STRONLY advise anyone considering developing any substantial application for handhelds to avoid Java like the plague and instead concentrate on writting efficient portable C or C++ code.

  16. The Sharp Zaurus by bflong · · Score: 2, Interesting


    The new Sharp Zaurus has a JVM installed in it. I'm not sure how many developers are going to use it, but it's there. You can check out some details here.

    --
    Why is it so hot? Where am I going? What am I doing in this handbasket?
    1. Re:The Sharp Zaurus by yasth · · Score: 1

      Sharp is certainly trying to push Java on thier handhelds, as thier Zaurus in Japan uses a proprietary OS that can run java, but not linux. So if new hardware is budgetable, try it out.

      --
      I'd do something interesting, but my server can't handle a slashdotting.
    2. Re:The Sharp Zaurus by limbo_14 · · Score: 1

      My Zaurus runs linux and Java, but I hear there are licensing problems with the Personal Java they are using....

  17. Ever heard of the ZAURUS by mocm · · Score: 1

    Not that I like Java or intend to use it, but Sharp seems to build their entire handheld software on Java. Here is the developer site
    Since it's a Linux PDA and has a fast CPU, I will probably get one. But I will put X11 on it, so that it gets really useful.

    --
    ***Quis custodiet ipsos custodes***
    1. Re:Ever heard of the ZAURUS by MediumWare · · Score: 1

      "Sharp seems to build their entire handheld software on Java"

      How did you come to this conclusion??? Most of their software is based on Qt/Embedded and QPE, which is all C++ compiled to natively run on a StrongARM processor!

    2. Re:Ever heard of the ZAURUS by mocm · · Score: 1

      Well maybe I should have said, their marketing.
      At least that how it looks like here.
      Qt is not much better in my view, why limit the code base by using it.

      --
      ***Quis custodiet ipsos custodes***
    3. Re:Ever heard of the ZAURUS by Anonymous Coward · · Score: 0

      Qt is the best C++ GUI library ever.
      Simple as that.
      And believe me, I have tried many of them on Unix and and Win.

  18. I oft develop against MIDP profile by Anonymous Coward · · Score: 2, Interesting

    Often I develop against the MIDP profile. The resulting "midlet" runs on the Palm, PocketPC and any java enabled phone which conforms to the MIDP spec without modification. The GUI components are limited as compared to AWT/Swing but good for small devices with small screens.

    The best part is that the midlet can be distributed to the handheld via a regular old web server such as apache.

    The tools I use to develop handheld apps is NetBeans but sometimes I use GVIM or any other regular text editor in conjunction with ant, the Java build tool. Sun also has a tool which makes writing midlets much easier called the Wireless Toolkit. With it you simply click a button to build your project and another to fire up the phone emulator and run the app.

    When I'm done with the software emulator I throw the app onto my Palm III or my Visor Neo to test on real hardware.

    I use the handhelds to parse XML from servers to present information to the user instead of doing the heavy lifting on the device itself. Heck, with kXML or nanoXML I pre-parse XML before ever starting up the GUI. That way the user thinks that the app flies! If a new XML document is retrieved then I just put the message in a scrolling ticker informing the user.

    The more I develop java apps on handhelds the more more I realize that the processing speed issue isn't an issue. Just like picking the right tool for the right job, pick the right platform for the right application.

    In my experience, I was able to get up to speed to develop java apps for handhelds than I was able to get all the GCC RPMs in place to develop for handhelds. As I already mentioned, if one develops against the MIDP profile, you're targeting that profile, not just the Palm or any phone in particular.

  19. J2ME MIDP & PDAP by jon_eaves · · Score: 5, Informative

    If you go and read the Sun Wireless sites, then you will understand what's going on.

    The reason there has been a delay is that there is two configurations for J2ME. The MIDP (Mobile information device profile) is destined for the mobile phone/pager market. This has been implemented first, for reasons that I suspect have to do with the power of the phone manufacturers compared to the handset manufacturers, and because the phones have build in networking compared with the Palms which for the vast majority don't.

    The MIDP doesn't work well on a Palm because the display capabilities are aimed at a mobile phone which is less sophisticated, as compared to a Palm.

    However, the good news is that the PDAP (pda profile) has now reached the stage for community review which will mean that a fully fledged profile for use on PDA devices is now available.

    Basically, there's been fragmentation (between KVM, MIDP and PDAP) for development on the Palm, and until now there hasn't been a coherent strategy for companies to follow.

    I expect there will be a massive increase in development on these platforms with the support that is now available, and the direction of the profiles.

    If you want to see what can be done, and a presentation that I gave about J2ME, then have a look at : my J2ME page

    If you want to contact me directly, I can provide further information in this area.

    1. Re:J2ME MIDP & PDAP by d6y · · Score: 2, Informative

      Another issue with MIDP is that you can't access any of the internal databases (address book, date book, to do, memos...). It's a security thing (you don't want apps you download to be able to read/write your contacts). But it's also annoying for anyone wanting to write apps that do things with the information you already have on a palm.

      The Java Spotless system (the forerunner to MIDP/CDLC) did allow you to do this and from memory had a richer UI... but it's dead now. See MIDP4Palm FAQ. I hope the PDAP picks up some of the Spotless systems' abilities.

  20. Java is supported in Palm III by ajaygautam · · Score: 1

    About an year back, I was researching Java development for Palm. I was able to write a simple test program (Hello World!) for my Palm IIIc. I did have to load the JVM on it. But Java works on Palm since at least IIIc.

    Anyone knows if WinCE supports Java ;)

    --
    http://www.ajaygautam.com
    1. Re:Java is supported in Palm III by wadetemp · · Score: 2

      Java works on all the III series if you have enough memory to hold the JVM (which even just the III has... you just won't have room for anything else.) I used to use it on the IIIxe. I don't know where the Palm V era figure came from.

  21. music applications by thanjee · · Score: 2, Interesting

    I do quite a lot of java programming for my music degree. We have plans of getting our jMusic applications running on a handheld unit because it would make performances much easier if you only have to worry about a small handheld unit, rather than a computer tower. From what I know though we will have to make it compatiable for Java Micro Edition which means all integer calculations. One guy in my course has already trialed his music generating paint program (called MooZk) on a hand held.
    For my own personal use it is still a dream as the sound synthesis process I use gives my 800Mhz processor a really hard time, so I don't even want to think about how badly it would work on a handheld device, at least not for a couple of years.
    Sure I am not talking big company stuff, but it is becoming useful for our mobile musical performances. It just needs better Midi support.

    --
    Saying your OS is the best because more people use it is like saying MacDonalds make the best food
  22. Why? by SteveX · · Score: 3, Interesting

    Java, when it comes to handhelds, is theoretically great for the developer, because the developer gets to write an application once and have it run on all the different handhelds..

    But it sucks for the user, because they're getting an application that's not taking advantage of the native abilities of the platform. When the platform is as limited as a Pilot or an iPaq, software that is written natively for each particular platform or device to get as much out of it as possible will be much better than software written for the lowest common denominator.

    In a situation where the developer has a pretty good idea of where the software will be running (ie someone targetting PocketPC or PalmOS) the "write once run anywhere" benefit of Java doesn't really apply. Or at least, it applies to Java as much as it does to C code - to get the code to run well on both a Pilot and a PocketPC, for example, it's going to have to be somewhat different.. and if you're building a native build for each target anyway then why use Java?

    That's one of the reasons Java is doing so well in the server market - the "write once run anywhere" part is really useful, and there aren't really any native GUI features or hardware aspects of the local system that the software needs to exploit; to a developer, pretty much any web server is conceptually the same (and if there isn't enough RAM, the sysadmin can add more, and if it's too slow, well, upgrade the box).

    When you're talking about devices as diverse (in CPU speed, RAM, input methods, IO, etc) as handhelds, it's a different story.

    For example, in my Java applet if I want to read whether or not the button on the top left corner of the device is pushed in or not, how do I do that? And if I do it so it works on my iPaq, will that same code "write once run anywhere" on the Clie? What button will provide the same input? Will I be able to use the jog dial of the Clie? I don't know the answer to that, but I expect not..

    I don't see a lot of desktop Java applications, and the ones that I do see are generally slower and more, um, clunky, than the stuff written natively. And slower and more clunky is the last thing you want on a handheld.

    - Steve

    1. Re:Why? by Carey · · Score: 1
      The Mobile Information Device Profile has been developed to address these concerns. (MIDP APIs).


      Using these tools, the same application can be written to any device that has a profile. If the handheld has a different interface or implements different network protocols, developers can just change the relevant portion of their application to conform.



      The same idea is also being used for games across different systems (PC, Playstation, etc.) so that games can be written in Java without worrying about the different implementations.

    2. Re:Why? by version5 · · Score: 1
      I think the write-once properties of Java are still very useful in a handheld situation. Sure, in order to take advantage of native methods you are going to have to write some native DLLs to call from Java (example: is this button pushed in or not?). Are you saying that writing a few extra native modules to take advantage of the particularities of each handheld you are targetting is the same as trying to write a cross platform application for several handhelds, each with a different set of libraries?

      I'm not sure how it's implemented in J2ME, but you could handle differences in hardware user interface by loading in classes that dynamically bind event handlers to the hardware. Its also possible that the J2ME provides a framework for this, analogous to Swing's Pluggable Look and Feel (PLAF).

      As handhelds become more powerful and come equipped with more space, Java will become an increasingly attractive option. Part of the reason for this is that consumers really like interoperability. They like the fact that their friend can call them up and say, "Hey, you gotta try this cool new bread I found!" and they can go out and buy it and its 100% compatible with their toaster. Despite 1000s of kinds of breads and 1000s of brands of toaster, they all seem to work together fine. On a computing level, this requires a layer of abstraction. There may be some performance issues to sort out right now, but we are still in the beginning stages of handhelds.

      (I know I'm nitpicking, but "Java applets" are subclasses of objects of the Applet class and only run on web browsers. They aren't the same as regular applications.)

      --

      "It's Dot Com!"

  23. Dude, this is your opportunity! by Oink.NET · · Score: 2, Funny
    It seems like a great deal of effort has been used in getting Java on these platforms, but nothing's really utilizing it.

    Hey, this is no time to wimp out because nobody else has pitched in with a worthwhile product yet... you've got the first mover advantage as the dot-bomb people called it, similar to First Post here on Slashdot. Sure, you might get modded down, but it's exhilarating while it lasts, eh?

    note: irony intended

    1. Re:Dude, this is your opportunity! by Anonymous Coward · · Score: 0

      Java, pfffft... Use a real programming language.

    2. Re:Dude, this is your opportunity! by Anonymous Coward · · Score: 0

      you must be a Visual Basic developer ;-)

  24. J2ME JVMs by Anonymous Coward · · Score: 0

    Our company did some development for J2ME - it looked at the different options available ( including waba, superwaba, etc). The problem with these is that they all need a separate package in order to run, and are often slow.

    The solution, albeit non-open-source, is a product called JBed. It is a J2ME MIPD IDE, and compiles into palm native format. It actually runs off of a tiny, hotspot-like jvm, which means that after you run the application for the first time, it is as fast as a normal C application.

  25. Coming soon to a device near you by ciaohound · · Score: 2, Interesting

    I work for a company that started with a wireless thick client app for the Palm with Novatel's CDPD modem. It was one of the first of its kind and had some success. Being a Palm app it was written in c.

    Then along came the RIM Blackberry devices, so we wrote a client for it. Naturally, that was in C++.

    Then along came the iPaq with the expansion jacket and CDPD card. Naturally, we just had to write a client for that. Oh and guess what, new code base.

    It's a pain for our developers to have all those platforms, and what we see happening is that our business people are saying they can only afford to develop for the most popular platform, which for this app is the RIM.

    RIM is really playing up the use of Java for such apps on its next device. We're doing other apps on the Sharp Zaurus, not all in Java, but at least it is an option and the processing power is sufficient to run at a decent speed. It is quite possible that very soon, all our thick client development will be done in Java.

    --
    Oh, yeah, it's not easy to pad these out to 120 characters.
    1. Re:Coming soon to a device near you by vlangber · · Score: 1

      You should consider Amiga Anywhere.. It let's you run you applications oin different devices without changing the code.. And it's very fast..

      See www.amiga.com

      Vidar

    2. Re:Coming soon to a device near you by deanj · · Score: 1

      They really need to rename it from "Amiga" to something people are going to respect. I was heavily into the Amiga from the very beginning, and finally gave it up about 7 years ago. What was the Amiga before is not the Amiga now.

  26. No porting necessary! by SashaM · · Score: 2, Interesting

    We've developed a very fast map displaying application (the map is rendered on the client, with antialiasing, so it looks really well, and the amount of data to transfer to the client is very small), originally meant for the web, but now we've been given the task of implementing it for PDAs. While we plan a whole different architecture for the lower end PDAs (Palms etc.), we found that the only things we needed to do to port the application to PDAs such as the iPAQ, Zaurus or other high end (16MB+, 200Mhz+) devices was to improve the performance slightly and design a new user interface to fit the small screen/resolution and to be usable without a keyboard.

    We didn't need to change one line of code besides those two changes because our application was originally an applet written for the web, so it was JDK1.1 compatible and PersonalJava (what runs on most mid to high end PDAs) is almost completely compatible with JDK1.1.

    I'm also planning to port my pet project (see my URL) to run on PDAs and all I need is to rewrite the UI a bit. Java is great - who said platform independence was a dream promised but not delivered?

  27. No JINI support, floating point numbers etc. by twoshortplanks · · Score: 1
    The trouble with the KVM (aka j2me, the Java platform for Palm Pilots et al) is that it's a really really limited platform. Doing anything even remotely complicated is difficult.

    It's not the same Java you get in your browser. It's upwards compatible, meaning stuff you can run on your Palm you can run on a normal Java machine but not the other way round.

    You don't have the windowing system. You don't have all the nice GUI stuff - you have to write that yourself. Now you have to do it on a platform that has no libraries for drawing filled ploygons. Hell, you don't even have floating point numbers or no direct access to the screen - makes it a little hard to draw stuff!

    Java may take off some of the learning curve here but there's still a lot of pretty hard core stuff you have to do to program an app - it's not just a matter of using your visual editor anymore - and your existing Java skills are not going to be enough.

    --
    -- Sorry, I can't think of anything funny to say here.
    1. Re:No JINI support, floating point numbers etc. by deanj · · Score: 1

      No Jini support isn't strictly true. I've done apps using the Surrogate Host Architecture stuff in Jini, and it works fine.

    2. Re:No JINI support, floating point numbers etc. by twoshortplanks · · Score: 1

      I thought you needed RMI to do JINI, and from what I remember the KVM didn't have it.

      Is the Surrogate Host Architecture some kind of proxying system where by the KVM connects (via some other means) to a normal Java machine that 'speaks' JINI, or is it that an add on system for the j2me where by you add JINI to it.

      --
      -- Sorry, I can't think of anything funny to say here.
    3. Re:No JINI support, floating point numbers etc. by Tom+Rini · · Score: 1

      I've been playing with an older version of the KVM on my Visor, and for me the biggest problem has been that it's a battery hog. Playing with the 'Many Balls' demo for a few minutes will take a noticble chunk out of the battery.

    4. Re:No JINI support, floating point numbers etc. by deanj · · Score: 1
      Yes, that's basically it.

      The surrogate host stuff works like this:

      There's a protocol that you implement to locate a machine running a Surrogate Host. (This can either be done via multicast or unicast, under the TCP/IP implementation). Once it's located, the device sends a JAR file to the Surrogate Host, which opens the JAR file and runs the code in there. That code registers itself with the Jini network, and has a way (that you decide) to communicate back with the device. It looks like a regular Jini service to the lookup services and so forth. The device code can be implemented in any language. There's no RMI involved in the communication between the device and the Surrogate Host. It just has to get a way to get the JAR file over to the host. There's a spec for TCP/IP, and many other specs underdevelopment (USB, etc).

      I did this on a Palm device; others have whipped up stuff that work on smart cards and even Motorola phones. It's pretty cool.

  28. Blackberry by NoseyNick · · Score: 3, Interesting

    The Blackbrry wireless email gadgets in NA are C/C++ based, but the European ones (and the one slashdot showed recently with the headphone) are java based, the "OS" is a J2ME VM, all the apps (including email, address book, even the phone) are java, and there's a fair movement of 3rd-party developers writing stuff for it too.

    --
    Nick Waterman, Sr Tech Director, #include <stddisclaimer>
  29. Something using it?!? by Anonymous Coward · · Score: 0

    I removed Java from my machine for since almost last year. And to be honest, the only place where I am prompted to install it is within my web browser.

    And you bet I wont install it just to see those stupid ad banners!

    Conclusion: After more than 6 years now in production, Java miserably failed to deploy.

    And by the way, for bashers, I work for a company developing a full-featured Java application (among other things).

  30. JXTA by tunabomber · · Score: 1

    JXTA is an open networking protocol whose development is being supported by Sun Microsystems. It is designed to bring peer-to-peer and web service functionality to anything from a handheld to a server. There are several reference implementations, including one for J2SE that can run on any handheld that supports a J2SE VM (iPaq, Yopy), and there is one for J2ME, which works on a number of Java-enabled cell phones and light PDA's. A Java 1.1.8 port also allows JXTA to be used on some of the Palm PDA's. A C reference implementation that uses the Apache portable socket library is also in the works.

    --

    pi = 3.141592653589793helpimtrappedinauniversefactory71 ...
  31. Re:I can't stand... by Jennifer+E.+Elaan · · Score: 1
    Check out FORTH. Now there's a clean language. Unfortunately, it's as hard as programming backwards in assembly. Fortunately, it's extremely fast and dynamically compiled. Dynamic compilation is a tremendous advantage, one that Adobe knows all about (comparing PostScript and FORTH is almost funny, they're so similar in many ways).

    Then again, maybe I'm biased, seeing as how I've written a FORTH code generator, several FORTH translators and designed a CPU to natively run FORTH instructions (at the gate level, sooner or later I may build one in TTL for fun).

  32. Java on linux handhelds by nowt · · Score: 4, Informative

    Try here for more information on java for strongarm-based handhelds & pdas running linux.

    --
    A strange game. The only winning move is not to play. How about a nice game of chess? - Joshua (Wargames)
    1. Re:Java on linux handhelds by MrBandersnatch · · Score: 1

      No mention of Jeode or links to personalJava - not ver comprehensive but handy :)

  33. Re:Is this the PC circa 1985? by bubbha · · Score: 2, Insightful
    I think this discussion illustrates the effect of IBM opening up the PC architecture. Even then, I still remember the TI PC, the tandy 2000, etc. They had incompatible graphics and sound etc. and writing software that ran on all of them was pretty difficult and expensive.

    Around 1989 I started working with Smalltalk 80. It had a IDE, robust object model for application development, and could be deployed on MSDOS (with a mouse), Windows, Macintosh, Unix (Sun, Apollo, etc)

    If history had been a little different, Smalltalk could have enabled us to maintain more hardware and OS diversity than we have now. I wonder how these hand held devices will go? .

    --
    I want to be alone with the sandwich
  34. I work for a handlheld company by Anonymous Coward · · Score: 0

    And a HIGH VOLUME hand held consumer electronics company at that.

    The fundimental problem is the JVM size. Some of them are 3 to 4MBYTES.

    If you are going to "market" a handheld with Java as a baseline to develop for then you've got a problem. You cannot trim down the JVM to something smaller - ie: They are not modulure.

    It is like making a smaller glibc. You cannot split up 'glibc' to make it smaller, it is not practicle. You know what functions your app needs from glibc, you can't tell what functions I need. The only solution is to install the entire HUGE thing.

    Until recently, nobody really has ever had enough space (ie: RAM/FLASH) on the device to make it a doable thing.

    Zarus and iPAQ is close, but they are $400 to $600 . By the time you spend that much, you can spend a bit more and get a ruggidized real-PC.

    Handhelds like Zarus & iPAQ have "geek factor" businesses need something that is durable (ie: Rugged) if you have the money to spend on an iPaq, you have another $400 to puchase a ruggedized pc. It's cheaper - they don't break that often.

    Besides, once the platform is out there it takes a year or two to fully scale out various applications through a large enterprise.

    I'd give another year.

    1. Re:I work for a handlheld company by Chris+Z.+Wintrowski · · Score: 1
      ...The fundimental problem is the JVM size. Some of them are 3 to 4MBYTES....

      What a load of old rubbish!

      Go read this. Perhaps someone should reassess your position at whatever handheld company you claim to hold a position at.

      --
      - Chris Z. Wintrowski -
      [ Site ]
  35. Not quite ready on the Palm by SirAnodos · · Score: 2, Interesting

    We have developed an order placing app for the Palm (mostly for use on Symbol devices as they have built in scanners). We did it all in C. We are mostly a Java shop, and it would have been extremely convenient to use Java as we could have reused a ton of code. However, when we looked into Java, it just wasn't ready yet on the Palm. The top requirement for our app to be successful in its target market:
    Fast. It had to be extremely responsive, and extremely fast. It should be fast enough that the end user doesn't even think about the speed. If the user ever becomes concious of the speed, then we lose. This includes the time it takes to enter/leave the app, and operations within the app.
    The goal was an app that used a built in database that could manage over 10,000 "items". We developed an entire relational database for the Palm, including SQL parsing and support! Java just wasn't able to handle this on a Palm. Too much overhead. When looking at the various solutions, we kept running into various issues with each VM. One took too long to start. Another did not use the native Palm UI (which was also a requirement). Another did not offer enough support for the device, requiring us to mod it up to get access to the parts of the OS we needed and the level of Java compatibility we needed. And so on... it ended up being easier to code it in C. For us, the best solution would have been a Java platform with at least 90% code compatibility with Java Standard Edition that we could precompile into native code for the target device. Jump was the best thing in this regard, but it just didn't have enough functionality and it ended up taking less time to code it all in C than to mod Jump.

  36. yes. you're right! by Anonymous Coward · · Score: 0

    Read my comment on QuickBooks2002Pro, the Java app that blows goats.

    If it was a server app, it would be OK. It's an end user app, and Intuit has no idea what's on the box running the accounting.

    I support end users, the first thing I do is turn of Java, ActiveScrap, WinblozeMe Scripting Host, and other assorted troublemakers.

    Java on server, well maybe. Java on the client, NEVER.

  37. Surrogate Architecture by AndyMouse+GoHard · · Score: 1

    There's a great project hosted at www.jini.org called Surrogate which basically provides an elegant mechanism for non-java or small java devices to connect and interact with Jini networks.

    I'm heavily involved in using this at my company and we've used it with J2ME phones and Blackberries, and KVM pdas with great success.

    Others have pointed this out but the cross platform nature is great. Creating an application for one device that works on others is great - saves time and money. Of course, you lose some capabilities because you abstract to a higher level.

    So, I guess to answer your question: Yes, this stuff is being used, and used in unique and clever ways by a lot of people.

    Bill

    --
    Upon seeing the box was too small, Schrodinger's Elephant breathed a sigh of relief.
  38. Why not native compiled Java? by PRR · · Score: 1

    Why not just natively compile java source down to native for maximum speed and memory efficiency? (Kinda like what GCJ or JET or JOVE does) Yes this will require compilers for each platform, but each VM/JIT is essentially a compiler already! What difference does it make if the code is compiled JIT or ahead-of-time? Why must Java be so obsessed with a portable bytecode which will work on multiple VMs when the language is already well-tweaked for portability and would probably compile correctly across multiple native compilers? This would end a lot of the complaints of Java being slow and a memory hog.

    1. Re:Why not native compiled Java? by Anonymous Coward · · Score: 0

      Compiling to native doesn't necessarily make it use less memory or make it faster. At least that has been the case in my testing. Although it's not the best example of a native compiler, try playing with GCJ a little. You'll soon learn...

      Java isn't the greatest language anyway and will soon be phased out in favor of modern functional languages (O'Caml, Haskell, SML, etc.). The current crop of functional languages offer byte-code or native compilation. Usually the native code runs at near C/C++ speed and is getting better every day. If you have been programming in imperative languages (C/C++, Java, Basic, etc.) for a long time then using a functional language will be a bit of a shock. However, once you get used to it and the features provided by functional programming, you won't want to go back.

    2. Re:Why not native compiled Java? by Anonymous Coward · · Score: 0

      and will soon be phased out in favor of modern functional languages

      Man, can you whistle in the dark any louder? Functional language will NEVER overtake imperative language. Never.

      Usually the native code runs at near C/C++ speed and is getting better every day.

      Uh, no. And Java runs at "near" C/C++ speeds, right? Never mind that Java is usually 10 times slower on non-toy apps. This will NEVER happen, either. The same claims were made 20 years ago, by the way. "Any day now! We're getting a handle on the speed!"

    3. Re:Why not native compiled Java? by Anonymous Coward · · Score: 0
      Man, can you whistle in the dark any louder? Functional language will NEVER overtake imperative language. Never.

      What makes you say that? Reasons?

      The same claims were made 20 years ago, by the way. "Any day now! We're getting a handle on the speed!"

      I used to think like you. It's happening.

    4. Re:Why not native compiled Java? by Anonymous Coward · · Score: 0

      Oh, almost forgot.

      Most modern functional languages have incorporated ideas from imperative programming allowing equivalent speeds where needed but you get all the benefits of using functional programming techniques.

    5. Re:Why not native compiled Java? by Anonymous Coward · · Score: 0

      What makes you say that? Reasons?

      Couple reasons:

      a) Functional language naturally fit only a few specific problems, and it's not enough of an advantage.

      b) Functional languages don't naturally fit how human's think. Only few mathematically-oriented type people naturally like these languages. Of course, being geeks they think that everyone thinks like them, and everyone else must be stupid. By the way, yes I am a mathematical type thinker who happens to like functional languages, but I'm also not so insulated that I think everyone thinks like me.

      c) The performance problems will NEVER be solved. Oh, they'll add imperative language features to try and improve performance, but it's not a functional language anymore then, is it?

      The pointy-head ivory-tower types will never give up, however. Of course, these are the same people who push the myth of the "magic compiler" that produces code as good as humans. "Compilers are so good nowadays that it's impossible for humans to write code as good". Yeah, and human-level A.I. is right around the corner, too.

      Trust me: Functional languages will always have their little supporters, but they will never achieve mainstream acceptance. Never.

    6. Re:Why not native compiled Java? by benwb · · Score: 2

      Because jitting the code and doing runtime optimizations is faster than the static analysis gcj provides? The speed problems with java have nothing to do with the jit. Speed is lost because of the runtime safety checks for null pointers, array bounds, and dynamic casting, inefficient garbage collection on almost every major implementation, and a language definition that makes (nearly) every method call indirectly.

    7. Re:Why not native compiled Java? by Anonymous Coward · · Score: 0
      a) Functional language naturally fit only a few specific problems, and it's not enough of an advantage.


      You said you do functional programming but that sounds like a statement from someone who never has. I've seen them used for everything from databases to 3D modellers, the only thing I've never seen done in a functional language is an OS. They make managing large projects so much easier.


      b) Functional languages don't naturally fit how human's think.


      Honestly, I used to think like you. I am not a very mathematical person. I don't enjoy math, and I've been imperative programming for more than 20 years. I used to hate the thought of using a functional language until I forced myself to learn how, which really was a matter of unlearning all my imperative processes. Once I learned how they worked, I was in love. I'm still not a logical/math type person, but for doing programming the functional languages are better. I would argue that functional languages are more like how humans think when trying to solve problems with computers.


      c) The performance problems will NEVER be solved.


      I don't see this at all. I also love Perl, Ruby, and Python. They work for what they do and are a joy to program in although they don't run very fast. They allow you to develop applications very quickly. However, I've found I can get the nice high-level features and quick development cycle of those languages but at a runtime speed of C code by using a functional language. It's the best of both worlds. A perfect balance of quick development and fast code.


      ...they will never achieve mainstream acceptance. Never.


      I hope I can quote you on this.

    8. Re:Why not native compiled Java? by Bodrius · · Score: 2

      Java isn't the greatest language anyway and will soon be phased out in favor of modern functional languages (O'Caml, Haskell, SML, etc.)Java isn't the greatest language anyway and will soon be phased out in favor of modern functional languages (O'Caml, Haskell, SML, etc.)
      Modern as in LISP?
      I'm not trying to point out chronology (ML is fairly new, LISP is fairly old). I mean that, if I'm not mistaken, LISP has had most of that functionality for decades, is better proven as a practical language, has a very rich library and an active community... and yet, imperative languages rule the world (LISP is not the phaser, it is the phasee).
      I love SML; although I'm fairly new at it and have trouble thinking about how to use it in some applications, for most mathematical functions and list operations there's really no comparison in clarity.
      But I'm really skeptical about these languages displacing imperative programming simply because there is no need for them to do that. They don't solve any problem that is not more easily solved by integrating some of their features into imperative programming (recursion, garbage collection, etc).
      People are happy with C-like languages, and imperative prog. has become the euclidean geometry of computer science: it's the layman's world, and alternatives are constrained to very small and specialized circles, with new benefits and discoveries percolating down slowly.

      --
      Freedom is the freedom to say 2+2=4, everything else follows...
    9. Re:Why not native compiled Java? by Anonymous Coward · · Score: 0

      Regarding LISP. At the time, most programming was done based on how the hardware worked, it was the easiest to understand because that's the way the hardware worked. The problems that were being solved at the time were relatively simple and we didn't need to manage more than a little complexity.

      I consider LISP to be a first generation (or close) functional language. Much like the precusors to C and C++. "Modern" functional languages are based on what had been learned from LISP at the time (I say "modern" because so many languages we use today are based on old ideas).

      Like I posted in another message, I've seen functional languages used in everything from high-performance databases, to 3D modellers, to games. And they worked very well, creating clean crash-free code very quickly.

      If you consider the history of programming languages you'll see a trend. As we become more sophisticated we have created more and more complex software. We are slowly learning ways to cope with the complexity. At first they didn't even have subroutines, eventually they were added, then modules, then objects, etc. This is a trail of modularization and every modern language is using those techniques to help manage complexity. The thing is, every language is really just adding functional techniques to do this. Eventually functional languages will dominate because that will be the only way to manage hyper-complex programs in the future. Although this is a real plus for functional languages, that's not the whole story. Functional languages offer so much more.

      People are not happy with C/C++ once they start using something that works better they don't want to go back (except for speed). Functional languages offer high-level functionality plus speed.

      This post is interesting.

    10. Re:Why not native compiled Java? by Anonymous Coward · · Score: 0

      Regarding LISP. At the time, most programming was done based on how the hardware worked, it was the easiest to understand because that's the way the hardware worked. The problems that were being solved at the time were relatively simple and we didn't need to manage more than a little complexity.

      I ment that is the reason why LISP was not used. It did not work like the hardware.

    11. Re:Why not native compiled Java? by Vector7 · · Score: 1

      I ment that is the reason why LISP was not used. It did not work like the hardware.

      Which is a damn shame. I consider this a deficiency of modern hardware really - in the old days there were dedicated LISP machines with CPUs designed for LISP, and they were things of beauty. Most of the 'modern' languages that are coming into vogue - Java, Python, even Perl - have adopted some subset of LISP's most powerful features, particularly garbage collection and dynamic typing (although maybe not in Java's case). The major feature lost today is a tagged memory architecture, where every word in memory has a few bits set aside to say what type of object is stored there. This would go a long way toward efficiently implementing a "scripting" language like Python, and brings a relieving level of sanity to the table in large object oriented systems (as are the fashion today). Lisp's type system is inherently "object-oriented" without making primitive types (such as integers, characters, etc) feel like second-class citizens (as Java does) - everything is an object, just not necessarily an instance of a class.

      But yes, as someone who programs in Common LISP, I occasionally lament how far away from the hardware I am programming. But when I get the same code written with a fraction of the time it would take to write in C (or in the same amount of time, but relatively free of bugs), I get over it, and just wish that we could have CPUs that supported a post 1970s programming style rather than spending 50 million transistors squeezing performance out of the horrid x86 ISA.

      Lisp compilers these days do an impressive job of rivalling C performance, and the overhead you pay is still worth it for what you get from the environment. After shuddering at the sluggishness of Java applications or that fine example of modern C++ over-engineering, Mozilla, I've no doubt that I can write faster, better software in Common Lisp.

  39. Java is A Pig, Thats Why by quakeaddict · · Score: 1, Flamebait

    As I look here at my Handspring Visor, the Java Runtime is 585K....just so I can get my apps started?

    Then there is the issue of speed. Java is slow on my Visor Prism.

    From a development point of view, its nice that I can program a button click and it will work OK on a bunch of different devices....but from a users point of view

    1) It takes up alot of space
    2) It is noticeably slower than all the other non-java apps.

    --
    I'm still working on a clever footer.
  40. You Assume... by AndyMouse+GoHard · · Score: 1

    That all applications must take advantage of the native abilities.

    In fact many don't need these. Very useful applications can and are being written. We work at a higher level, where we don't necessarily know where the application will be run - or we don't want to limit the possible uses.

    Bill

    --
    Upon seeing the box was too small, Schrodinger's Elephant breathed a sigh of relief.
    1. Re:You Assume... by EpsCylonB · · Score: 1

      Some would argue that by not writing for the hardware natively you are limiting it's uses and how powerful the program could be.

    2. Re:You Assume... by AndyMouse+GoHard · · Score: 1

      Abstracting up a layer never limits you in a certain situation to delve back down. I was commenting on the limitations of where and when the application can be used.

      Bill

      --
      Upon seeing the box was too small, Schrodinger's Elephant breathed a sigh of relief.
  41. Why not native compiled Java? by PRR · · Score: 1

    (I posted this in another thread) Why not just natively compile java source down to native for maximum speed and memory efficiency? (Kinda like what GCJ or JET or JOVE does) Yes this will require compilers for each platform, but each VM/JIT is essentially a compiler already! What difference does it make if the code is compiled JIT or ahead-of-time? Why must Java be so obsessed with a portable bytecode which will work on multiple VMs when the language is already well-tweaked for portability and would probably compile correctly across multiple native compilers? This would end a lot of the complaints of Java being slow and a memory hog.

  42. We were forced back to Linux by PyroJimmy · · Score: 5, Interesting

    We've had a couple of people in my lab looking into handheld devices with Java solutions. The fact is, many of the devices and OS's that claim to support Java only support a subset of the packages.

    Since we wanted to use the Corba classes in Java, many of the options we looked at simply didn't have that implemented. And few (if any) devices actually support Java 2 1.3.x, which we needed to use the Swing classes.

    In the end (and I know the Slashdot crowd will love to hear this), we snagged an iPaq 3670 and installed ARM Linux on it, which allowed us to install Blackdown's Java-Linux runtime environment. Beautiful.

  43. But it uses XML;) by AndyMouse+GoHard · · Score: 1

    Which is not so great when smaller devices have to spend cycles on parsing this. It's also extremely inefficient for transporting across the slower networks to small devices like cell-phones.

    Not that I think JXTA is bad, the ideas are great and obviously people think highly of p2p as a next big thing but I don't like how JXTA defines "the bits on the wire" so to speak.

    Bill

    --
    Upon seeing the box was too small, Schrodinger's Elephant breathed a sigh of relief.
  44. Well, there's the AmigaDE Player by Anonymous Coward · · Score: 1, Interesting
    Don't think it's been mentioned, and to be honest I know only a little about it, but the AmigaDE (now Amiga-Anywhere) is supposed to be on the Sharp Zaurus thing. It has a 2D and 3D API, and supports Java, but it is actually some other Java-a-like. It looks pretty cool, and there's some games available.

    Anyway, it might be useful to check out.

  45. BlackBerry by Mike+McTernan · · Score: 2, Interesting

    The Blackberry from RIM is a most impressive Java based handheld, although I suspect that the reasons for Java being used on this handheld were to reduce the time and cost of developing the UI, and not particularly to allow other developers to add extra code and features to it.

    In fact, I would suspect that the main reason for Java being suported by handhelds at the moment is to allow rapid development to robust components for the device as opposed to enabling every man and his dog to roll their own applets/applications for the device - something that could lead to broken devices and support nightmare if not carefully though about.

    --
    -- Mike
  46. From experience... by Anonymous Coward · · Score: 1, Informative
    I used to work at a company developing wireless applications and solutions. Back when wireless data was big hype december 99, there was a lot of confusion about which kvm or java technology was better. 3 years later, things are finally starting to become more standardized. I know CDMA better than GSM or TDMA, so I'll stick to what I know.

    The early CDMA reference boards came with either 1 or 2 megs of memory total. The CPU was x86 (might be wrong, but I think it was 286) and memory management was a bitch. For high end phones, manufacturers had to write their own software or license it from a third party. Most of them used paging to swap memory back and forth due to 64K thing on 286, 386 cpus. In late 99, qualcomm switched from x86 to RISC based chip for the reference boards. Immediately the memory configuration options increased. If I remember correctly, it was 1, 2, 4, 6 and 8 meg boards. The more advanced phones with built in PIM and full WAP browser from Open Wave used 4 or 6 meg boards.

    Even with 4megs of memory, there were big battles over which division/application got how much memory. For example, a built in POP/IMAP email client on a CDMA phone used about 22-25K. Most of the phones using the older x86 reference board used the Open Wave microbrowser, which used the wap gateway to render the pages. It was only when manufacturers changed to Arm reference boards that full wap browsers were used. In 99/00, Palm network was pretty unreliable and coverage was spotty. Today it's much better, but transfer rate is really slow. The wireless world honestly still doesn't know where it's going.

    Even though others may tell you otherwise, here are the reasons:

    1. wireless interfaces are still very difficult to enter data rapidly
    2. carriers refuse to deploy network-based location determination
    3. w/o location determination, wireless is practically useless
    4. w/o implicit and explicit personalization in the wireless world, it's a waste of time
    5. w/o useful data that's geocode (long/lat), there's no point
    6. w/o an affordable pricing plan, people aren't going to pay per minute
    7. there aren't any wireless games or applications that have indisputable value
    8. the carriers still want to charge something like 1/10th of a cent per location request
    9. the carriers want to be the broker and get a cut of every transaction
    10. very few people understand the power of location intelligence in wireless environment

    These are just some of the reasons, there are more. Having developed and used location intelligent applications on WAP phones, it is a great tool. Without the location part, who cares. Things like realtime mapping applications on mobile devices are great. We only had prototypes, but even with just prototypes, it was really useful.

  47. Java is great and all... by Anonymous Coward · · Score: 0

    But you need to work in a more stable environment.

    Now that the country is officially out of a recession, its time to whore your skills out to the highest bidder, the way god(r) intended us to live.

  48. Hiptop by Danger, Inc. uses Java by Anonymous Coward · · Score: 0

    The Hiptop by Danger, Inc. uses a JVM to power their wireless, always-on PDA.

    Danger, Inc.

    Various articles about the device can be found via Google; TechTV had a reasonable review of the device.

    It isn't vaporware, it just isn't out yet.

  49. Why�use�Java�at�All? by rit · · Score: 0

    I'm¦sorry,¦but¦one¦of¦the¦biggest¦reasons¦is¦true¦ embedded¦systems¦programming¦(and¦I'm¦of¦the¦opini on¦that¦many¦embedded¦systems¦concepts¦apply¦to¦sm all¦systems¦like¦Palm¦and¦the¦Cell¦phone¦platforms )¦requires¦fine¦tuned¦memory¦management,¦etc.

    I've¦done¦some¦PalmOS¦programming¦in¦both¦Java¦a nd ¦with¦the¦gcc¦tools.¦¦I¦would¦MUCH¦rather¦do¦it¦in ¦c.¦¦I¦do¦professional¦Java¦programming¦as¦well¦as ¦C¦&¦Perl¦and¦I¦find¦the¦so-called¦'memory¦managem ent'¦that¦Java¦employs¦to¦be¦*abhorrent*¦(I¦find¦t hat¦when¦you¦do¦proper¦variable¦scoping,¦etc¦that¦ Perl¦has¦a¦pretty¦solid¦memory¦management¦system). ¦¦¦When¦you¦are¦talking¦about¦modern¦Desktop¦and¦S erver¦platforms¦where¦memory¦is¦cheap¦and¦abundant ,¦this¦isn't¦as¦big¦a¦deal¦(Although¦I¦still¦disli ke¦it);¦if¦your¦app¦eats¦up¦memory¦just¦throw¦more ¦at¦it.¦¦When¦you¦are¦talking¦about¦a¦system¦that¦ has¦a¦very¦finite¦amount¦of¦memory,¦with¦no¦way¦to ¦upgrade¦it,¦being¦able¦to¦fine¦tune¦memory¦usage¦ is¦KEY.

    Do¦you¦really¦want¦to¦leave¦it¦up¦to¦Java¦to¦all oc ate¦memory¦to¦a¦varaible¦that¦you¦KNOW¦is¦never¦go ing¦to¦use¦more¦than¦8¦bytes?¦¦Do¦you¦trust¦it?¦¦P ersonally,¦I¦trust¦char¦*myString1¦=¦malloc(8)¦alo t¦more.¦¦I¦know¦exactly¦how¦much¦memory¦is¦being¦a llocated¦and¦to¦what.¦¦Java¦might¦allocate¦8¦bytes ,¦or¦on¦a¦whim¦it¦might¦allocate¦80.¦¦Who¦knows?

    Then¦you¦must¦address¦the¦issue¦of¦the¦JVM.¦¦It' s¦ high¦overhead,¦slow¦and¦unwieldy.¦¦I¦hated¦way¦it¦ behaved¦on¦my¦palm¦and¦it¦is¦one¦of¦the¦reasons¦I¦ gave¦up¦on¦J2ME¦(Java¦2¦Mobile¦Edition).

    There¦are¦alot¦more¦things¦one¦could¦address¦but ¦I ¦think¦these¦push¦the¦primary¦points.

    1. Re:Why�use�Java�at�All? by AndyMouse+GoHard · · Score: 1

      Yeah, most times I have no problem leaving memory allocation up to the JVM.

      Don't know why it didn't work out for you, perhaps the application wasn't best suited for Java.

      Bill

      --
      Upon seeing the box was too small, Schrodinger's Elephant breathed a sigh of relief.
  50. Re:WhyuseJavaatAll by rit · · Score: 1

    Combination¦of¦new¦Galeon¦and¦my¦laptop¦seems¦to¦b e¦doing¦weird¦things¦to¦spaces¦in¦my¦posts...

  51. emulating 64b mach. from 32 (or fewer one) - why? by Anonymous Coward · · Score: 1, Interesting

    One great thing about the JVM: no worries about how big an int is now is there? It is not like that confusing C or C++ or asm stuff is it? Much easier for the programmer.

    Have you noticed the number of posts here (and other times java is a topic of discussion) wherein the poster mentions "I am not much of a developer" or "I do not have a lot of experience with other development environments". This should be a tip off that a lot are posts from folks fresh out of college or some other industry who have been suckered into a startup where management (not an experienced small device systems programmer) decided to implement some new innovative bit of software in java.

    Just one of the many problems with java on any platform, but is particularly exacerbated on resource limited ones such as PDAs, is that the JVM is a software emulation of a 64 bit machine that does not exist (to this day the latest 64 bit Ultra-SPARC whizzbang XXX from Sun/T.I. does not fully implement the JVM instruction set. It implements instead the distinct SPARC instruction set). Have you any experience running a PDA virtual machine on an X86? Did you notice that keypad and other I/O seems slow? Did you notice that processing seems slow? That was dismissed as the inherent slowness of running an emulation of one machine on a machine whose native instruction set was not the same (perhaps you were emulating a dragonball or or motorola mXXX - but it was slow when run on the x86 emulator).

    Why then is it the case that folks cannot seem to make the connection that emulating a JVM on a processor that is not a Java Machine (virtual or hardware wise) is going to be intrinsically slow: instructions need to be translated, some need to be mapped to more than one instruction, fetches and stores take longer for 64 bit quantities when you can only do them 32 (or 16, or 8 for some of the embedded microprocessors that were all supposed to be java-fied by now) bits at a time, etc.. Note the mention of buzzword-in-time compilation. That is, rather than running a *.class file through a real pokey JVM you have a separate (and slow) step to prepare faster native execution code. Sure this helps speed up something that was originally writtin in java just a bit, but it does so at the expense of doing away with that cross platform JVM interpreter. Why not code in native instructions explicitly and squeeze performance out of your application? Why not code for minimal space? Why not code for maximum touchpad response time rather than having UTF-16 character strings bloating up every application that you try to write?

    Why did Sun and IBM drop development of the JavaOS? Where has the HotJava web broser gone? If big applications like that cannot be made to run reasonably efficiently what hope is there on resource constrained small computing platforms? Note that the history of Java includes a discussion of OAK and how it was intended for Toasters and Coffe pots. When was the last time you saw a toaster or coffe pot for sale from Sun Microsystems Inc. or one of its Oak or Java licensees? A: they never made it to market. It was just sales hype from the company that is trying to be the next best thing to Microsoft, only with a SysV unix base (Solaris).

  52. Another source of Java runtimes... by Anonymous Coward · · Score: 1, Informative

    ... is IBM. These are clean-room VMs and class libraries bundled with a development environment. See http://www.embedded.oti.com. They run on palms, iPaqs and blackberries, as well as on pcs, and most platforms support midp and cldc (J2ME certified) as well as a bunch of other configurations.

  53. Check out savaje by Anonymous Coward · · Score: 0

    Saveje. It might not be for the palm, but it's amazing on an iPaq.

  54. midp applications by Anonymous Coward · · Score: 0

    midlet.org has a huge list of midp applications (incl. links to vendors); most of them can be viewed in an emulator applet...

  55. Slow (from experience) by Jobe_br · · Score: 2

    I recently wanted to get into programming for the Palm handheld devices (using OS 3.5), so I set out to program the same application in C, C++, and Java. What I discovered was that with the tools available to me (GNU toolchain), the only language that seemed to fit the bill was C. Between C and C++ (converting my C code into a full OO implementation) my .prc size doubled (approximately). The execution of the code was also noticeably slower than the C equivalent. This on an application that was *quite* simple (basic nslookup functionality), with no integration with the built-in Palm apps (calendar, etc.) After completing the C++ port of the app, I decided not to try the Java port since it would inevitably be slower and possibly larger than its C++ counterpart (even if it was compiled for the Dragonball processor).

    At a recent conference in town, I had the opportunity to talk with someone from a local software engineering firm that had also done some experimental development on the Palm, targetting Java. They reported the results that I had feared: slow execution and unacceptably large .prc sizes.

    I think Java on handhelds has potential, but until either the processors get more oomph or the executable (byte-compiled or otherwise) for Java becomes a bit more optimized, I think developers wanting to build in significant functionality to their apps will still use C, the embedded world's darling language.

  56. oops, wrong link by Anonymous Coward · · Score: 0

    ooops, forgot the http. correct link: midlet.org

  57. RMI not necessary by AndyMouse+GoHard · · Score: 1

    Jini is a spec, of which the contributed Sun implementation uses RMI. There are other implementations that do not use RMI, since it is not required. Part of the beauty of Jini is that it is protocol neutral... you bind to the service at the last possible moment - the proxy. Services are defined by API, as with Java you can move the code around.

    Bill

    --
    Upon seeing the box was too small, Schrodinger's Elephant breathed a sigh of relief.
  58. Re:I can't stand... by rpeppe · · Score: 1, Offtopic
    Why? Its so incredibly clean, so much more so than any language I
    have seen (C++, etc).


    compared to C++ you're right, but java really isn't
    the clean language it's hyped up to be.


    for a nice clean language that fits in the embedded niche,
    you should check out Limbo, which
    is a genuinely clean language (designed by the same
    group that designed C).


    the crucial thing about Limbo, though, is that, unlike Java,
    it doesn't try to solve all portability problems in the language
    itself. The Inferno OS effortlessly solves all
    the problems that Java struggles over. It runs fast, packing
    lots of functionality into a small footprint (1MB RAM is sufficient
    to run significant GUI apps), and provides some extremely
    powerful primitives for composing distributed applications.


    we had a little distributed app that a colleague had
    knocked up over a couple of days (two files, 800 lines of code total).
    it implemented a "shared piece of paper" - i.e. all users
    see anything that anyone draws on the app.
    talking to someone that had tried to do a similar thing in
    Java on a PalmOS based device, they were amazed - they'd
    taken months to do the same thing, and it was slow, big,
    and didn't provide as much functionality.


    the real plus side is just how beautiful the environment
    is to program in. it gives you power and doesn't make you
    pay for it via huge and convoluted API interfaces.
    (and that's why it's fast and small too).

  59. this is my job by r00tarded · · Score: 1

    i work with J2ME day in day out. the best env for using it right now are the nextel i* series of phones. they can have full j2me with an IP based network (with a publically routable IP if you get the right plan).
    the drawbacks to this technology. its early. lots of bugs. the tools/ide's suck. [thats right motorola, im talking to you, your web based application loading tools suck. what happend when my or your net connections go down: no ability to load apps] the environments are very small and nobody really has the phones.

  60. See this lean and mean GPL game in Java for Palm by ondelette · · Score: 1

    It is cool, you can play on the web using an applet and you can download it on your palm as a native application (compiled through jump) or else you can run it just about everywhere as JITed bytecode (wince, palmos and so on).

    Sokoban

  61. Are kidding? by ondelette · · Score: 1

    This is very annoying, please stop that!

  62. MQSeries Everyplace provides an interesting lesson by gendal · · Score: 1

    Take a look at:

    http://www.ibm.com/software/ts/mqseries/everyplace

    This is a variant of the MQSeries enterprise
    messaging product aimed at pervasive devices.
    It is optimised for security and size (both
    in terms of message size and footprint
    on the device).

    The interesting observation is that although
    this is a fully Java-based implementation, IBM
    has produced a C-programming language version
    of MQe targetted at Palm devices (for example).

    In answer to the original poster's question,
    I would suggest that there is a market for
    Java-based applications on PDAs but if you want
    success on all platforms, you need to take into
    account the support for - and the performance of -
    Java on some of the lower-end machines and
    design your implementation to support a C version
    if customer demand requires it.

  63. Java-based software company? by Anonymous Coward · · Score: 0

    I hadn't realized AI had progressed to the point we could have entire companies built of software!

  64. Multiplayer java cellphone games in Japan by Anonymous Coward · · Score: 0

    Multiplayer quasi-game java apps running on cell phones are very popular in Japan. (Japan, even Korea are far ahead of the west in terms of exploiting cell phones).

    Do a web search...

  65. Swing works on JDK 1.1 by SashaM · · Score: 2, Interesting

    Swing 1.1.1 works beautifully under JDK1.1. See my URL for a JDK1.1 fully compatible application which uses Swing.

    There is a bug report on Sun's bug reporting database claiming that Swing doesn't work on PersonalJava because Swing checks for the existance of some security related class to find out whether it runs under 1.1 or 1.2 and PersonalJava is essentially 1.1 with 1.2 security. Despite this bug, I've seen small demo applications using swing running under PersonalJava.

    Note that all new iPAQs come with Insignia's Jeode JVM preinstalled.

  66. What everyone is missing... by privard · · Score: 1

    Put yourself in Nokia's, Ericsson's, or any other handset/wired PDA manufacturer's shoes. You want people to be able to develop great new applications for your devices, but at the same time, you don't want people's applications preventing your devices from functioning. In steps Java (J2ME), which offers you a great sandbox for those apps, free documentation on how to actually write these apps (which would've been costly and difficult to develop), as well as decent functionality through the few APIs that it supports. Furthermore, Java offers your developers a set platform for these apps. As long as the standards don't change, the same Java app will run across any new Java phones that you manufacture.

  67. SavaJE XE by SashaM · · Score: 2, Interesting

    we snagged an iPaq 3670 and installed ARM Linux

    What you should have done instead was install SavaJE XE on it, which is a Java operating system which fully supports Java 2 and runs much faster than any JVM that runs on top of an operating system.

  68. Re:Java slowish?? by ticklejw · · Score: 1

    I truly don't understand why people think Java is so incredibly slow. "A little slow-ish" IS just about right. If you are referring to applets in Netscape, that is a VERY bad example of Java. Have you not experienced an application written in Java in the last 2 years? Speed has significantly improved since Java 2 first came out...

    -J

    --
    "Software is like sex; it's better when it's free." -Linus Torvalds
  69. Espial does this by __aaaaxm1522 · · Score: 2
    See Espial's website. (disclaimer: I used to work for them). They do some neat stuff in Java, and target handhelds, PDAs, cell phones, etc... Their DeviceServer platform is nifty.

    You might also want to look at DeviceTop - it's a reference site for people doing just what you're talking about - developing and running Java apps on mobile devices. (again, sponsored by Espial and Sun, among others I believe)...

  70. Re:Is this the PC circa 1985? by RevAaron · · Score: 2

    It's funny you mention both handhelds and Smalltalk. I'm working on Dynapad, a PDA operating environment written in Squeak, a derivative of Smalltalk-80. I'm doing so mostly to make up for the pitiful state of handhelds, at least as far as I'm concerned. I want a system that works for me, not some toy.

    --

    Working toward a usable PDA environment in the spirit of Newton OS: Dynapad
  71. What about J# and the .NET CF by Anonymous Coward · · Score: 0

    Microsoft has been working on its own VM for quite some time now (I was looking for PocketPC development in VS.NET, and I came across this webpage:
    http://msdn.microsoft.com/vstudio/device /compactfx .asp )

    If you can deal with the Microsoft extensions, you can probably move your code to a PocketPC with J# and the .NET Compact Framework. I have no idea when this will be available, but being able to write PocketPC apps in VB.NET will mean an explosion in apps.

    Java is good if you like to program in Java. .NET is good if you don't like to port your program to another language.

    That's my take, and I'm sticking to it.

  72. Re:Java slowish?? by October_30th · · Score: 0, Interesting
    Have you not experienced an application written in Java

    Yeah, at work.

    Are you sure Java has gotten faster and it's not simply the hardware that's caught up with Java's performance hog.

    My main application at work, Matlab 6.x, has its front-end coded in Java. Otherwise it would be a nice IDE with an editor, debugger, file history trees and everything, but it is simply too slow for hardcore use on my five year old PII 300 MHz PC. I almost downgraded back to Matlab 5, but fortunately most of the windows could be disabled. The only remaining window, the command line interface, is sluggish in comparison to Matlab 5 but at least I can work with it. It still requires several hundreds of megabytes for the Java engine, though.

    --
    The owls are not what they seem
  73. Re:"No one's using it". Know why? by zipwow · · Score: 1
    I'm confused by your concerns on the palm, and how they differ from developing Java applications on any other platform. You say

    "If the device was inherently able to run Java, and I could just send out JAR files,"

    Okay, that would be nice, but your PC doesn't inherently run Java either.

    Then you continue to say

    "But if for any application I want to make I have to include a whole lot of junk that is just going to confuse them, that stinks."

    Again, this is *exactly* like installing a Java application for your PC customer. You need the VM first. Well-made installations for Java programs install the VM right along with everything else, and in fact, don't even have to 'confuse' the user by mentioning Java. This makes your comment of

    "Imagine the subliminal message that's sent out when you say 'In order to run my 100k program you need to download and install this 5 meg program.'"

    Equally as confusing. Is there something I'm missing about installing Palm applications that doesn't allow you to install the VM at the same time?

    I thought your question of "Why would Palm care" a good one,though. The only answer I can come up with is more languages supported == more developers == more applications == more versatility for their product. :/

    $.02

    Zipwow
    --
    I don't know which is more depressing, that 2/3 didn't care enough to vote, or that 1/2 of those that did are crazy.
  74. re: Java is slow-comments by mlk · · Score: 1

    Not when running on a machine with a Java-proc (i.e. a proccessor that can run Java byte code nativly, which quite a few embeded MIPS proccessors can now).
    Same with it's size, it does shrink quite a bit when it's only the base class libs.

    Mlk

    --
    Wow, I should not post when knackered.
  75. Re:I can't stand... by Anonymous Coward · · Score: 0

    inferno is not free and the code is unavailable. thanks but no thanks. i'll take a language i have a chance at using if the company goes outta business over a proprietary one any day.

  76. Re:"No one's using it". Know why? by Zurk · · Score: 1

    umm...palm applications arent installed. they're synced to the device as PRC files with one PRC per app. that means the JRE will have ot have a seperate PRC and your app will have one or more PRCs which the user loads manually and runs.
    thats the equivalent of installing the JDK on a PC *manually* and then installing the class files for the app *manually* and then running it from the command line while ensuring class paths are correct. A royal pain in the ass.

  77. It's right tools for the right job, duh! by redGiraffe · · Score: 1

    We've written a few apps that are in pilot at the moment for data capture on the palm. We started out using sun's J2ME, but found a few problems in the way it makes network connections and re-wrote our network app in IBM's J9, which allowed us access to the OS calls and is fast. Trouble is you have to use objects called 'Int16Ptr' and 'var.getShortAt(0)', which reminded me of a language I used to use.

    I thought of using C++ and kinda looked forward to get back into it, but the trouble I didn't enjoy the prospect of writting double the code and having to do triple the debugging.

    The thing with Java is you can develop faster, there is less debugging and you can share code accross platforms as long as its not GUI specific etc.

    Another delight was playing around on a wince device but needing to copy code accross from a linux box, we synched a hacked java ftp server accross using a MS box and could then ftp to the device via linux.

    There is a problem with spead, but it means you need to be creative and it really depends on who is going to use the app, our users have never touched a computer and don't have a spead expectation, its still a lot faster than all the paper work they would have to do.

  78. Superwaba doing it already by vik · · Score: 2

    I've only seen one reference to Waba here, and none to SuperWaba or EWE. These are both Waba/Java derivatives, with SuperWaba in particular being a practical development tool for the Palm. EWE is apparently a variant for the WinCE platform, but I've not been there.

    The maintainers of SuperWaba and EWE have got together and agreed on bridging code and hopefully eventual merging. Then once more code will run on Palm and WinCE platforms unchanged.

    Why go to all this trouble? Size & speed. Waba drops much of the crud that is irrelevant on PDA-sized devices, and has a very, very tight VM in terms of code size and speed. It is a Java subset, so if your app runs out of poke you can try switching it to real Java - if you have the hardware resources on the device. It even runs in a browser and there's a demo on the homepage.

    And yes, people are writing apps for it. There is even support software like app builders for those who don't use Jbuilder etc., tutorials, documentation yada yada.

    Oh, and the VM is Open Source.

    Vik :v)

  79. A Java SQL database for handhelds... by Anonymous Coward · · Score: 0

    ...is marketed by my company, PointBase under the name PointBase Micro edition. At about 60KB, we don't know of any other commercial product that matches this in speed, reliability and footprint.

    We also have a Synchronization solution that runs on handhelds and syncs data between our databases and Oracle as well as SQL Server.

    We have a lot of partners that offer apps for Java handhelds. Visit our website for more info if you are interested.

  80. J2me CLDC TCP/IP networking... by sinnetworks · · Score: 1

    Yes! SUN CLDC profile is a great step forward for embedded developer that want to write portable and secure code on a growing number of supported devices!

    I worked on a native Java processor (J2me in sillicon) for 2years and now I started my own company doing a pure Java TCP/IP Stack. http://www.sinnetworks.com is where you'll get the info.

    With Silk 1.0, our future product, you'll be able to network any device that support the CLDC profile to a TCP/IP network (The Internet...)

  81. My company uses it by Anonymous Coward · · Score: 0

    The very large software company that I work for uses it in Mobile technology that allows both online and offline access to sales data. I'd like to give you more information, but I need to first find out whether it's commonly known that our product uses Java.

  82. Re:java == slow bloat by Chris+Z.+Wintrowski · · Score: 2, Informative

    You are severely disillusioned, my friend.

    It really isnt suitable for handhelds which have low cpu (and storage?) resources available.

    Perhaps you didn't notice this article, but the latest wave of mobile phones are all Java-enabled, a fact casting immediate doubt on your above claim.

    [...] java was designed to be slower than other languages.

    Bwa ha ha ha!!!!! Do you honestly think Bill Joy and pals sat down and wrote "Must be slower than other languages" into their Java design spec.? You moron. Don't you know Java was initially designed to execute on washing machine controllers, and set-top boxes?

    The reason why Java is slow does not come from a specific design decision to make it such, rather, speed (or lack thereof) is a consequence of Java providing its own run-time environment with windowing API, class library, and a plethora of other useful programming toolkits.

    Obviously, if you are running a Java Virtual Machine in a restricted embedded environment, you don't need the functionality for a complex desktop system. Thus, large parts of the Java virtual environment can be stripped away to leave a streamlined execution platform ideal for an embedded environment.

    Take a look at Sun's J2 Micro Edition page, and learn something for yourself instead of regurgitating the same tired old nonsense perpetuated by idiotic anti-Java morons like you.

    --
    - Chris Z. Wintrowski -
    [ Site ]
  83. not exactly handhelds, but cell phones by Anonymous Coward · · Score: 0

    I was in Japan back in October 2001 at Tokyo Game Show and I saw LOTS of cell phones (most of which had color screens) where a whole bunch of game companies like Taito and Sega have written games in Java to run on cell phones. Apparently, cell phones users download them for a fee over the cell network onto their phones.

    When I was in Akihabara Electric Town (the electronics area in Tokyo), I'd guess at least 70% of the cell phones for sale had color screens (mostly LCD and some were OLED).

  84. Waba and Jump is fast on a Palm by stepheneb · · Score: 2, Informative

    We are developing an open source application we call CCProbe which combines tools for collecting and analyzing sensor data with the capability to display these and other objects (images, drawings, notes, etc ...) in a compound document structure similar to a html page. Our application is written in Waba, an open-source java-like language specifically developed for handhelds.

    We have CCProbe running on PalmOS, PocketPC, Windows, MacOS, MacOSX, and Linux.

    On the Palm we compile the waba class files to 68000 machine code with WabaJump. The speed is suprizingly good, as fast as the interpreted version running on an iPaq. Our application is 750k on the Palm. On full-size OSes we run the waba classes on top of a Java VM.

    You can find out more about CCProbe and download the software at: http://concord.org/ccprobeware/ccprobe.

    Find out more about Waba at: http://www.wabasoft.com.

    Find out more about WabaJump here: http://www.wabajump.org/.

    --
    -stephen
  85. Amiga Anywhere by Anonymous Coward · · Score: 0

    Java enabled devices...

    Looks like the AmigaDE is getting more attention towards devices these days.

    Its fast, light weight (16k for each translator) very easy on resources... What more can anyone want?

    Plus up to 3000 developers working on hundred of apps right now!! Soon, maybe in a month or so you'll be able to by a memory card witha number of games on it. This will allow you to plug this memory card into any PDA that supports the AmigaDE.. right now this is ipaq (2 modles i believe) zaurus and about 4-5 others.

    A heap of WinCE devices now willhandle the AmigaDE so even more devices will be able to use these memory cards.

    Same code, ran anywhere, very fast!!!

    Cant wait...

  86. Re:Java slowish?? by Anonymous Coward · · Score: 0

    You can turn off the GUI with a command-line switch. I'm at home, so I can't look it up, but it's there..

  87. handheld java app ssh and vnc by Anonymous Coward · · Score: 1, Interesting

    I am using java on compaq IPAQ and blackberry 957 to run ssh client. See IPAQ client at http://www.movsoftware.com/sshce.htm and the blackberry ssh client at http://www.airstreamws.com/ourproducts/sshtelnet.h tml. Have also been able to load from our webserver the ssh enabled vnc client that is written in java on the IPAQ

  88. Swing and CORBA by ^Z · · Score: 1

    While CORBA may be a necessary evil, Swing is a hog even on an average over-powered desktop PC, and using it on a handheld would be just crazy.

    --

    Computers make very fast, very accurate mistakes

  89. Application on a Phone. by MightyMicro · · Score: 1

    Well, we're building a "for real" financial application on a Java-enabled phone, the Nokia 9210 (European version). We could use some more processor power, but it's perfectly usable. The screen is beautiful (640x200, color TFT), the Symbian OS is rock solid, and the Java is . . Java.

  90. Java on iPAQ by jehicks · · Score: 1


    A couple of us at Compaq Cambridge Research Laboratory did the initial port of Blackdown.org JRE 1.3.1 to the iPAQ running Linux a year ago. Blackdown finished the port, ran JCK, and it is now available from blackdown.org.

    With Reuters/Instinet, we demonstrated a trading application running on the iPAQ using Swing, wireless, etc. at Java on Wall Street at the World trade center. It was really cool to be able to take an app that they had debugged on J2SE on a Win2K desktop and have it run, unchanged, on a handheld. Startup of the application was a bit sluggish, but runtime performance was adequate.

    In addition to Java2 Standard Edition, J2ME, waba, and Kaffe are also available on the iPAQ running Linux. There are some notes about Java on the iPAQ at http://www.handhelds.org/z/wiki/JavaOnIPAQ

    Savaje: http://www.savaje.com/ has ported J2SE to the bare ipaq (using the bootldr from Compaq CRL). This version is reportedly quite fast.

    If you prefer PocketPC, Insignia has J2ME available.

  91. Re:I can't stand... by rpeppe · · Score: 2
    for the record, inferno is free (free
    download
    here
    or here)
    and
    the core source
    code is available (costs $300 and allows
    commercial development).


    most of the source code (applications, libraries, etc)
    is free and open source.


    i believe this compares favourably with Linux (many
    embedded linuxen have proprietary bits) PalmOS
    (where's the source code to that?), and many other
    embedded systems such as QNX and VXworks.
    not to mention being the coolest OS on the planet.