Sun and 3Com agree to embed Java into Palm Pilot 99
killbill writes "3Com and Sun have agreed to put a Sun Java virtual machine inside the Palm Pilot.
Attenders of the JavaOne Developer Conference can purchase a Palm V with the Java VM already installed as of today, and I assume it will be available to the general public as soon as you can tap your "beam" button.
"
Let's predict the responses (Score:3)
Some language bigot will say "Java Sucks"
Some other bigot will say "Why not Linux on
the Palm V instead of Java, with GTK apps
ported to the Palm"
Someone will suggest running a BeoWulf cluster
of these babies, as if it mattered.
Obligatory bashing of MS and WinCE devices
Did I get all of them? Oh yeah, "First Comment",
or is that out of Fashion?
hmmm... (Score:1)
thbbbbbbt!
:-)
*doot* *doot*
In unrelated news... (Score:1)
3Com announces that the "PalmPilot" will henceforth be known as the "HeavyArmfulPilot".
Seriously, Pilot apps already have to be tiny, why add the dubious benefits of a large, slow Java VM? It seems unlikely that apps will port over all that well anyway, considering the completely different UI.
--
"Please remember that how you say something is often more important than what you say." - Rob Malda
jvm + useful apps in 2-4 megs? (Score:1)
Show me a PalmV with 16 or 32mb out of the box, and then I'll be convinced.
Re:In unrelated news... (Score:1)
Maybe because you don't know what you're talking about? Because Sun has already done it with the KVM (runs in 64kb of RAM), and WabaSoft has been shipping a Java VM that runs on the PalmOS and WinCE for a long time?
It's amazing to me how "knee-jerk" Slashdot users are. There's nothing in the Java language or VM spec that demands a large memory footprint.
Sun themselves recently crunched the JDK1.2 runtime by 50%. HP's Chai claims 50-90% compression. Also, the VM itself can be made to fit in as little as 32kb of ram.
You realize of course that the whole regular VM doesn't have to be put into the Palm because of the unique aspects of the device. That is, you install applications onto the device from your desktop, so before placing the Java app into the Palm, it can compress it, JIT it, byte-code verify it, and load only the methods/classes needed across the HotSync interface into the palm.
Therefore, most of the functionality is offloaded onto the desktop machine.
The same goes from HTML browsers, where you can offload parsing, and even style-sheet application to the host, and then simply store the display objects (compressed) on the Palm.
For a site with geeks, you people sure do lack imagination and technical problem solving skillz.
Re:In unrelated news... (Score:1)
Re:Let's predict the responses (Score:2)
Java, for many people is still looking like being forced down their throat, and this handheld Java invasion (while obviously better than the WinCE army) is still a Microsofty solution: "get the people see it everywhere, buy the developers, make contracts, whatever, and then we can reap". The good solution from the open-source advocate's viewpoint would be: "spread it, and let them pick the good parts, improve it, and it will be ubiquitious, and really cool technology". Obviously, Sun's exploit-the-community license (Alan's words, AFAIR) is going too slow for their Marketing dept. They just don't seem to want to give (wrt. Java, I know about NFS, RPC), that will always cut some shades on them; it just doesn't help that you are welcome to work on their stuff... well...
sheesh.. (Score:1)
I thought the whole idea of palm apps was to stay as low profile as possible. How can adding a VM and other assorted unneeded tidbits to an environment that's already starved for memory help anything?
Re:Let's predict the responses (Score:2)
The problem with the open-source VM approach is that it only works (achieves write-once run-everywhere) if *EVERYONE* runs the open-source
VM.
The first time the VM gets "forked" and improved, all of a sudden, developers start taking advantage of these new hacked in features,
and the app loses its portability between VMs.
At some point, just like KDE and GNOME, one
of the VM's will become the defacto "standard"
and we have a fracturing of the standard.
The only way Java portability truly works is if there is a strict VM spec and everyone is forced to adhere to it.
I personally think Sun has done a very good job. The quality of their APIs far surpasses anything the OSS community has come up with. Java2D, Java Advanced Imaging, Graphic Layers Framework, blow away Imlib/ImageMagick/PBM. Swing is much superior to GTK's API, except in performance.
Plus, I have the source code to the JDK, and
the class libraries (I just can't redistribute
the source), which 9 times out of 10, I don't
need to. I mostly use the source to fix bugs
in my own code, or find bugs in the documentation.
White Paper on The New JVM (Score:4)
codenamed "Spotless" It goes into detail about the design of the system. At the end it include a short description of some stuff they've implemented in Spotless.
http://www.sunlabs.com/technical-reports/1999/a
Mr. Peabody
Re:In unrelated news... (Score:1)
"You realize of course that the whole regular VM doesn't have to be put into the Palm because of the unique aspects of the device."
If the full VM isn't implemented, I can't copy my apps from OS A to PalmOS and have them just run--thus defeating the purpose of using Java in the first place.
OTOH, many people tout Java's easier networking code as a reason to use it. That's as may be for a normal machine, but even 64KB sounds like a pretty big networking abstraction layer on a 2MB device.
--
"Please remember that how you say something is often more important than what you say." - Rob Malda
Re:jvm + useful apps in 2-4 megs? (Score:1)
Java certainly changes the picture -- I've got to stretch to use more than two megs with normal palm os apps.
--
Re:sheesh.. (Score:1)
Because VM's are not a-priori bulky. Only
specific implementations are depending on
the time-space tradeoff used.
Apple's Newton also used a VM, only it was
called NewtonScript which was a derivative of
Sun's Self language (which had a nice optimizing VM on which Java's HotSpot is based)
If there is ever going to be a vibrant market for Palm devices, consumers can not be put into the situation of having to know which CPU their particular device has (DragonBall? SH-4? MIPS? etc) and having to download the correct utility.
Some sort of binary-neutral format is needed no matter what. Otherwise, as soon as a new Palm device calms out with a new embedded CPU, 10,000 palm apps have to be recompiled.
Re:Let's predict the responses (Score:1)
WinCE is a general purpose embedded OS. Supports color, sound, PCMCIA and is also not controlled by a hardware manufacturer, so there are many manufacturers.
Personally, I think having a PalmPC that can play colour MPEGS is way cooler than a Palm (I own a Plam tho cause I bought it a couple of years ago).
Java for CE will come out soon (and since CE has a decent GUI engine, it'll support Swing and AWT properly).
The new Plams have the advantage of being smaller tho.
Re:White Paper on The New JVM (Score:1)
Just my $0.02
The forking myth (Score:1)
Sure, anyone could "fix" the byte codes all they want, but that would be a worthless effort; I wouldn't use an incompatible JVM either. But the development must be kept open, central control is not a good solution. What do you have now? We can't fork the code, but anyone can license, and build all their enhancements, and market it. Tons of different JVM's, different optimizations, all (most) in binary modules. There are different "brands" of java, different levels of implementations, different native libraries, etc. If Java were open source, you still wouldn't download JoeBlowJava v3.81, but the real enhancements would be better, and integrated faster into the common code, while causing less work for Sun to do the dirty work to support N+1 architectures/features. In the end, much *less* fragmentation than now.
The source is really my pet peeve (although not really relevant to Java now, but there was the difficulty to cooperate with other developers, and proprietary license agreements "poison" even more than the GPL, IMHO) without source, you are effectively locked into the vendors' imagination of the market; you can't port it to the newest toy you built, and over time, the PIII-500 will also be an overheated, noisy, slow, and overall undesirable platform...
Re:In unrelated news... (Score:1)
1. It hasn't shipped on any devices (yet)
2. It's not particularly memory-efficient
3. The standard has too many "optional" classes
4. Incomplete implementation of AWT (missing things like ScrollPane. "Who would ever want to scroll on a small device?")
5. Certain classes have the same name but different methods - there isn't anyone way to distinguish at runtime between the pJava and normal JDK versions of the classes without doing nasty reflection stuff
6. pJava won't get Swing or a subset thereof any time soon - you get to develop your apps in AWT hell. Now developers on small devices can experience the schizophrenic problem with the AWT's native peer model first hand!
7. eJava (for embedded devices) is much better,
has shipped on a device (from Tektronix, I believe) and includes a complete AWT implementation.
So, let's not assume that pJava is good just
because Sun claims it is good. I think it's awesome that the palm pilot is going to get a Java VM - I just wish it weren't pJava.
Re:In unrelated news... (Score:1)
You can't just copy an application from OS A to a Palm.
Do you even have a Palm? The only way to get an application onto a Palm device is to HotSync the palm to a desktop machine and use an install tool to transfer the app.
It works like this:
OS A ----> OS B ----> Install Tool --> RS232 --> Palm OS
In the JavaVM scenario, it would work like this:
OS A ----> OS B ----> Java Aware Install Tool ---> RS232 -> Palm OS
The Java Aware Install Tool would byte-code verify the app, JIT compile the Java app, package only the methods needed at runtime, compress it,
and then transfer only the needed code to the PalmOS.
There is a lot of extra functionality that a normal VM requires, that a symbiotic Palm/Desktop VM doens't need.
Once the desktop has verified the code, compiled the bytecode to native Dragonball assembly, then the install tool can place it on the Palm device.
All the palm device VM needs to have is native methods to interface with the GUI, a garbage collector, and a ClassLoader (if dynamic class loading is required)
Got it? The Palm VM will still be 100% compliant with the Personal Java/Embedded Java/MicroJava spec, except that it offloads some of the functionality of the VM required at install time, to the desktop.
Sheesh
Why this is a good move (Score:1)
1) it's a Pepsi/Coke world. That Wince is here to stay is a given. It's likely that the same is true for Personal Java. Not much room left for a "platform" that only works on one vendor's device.
2) adding a Java VM (potentially) increases the applications available for the Palm. You gain all those network effects by becoming another node. Of course, this requires the acceptance of things like Java set-top boxes, Embedded Java, and Jini. If these technologies do pan out, the value of owning any device capable of running those apps goes up. Bingo! Instantly (not quite), it's even cooler to own a Pilot.
3) perhaps this first iteration is geared mostly towards geeks. The unveiling at Java One would seem to indicate this. Besides, if I were a normal consumer, the relatively small number of Personal Java applications doesn't justify the resource consumption of the VM. That's sort of what letting us geeks have it is for. There's just no cool PDA that has people writing apps in Personal Java the way they do for the Palm and for Wince. That's what Spotless is supposed to provide.
Just my thoughts. Mostly this is a good move because I've holding out from buying a PDA for over a year until one was available with a Java VM. Now if I only new the pricetag...
Re:Unrelated Palm Pilot Question (Score:1)
I cleaned of the dust with one of those "cans 'o air" and it worked great after that...
I have a Palm V with KJava! (Score:5)
I was invited to Sun's ConsumerOne event yesterday as a Java software provider. At the end of the event, all the participants were given a Palm V with kJava and the JavaOne event schedule pre-loaded.
Our company develops industrial-strength Java code, and we've been working with all kinds of JVMs, from embedded devices to HP/UX passing through Linux, Solaris, Mac, and (yuk!) all Winblows flavours including CE. We're currently evaluating non-desktop JVMs and we'll probably focus on two: KJava, the one in the Palm V, and Jeode from Insignia.
So far, after having played with the Palm V for only 3 hours, I can say this: kJava rocks! Here are the specifications reported by the Palm V info:
Preloaded Java classes:
Each Java class can be loaded or removed on demand, and its memory usage can be checked on a per-class basis. There seems to be no performance difference between the Java applications and the other Pilot goodies; in fact, some of the games can be played faster than the stylus or the human eyes can catch with them.
If anyone here is interested, I'll write a review of KJava in the Palm V after we run our compatibility and performance tests on it. A large number of classes in our products are written in Java assembler, so this will be a great chance to check if Sun/3Com are keeping the JVM specification honest.
Cheers!
EugeneLet's Focus, People... (Score:3)
The reason to get Java onto the PalmOS is that 3Com and Sun are looking to push the "Network Appliances" theme. They're not looking to port existing applications onto a PalmPilot (do you really want to run a spreadsheet on that thing?), they're looking to make it networked out the wahzoo. Java (and Jini) provide easy ways to get machines sharing code and objects, which makes writing client/server applications a no-brainer.
That's the focus of this whole thing.
--Mid
Re:Why this is a good move (Score:1)
Quote:
if I were a normal consumer, the relatively small number of Personal Java applications doesn't justify the resource consumption of the VM.
I was pleasantly surprised at the small footprint that KJVM has in comparison with other JVM's we're evaluating from other vendors (i.e. Jeode under Wince). Check out my posting below under subject I have a Palm V with KJava! for a somewhat detailed list of things I found in the pre-loaded Palm V available at JavaOne.
Cheers!
EugeneRe:The forking myth (Score:3)
Java does suck (Score:2)
The virtual machine is always bulky and slow.
Java can't access any sort of native methods.
Write-once-run-anywhere is a complete lie.
Besides, Microsoft killed it anyway.
Of course, I've never written a single thing in Java. Oh, did I mention that I believe every piece of Java misinformation that I read?
/* Yes, this was sarcasm */
Re:C64 (Score:1)
I prefer opening brackets on the same line as in your first example. Yep, it saves precious screen space. Wouldn't it be wonderful to have a mural for a screen, with no loss of resolution?
Back on topic--Java on the Pilots will be marvellous IMHO. Speed is definitely not a critical factor. What's important is that developers could do more stuff and do it a lot more easily... familiar tools... and with no cost for a workstation development environment!
Re:KJava!- where do I get KJava anyway? (Score:1)
I just gotta try it out!
The one true way (Score:1)
Please get thee to a bookstore or library and, as penance for uttering such heresy, read the words and sacred source in The White Book (aka K&R, aka The C Programming Language) scribed by the great prophets Kernagan and Richie.
(Translation: This has been the prevalent C indent style since long before Java was teenie little beenie. That said, bravo for using good style! I'm proud of you, son.)
--
"First they ignore you.
Then they laugh at you.
Then they fight you.
D'oh! (Score:1)
s/Richie/Ritchie/
When the hell will I learn to preview?
--
"First they ignore you.
Then they laugh at you.
Then they fight you.
Re:I have a Palm V with KJava! (Score:1)
"Or better yet... tell us how to get invited to those ConsumerOne events!"
Eugene's find out about cool events algorithm
while (eugene.isAlive()) {
if (currentJob.sucks())
company.shoveUpAss(currentJob);
company = new StartUp(eugene, friends, venture);
company.setTechnologies(Computing.Java, Computing.Linux, Computing.Solaris);
while (company.isMakingMoney()) {
company.setCustomersFrom(World.getInterestingProj
while (company.hasCustomer()) {
customer = company.getCustomer();
switch (customer.getType()) {
case E_COMMERCE :
case FINANCE :
case MEDIA : Sun.tell(customer);
company.setResources(Sun.getResources());
break;
}
}
}
}
(sorry about the indents; I can't figure out how to add them and I must get back to work)
Great performance optimizations are attained if the customers are running Windows and Java is chosen instead of other technologies. More optimizations come from customer.isInfoApplianceMfgr() == true.
We implemented a similar loop for Linux. That loop, though, is event triggered: We tend to listen more than we tend to proactively look for. Tonite we get to meet Linus at the BALUG gathering. Cool! Bill Joy Monday, Linus on Tuesday... We have yet to implement the Apple, Oracle, and Red Hat loops and the and other event handlers (it would be cool if we kept up with Steve Jobs on Wed., Larry on Thu...) but the Microsoft dump keeps our cron and Java daemon threads very busy.
I hope the algorithm helps
Cheers!
Eugene
conspiracy theories (Score:1)
knowing slashdot's reputation, bet you they do.
In fact, I would even go so far as to say that a considerable percentage of the stories posted above are "marketting".
I'd say 20%. (one in five)
think about it
WOuld any reading this actually put this kind of tactic past Microsoft ??????
Re:KJava!- where do I get KJava anyway? (Score:1)
We're trying to figure out how to load new classes into the Palm V but we haven't yet (we're not trying really hard either; we're not supposed to be testing on hand-helds until next week but our hacking instincts are too strong...)
Some JavaOne keynote demonstrations... (Score:3)
* Two Lego Mindstorm tanks, each with a Palm attached to the top running the KVM. The Palm's controlled the tanks, trying to play a game of tag I think... the Palms used the IR ports to talk to each other. Just imagine the tanks also being able to pass new behavior or scanning updates to each other as well!
* A demo of transferring a program from a Palm to a Motorola pager (both running the KVM) over the IR port. In this case it was a Tetris game, but imagine being able to load some custom home monitoring software into whatever device you happen to be carrying with you that day, or searching out some custom mapping software for the area you're in.
One example of such a custom application was a custom conference schedule/map they had avialiable for JavaOne attendees - you could select a session you wanted to go to, and it would pull up a map of the conference center to tell you just where it was.
Re:In unrelated news... (Score:1)
Read a few of the press releases from Sun. Sun is defining three levels of Java2: Micro, Standard, and Enterprise. The Palm JVM is in the Micro class. You can take any app for Micro and run it on Standard or Enterprise, and any app for Standard will run on Enterprise. Going down the hierarchy may not work.
IMHO, this _rocks_. I'll be getting that IIIx any day now...
-jon
Unbelievably Trivial (Score:2)
IIRC, K&R style has the opening bracket of a function on the next line:
int foo()
{
return bar;
}
While "Java" style generally puts it on the same line:
public int foo() {
return bar;
}
Yep, it's a minor difference. Believe or not, I actually spent time agonizing over which code style to use and where. If you care which I personally prefer, you should really get out more.
Re:where is java.rmi.*; (Score:1)
Re:C64 (Score:2)
Enter Spotless. I just finished looking at their stripped down java.lang.Object, java.land.String, and java.lang.StringBuffer. Perfect. Just a few K.
Java on the C64, here we come.
How easy will it be to port apps/applets? (Score:1)
Re:Language biggot says "java rocks" (Score:1)
That's why 30% of our production code is written in Java assembler. No stinkin' needless initializations in constructors, no static initializers if you know what you're doing, and the ability to defeat most attempts at decompilation by using instructions (i.e. jsr) not implemented by the Java compilers.
Based on very... slow... Java... VMs... I've seen... and on the performance I get from other non-Java Palm Pilot apps, kJava VM rocks!
Cheers!
Eugene
Java IS Free Software (no thanks to Sun) (Score:1)
In spite of Sun's attempt to keep Java in a corporate stranglehold, the free software community has produced several virtual machines (check out Kaffe [transvirtual.com] and Japhar [japhar.org]), a classpath implementation ( GNU Classpath [gnu.org]), and a conformance test (see Mauve [cygnus.com]).
None of these are complete, but all are impressive and because of the GPL [gnu.org]/ LGPL [gnu.org] they will always be free software. Sure, Sun and other vendors offer the latest and greatest bells and whistles. Free software is inexorable -- it will catch up. I can wait, and those who can't are welcome to use proprietary products until then.
YEAH nice what about JDK 1.2 (Score:1)
ok before somebody moans
java is a good lang because it is strongly typed
the implemetation of java is whats been lacking java needed to be more GUI it has all the programming features that you wanted this is what they added with 1.2
Ive done it and it worked fine
so lets get the GUI stuff working
if you want speed spend a year writeing machine code (i did oh what fun hex keypad are)
a poor student @ bournemouth uni in the UK (a deltic so please dont moan about spelling but the content)
Re:Language biggot says "java rocks" (Score:1)
E
Think... (Score:1)
SPOTLESS - LINK HERE (Score:1)
Re:SPOTLESS - LINK HERE (Score:1)
you can also find more into by going to here..and where you see "What are you looking for?
Database description: Search of General Content including Research content
damm forgot the link - more spotless (Score:1)
You can't swap Palm to Palm ... tell mine ... (Score:1)
So why not do the same for Java apps?
Or do you have some desire to be overly complex?
Will in Seattle
You forgot point 8 (Score:1)
;-)
Will in Seattle
Re:hehe (Score:1)
When you have something working, I wouldn't mind firing up my C64 or an emulator to play
Re:foo (Score:1)
I think I've missed something
is it the same reason why everyone uses i for counters?
(cause everyone else does
Re:How easy will it be to port apps/applets? (Score:1)
An essential element which some of the posters here have missed thus far is that Palm is now the reference platform for the VM for personal devices. It used to be Solaris. It is now PalmOS. This is a huge win for sanity across the board. KVM is being tested on the actual devices it was meant to run on.
It should be noted that while Palm is getting all the news with the KVM, other devices such as the Motorola PageWriter, and the Bull POS. While none of us care about the Bull POS, knowing data and logic transfers from PalmOS to whatever the PageWriter uses and getting consistent behavior out of it, will make life better for the people writing the software.
This is an extremely lovely development.
...and the Palm Vs are being sold for $199.00 (Score:1)
Now that's a steal, JVM or no JVM!
-jason
When will downloads be available? (Score:1)
Does anyone know when we can download this stuff? The press release does not specify and the kJava page on Javasoft's Web site does not even mention the PalmOS port...
Re:foo (Score:2)
Kind of like sig lines with geeky memory-management jokes.
Re:You can't swap Palm to Palm ... tell mine ... (Score:1)
Just downloaded it (Score:1)
I was very disappointed that the thread demo (multiple balls bouncing off square walls) limited me at 30 balls - I had hoped to crash the VM...
Now, how do I upload my own classes? I want to try to port my java version of tetris to it.
-josh
Re:When will downloads be available? (Score:1)
excite for web servers found documents about: kJava
- higher confidence, - lower confidence; click icons to find similar documents
58% The Spotless System
Summary: Welcome to the Spotless System Page. The Spotless system is an experimental Java[TM]* system for the Palm Connected Organizer. It includes a JVM that supports the complete bytecode set and dynamic class loading, and class libraries and demo applications. It is the result of a Sun Microsystems Laboratories research project exploring the construction of small JVMs. It is not a supported product.
so they certainly link the 'kJava' to spotless! but this may not be the final release version.
spoonfed (Score:2)
http://www.javasoft.com/features/1999/06/j2me.htm
http://www.javasoft.com/products/kvm/
http://www.javasoft.com/products/kvm/faqs.html
faq
14. How will the K virtual machine be made available?
The K virtual machine will be made available on the web through the Sun Community Source Licensing process and from the Sun sales force. For more information on Sun Community Source Licensing, see http://www.sun.com/software/communitysource/
What about that icon? (Score:1)
(it looks like that thing in the middle is a tea bag)
Pope
There is one -- QuickSheet (Score:1)
I can't remember who made it but check around on pilotgear...
Re:...and the Palm Vs are being sold for $199.00 (Score:1)
Re:...and the Palm Vs are being sold for $199.00 (Score:1)
-jason
"Spotless" _is_ "KJava" (Score:1)
"A Kauai/kJava Implementation May 27, 1999"
It has about 58 classes (I'm too lazy to get a listing) and a quite a few sample Java apps to show it can be done.
It's slow, and I get the feeling that I should just be amazed that it even works, but I'm too awed to complain.
It's quite nice, and now I'm going to stay up all night checking out the developers kit you can download with it. from:
http://www.sunlabs.com/research/spotless/index.
My guess is that the KJava implementation is probably sped up a bit and has a better browsing interface (from what cuirana says).
they already make a palm with 8 mb of memory (Score:1)
and a wireless ethernet connection
check it out www.symbol.com/palm
The Price Tag (Score:1)
I see release at JavaOne as seeding the developer market (after all, it's a developer version of the JVM).
I'll buy one tomorrow and check it out in person
Cheers,
DrMazz
Re:java style, xemacs way (Score:1)
"matches public void methodA()^J{" in such a case...
Re:Let's predict the responses (Score:1)
What kind of AC adapter do the Palm Vs have? (Score:1)
So, a friend of mine offered to buy me one (thanks, Mårten!) because he already has one, and hence my questions:
What kind of AC adapter do the Palm Vs have? Is it a standard connector to the cradle? What voltage/current does it supply?
I'd be most grateful for any replies!
Waba (Score:1)
Waba is a cross platform java programming tool for Wince and Palmos devices that I found worked pretty darned well.
(It probably isn't a _true_ java implementation, but looked enough like one for me not to care about the difference)
Ah well...
Re:Waba (Score:1)
It would be sad to see Waba fall. It is a great package. (apart from the lack of threads!)
Gary
Re:Just downloaded it (Score:1)
Where did you dowload it from?
Gary
Re:Just downloaded it (Score:1)
http://www.sunlabs.com/research/spotless/doc/do
-josh
Re:...and the Palm Vs are being sold for $199.00 (Score:1)
Please post more info.