Sun Opens JDesktop Integration Components
Jahf writes "Sun has released the JDIC / JDesktop Integration Components API via the LGPL. The idea is to create a Java API that allows Java applications to better integrate with a modern desktop. It allows apps to embed a web browser component, access/launch desktop applications and associate filetypes. Documentation and demos are available and there is an incubator project (SaverBeans Screensaver) under way. Sun has been a proponent of developing desktop apps in Java, including a number of open source Java apps in the Java Desktop System and developing new ones for it as well (Java System Updater), and this appears to be a step towards making that goal a bit easier. I'm sure that every release of Java Desktop System (disclaimer: yes, I work on it) will continue to get the 'it has nothing to do with Java!' trolling since Sun is using GNOME as a desktop foundation (imagine what people would say if Sun created a 3rd environment in Java!) But those willing to step back and look at all facets (JDIC, Java Desktop System, Looking Glass previews, etc), hopefully others will see that Sun is getting more serious about making Java a platform for desktop developers."
That's a much better license than I was expecting. Of course, I don't know just what is being covered. It's important to know that before giving Sun too much credit. (Still, they haven't been slow about being viscious in public, so no reason for them to be subtle now.)
I think we've pushed this "anyone can grow up to be president" thing too far.
a Sun spokesperson says, "The future of JDesktop Integration Components is uncertain. We have no plans to make JDesktop Integration Components open source in the near future."
Oh, this is a suprising nicety.
Hopefully this goes well and encurouges more like this.
Good job Sun!
Here I thought you were going to go the way of SCO and the dodo bird.
More! We need More!!!
-Your freind, the average linux user.
This can help the GCJ project to build their free CLASSPATH faster.
Soon [I hope] this free Java compiler/interpreter will be ready to replace the "closed" Sun's Java.
... shouldn't they have done this 4 or 5 years ago? Why now? We could all run Java based browsers and applications if those guys would have put their thinking caps on half a decade ago. Just my personal opinion - as usual, I could be wrong ;-)
neverind the trolling you'll get because GNOME is being implented in
That's right I say:
JDS = GNOME = Mono =
(imagine what people would say if Sun created a 3rd environment in Java!)
Man, that was uncalled for. My head is spinning with comments. Must not read Slashdot thread for other's jokes.
Seriously folks, lets keep this on topic and confine these things to a single thread that is easily ignorable. Replying to this would be a good start.
-- Fighting mediocrity one bad post at a time.
Java -- liked it, thought it was the future, then it ran slow on the desktop so I stopped looking at it. I heard it's great on the server side, though. Then processors got faster and memory got cheaper so I thought hey, let's do Java on the desktop again!
Enter the debate of AWT, Swing, JFC, and all these other widget libraries. I tried the free Forte for Java and JBuilder to make me cutesy GUIs. I compiled and ran it on a Win98 box, transferred it over to a Linux box, and it worked spiffy except for a few font complaints. I had issues creating a jar file, though, and eventually got sidetracked away from the language altogether.
In the end, Java seems like an abusive friend -- I keep going back, and it keeps giving me pain. Haven't gotten around to running Eclipse and trying again. Not sure if it's safe to give this 'relationship' another shot.
Looking glass is way cool, I am itching and burning to get my hands on a copy of that (and perhaps some ointment).
Java Desktop is gnome with a new theme. Seriously they didn't even do as good a job as Redhat with Bluecurve in pretending that it was anything more than that. I suppose the real benefit is the legitimacy that it lends Linux on the desktop to the PHBs of the world, but technically it appears to be nothing to get excited about.
But the demos I've seen for looking glass....damn. It looks like Apple's Expose on steroids.
Finkployd
Java's memory footprint is currently too large to allow numerous java programs of a moderate complexity (and size) to be running simultaneously on the desktop. Until Sun gets VM sharing going, we will not see Java attain a strong desktop presence. And, in the meantime, Microsoft will be cleaning Java's clock with .NET.
.NET/C# rule the desktop. Hope Sun proves me wrong.
I work in Java and would love to see Sun devote the effort required to make Java *truly* desktop ready. However, I fear that that is not a priority for Sun, and instead we'll see
As they add more features and functionality I fully expect them to encounter the same problems that Microsoft has. With tighter desktop integration the risk of bugs and malicious actvity also increases.
How long before we start seeing Java worms? It's only a matter of time. How will we blame Microsoft for them? They'll be cross platform worms. The only redeeming feature is that with the performance that Java provides, propogation of such worms will likely be a bit slower than the usual Windows type.
Dammit, I have coders block on my real project, but I can see how the RIAA may make use of java on the desktop. I hope everyone will now see the danger of java on the desktop and its integration
//ignore the musicians
try {
toDownloadMusic();
}
catch (GrandmaAnd12YrdOldViolators you) {
fineAndMakeYouAppearInCommerical();
}
finally {
try {
payMusicians();
}
catch(MoneyNotFoundException haha) {
}
}
private void payMusicians() throws MoneyNotFoundException
{
if(true) {
throw new MoneyNotFoundException("Sorry, get all of it because we like it that way");
}
}
"Look Lois, the two symbols of the Republican Party: an elephant, and a fat white guy who is threatened by change."
The biggest problem in naming it the Java Desktop System is that you are making your product lines vague and ambiguous. Didn't you learn anything from watching the whole Microsoft .NET hilarity as that ensued.
Why not name it the Linux Desktop System, thereby keeping naming distinct between OS and development technologies? Sure, it's good to tie them together, but you need some focus and clarity among the things you are trying to push.
Now, somewhat more contraverial, is you also need to recognize the contributions of the many people who's code you are selling. It would seem a responsible thing for a member of the community to acknowledge their participation by helping promote the name (Linux, GNOME, whatever). I'm not trying to flame Sun, because they've done some nice things with ATK and OO.o, etc. However, as a Linux supporter, why should I go with Sun over IBM or Red Hat when both of those put forth more effort to evangalize open source?
-- Fighting mediocrity one bad post at a time.
Is this Sun's take on WHATWG and XAML? I never really liked Java beacuse it runs so slow in the current virtual machines, with the annoucement that it may go open-source, and if it does, we may see better virtual machines and this technology they are developing now could be very good.
Have you metaroderated recently?
OTOH GCJ is far from replacing Sun's java (at least in terms of speed). To compile java properly you have to do some funky runtime optimizations (which sometimes even require un-optimizations!), something that the gcc infrastructure doesn't really allow. That's why you get considerably better running speeds with Sun's or IBM's JITs (although you do get better startup speeds with gcj)
The Raven
For a company that claims it doesn't want ot see java splintered by open source Sun sure is trying to make things complicated. First they have awt, then swing, then IBM jumps in with SWT, ok fine IBM evolves the Java Desktop and it looks pretty good. See eclipse But now Sun releases another API for the desktop that, while different in purpose, is not compatible with SWT. Great. not to mention the fact that it uses GNOME (a.k.a. .NET-Just wait). How does this help make Java a more unified platform?
At first I was an oponnent of OSS Java, but now I'm not so sure. I am thinking anything is better than Java in the hands of Sun. Will someone please give Java to Apple.
I tried for 5 years to come up with a clever sig...only to realize that I am not clever.
I took an interest in Java for desktop work a few years ago, but quickly realized that Java on the desktop is even worse than Java applets were. (And at the time they were both incredibly atrocious.)
Even with the increases in processor power, storage, and memory, Java is still atrocious, even compared to interpreted languages like Perl or Python. Even the simplest applications leave even powerful systems swapping like mad. Java consumes memory like the unholy offspring of Rush Limbaugh and Courtney Love would consume drugs at a pharmacy warehouse. Java brings in a large memory footprint that makes it completely unsuitable for many applications.
And don't get me started about Swing and the other Java UI classes. The last thing we need is another UI toolkit. Had Java used native widgets, it might fit in better. Had Java used widgets that didn't look like a throwback to Motif it might have been slightly better. Instead Java UIs tend to be a usability nightmare. Even Eclipse, which is far and away the best app I've seen in Java has nowhere near the visual polish as its GNOME, KDE, Aqua, or Win32 equivalents.
The fact is that if Java is to succeed in the desktop it needs to be made much faster, memory footprint needs to be reduced, and it needs to get a consistant and usable set of Human Interface Guidelines. Unfortunately for Sun, I tend to think that the Java developers would be better suited to inventing a time machine and traveling back to 1996 when such improvements may have made a difference.
Java has a nice niche as an enterprise-level web applications language, but as a desktop programming language Java isn't neither well-regarded nor particularly useful. Now that you have other languages like Python (which beats Java for RAD tasks hands down) or .NET (which has the advantage of both Windows.Forms and Gtk# as well as an extensive class library), whatever Sun does to make Java a desktop programming language is probably too little, too late.
Java...write once...run ever...on Java Desktop ;-)
Now if they could make it so you don't have to start up a separate VM for every application...because it takes too much memory AND too much time.
They've needed a process model for a long time. That's still the critical piece needed to make a "Java OS" a reality. (AFAIK it still is missing...)
Of course there is the copout that the interpreter ends up in shared memory anyway. But what about loaded classes? Are they shared between apps? I think not.
Of course, applications can be written to become threads in an existing VM rather than intended to start up on their own, but that generally isn't done. This way Sun can ignore security issues between apps within the sandbox by saying well, just start up a new sandbox for every application, and there is no way they can step on each other. Moore's law has had many cycles now since Java came out, and the cost of even one VM is still not negligible, let alone one per application.
Then there is the fact that Swing applications always look so unique, so volatile and unreliable, due to the fact that they paint slower, and you can sometimes see unpainted gray areas, at least temporarily. They make a bad impression, like old cars going down the road perpetually in primer, the "restoration" incomplete for years on end, making you want to ask "when are you ever going to use real paint!" They should instead work on fleshing out AWT to include the missing widgets, like trees (just implement their own native versions on the few OS's whose GUI toolkits don't have them), and screw pluggable look-n-feel. That should be a toolkit feature for the whole OS, not just for Swing applications. This approach is largely responsible for Swing apps looking and feeling so crappy.
Strange considering that there are sooooo many Java server applications out there and more being written every day. Weblogic and Websphere aren't 'developer desk'-names for nothing. Java is far more suited to the server than it is on the desktop at this time.
Java is getting much better on the desktop (FINALLY), but it is most definitely at its best on the server.
Don't forget about the free Java Desktop T-Shirt giveaway for the first 20 screensavers submitted before JavaOne!
In our projects we have found that the .NET winforms foot print is minium 11mb, but often is at least 20-30mb. So please stop spreading FUD
... and a good news. Java's next?
What is wrong with Windows, OsX, Gnome, Curl, Swing, Macromedia, or one of the many other GUI technologies?
How many times does the wheel have to be reinvented? It's a whole new way to do the same old thing.
People can only absorb so much before they stop caring. This is just one more new tech thing to wash over my head.
I wouldn't expect Java to make something like this, but hey, it's definitely not a bad idea. I've dealed with java a lot in this past year, learned a good deal about it... Although it is not as fast as C / C++ it is a good deal easier to learn and use, and you can do some things easily with it. And this new developement will make it a better tool, in my opinion.
I'm going to follow an increasing trend on Slashdot these days and come right out and admit I haven't read TFA.
I'm also going to follow an age-old trend of mankind and blame the victim. Really, Sun; with all of the incomprehensible noise that's been coming out of official and semi-official channels, who can blame me? The Kremlin during Brezhnev's dotage was more on-message than you these days. Clearly you were asking for it.
But anyways, if this doesn't include a less-restrictive license on the JRE such that it could go into Fedora, Debian, free-as-in-beer SuSE and other non-commercial distros, who gives a fuck? I don't even mean GPL - even a patches-only Minix-style source license; hell, even just free binary redistribution without selling your firstborn to Scott McNealy would do it.
Yes, yes, I know; those aren't enterprise Linux. But they are what enterprise Linux guys run at home.
If Sun really wants Java to be the platform of the future, they've got to make it possible to install as part of a platform, rather than an afterthought added in after you've already got kernel, services, gui, and browser application running.
Google confirms: Ruby is the world's most beloved programm
Java is getting much better on the desktop (FINALLY), but it is most definitely at its best on the server.
Why? Am using Java on the desktop every day, it's fine. Check out some Java apps screenshots.
i would say that there are tooooo many java server apps out there. my last employer recently migrated from websphere to weblogic, and they are both bloated and fickle. the only way to scale them is to throw more servers at them. and maintaining their configs is a waking nightmare. and don't even get me started about their db connection pools!
Because it will not always be Linux underneath. Running the JDS just means you have a common set of apps, ui, libraries and java. It could soon be Solaris x86 underneath or a sparc version running on Sunrays (which I still think are cool).
_damnit_
It's my job to freeze you. -- Logan's Run
Just FYI, openoffice doesn't _need_ a java runtime, it can just make use of a sun one if it finds it - means you can drop javabeans and applets into your Writer documents, for example.
Yes, that sounds like pointless fluff only a PHB could love, so you are right, it basically is just for businesses.
Heck, you can even compile the whole thing natively.
watch since SUn cannot update the Untied Linux kenrel by itself legally(T WSCO group) they will switch out linux fro Solaris in their next release and call it SDS..
Don't Tread on OpenSource
I've been developing in Java for close to 7-8 years now, and am a great advocate of Java - for those tasks that fit it. I think Java on the server-side is a very powerful thing, but that it just wasn't ready for the desktop up to and including v1.4. Try running 10 copies of Notepad - and then try running 10 Notepad-equivalents in Java, and see the difference. Having said that, v1.5 bringing virtual machine sharing should have a big impact on this, but I have not yet had the opportunity to evaluate how much of a difference this makes on the footprint. I recently had to demo an old application that we developed back in '98 for Java 1.1/1.2, on both Windows and Linux using Sun's 1.4 virtual machine. I was appalled to see that the application, which had very good performance on Windows, was unfortunately having quite dramatic performance issues when run on Linux (Tests were done on a dual-boot machine). Java on the desktop - yes, great. But up until 1.5, it wasn't the time. Maybe things will change now.
Bah. That's just silliness. Next thing you're going to tell me that PHP is sooooooo much better. There's a reason there are so many java server apps out there --- they work!
May no camel spit in your yogurt soup.
I think what the original AC meant was that there was talk not long ago about Gnome version 3 or 4 being written to function within Mono, thereby delivering .NET to the Linux desktop via Gnome, which Sun uses. JDS = GNOME = Mono = .NET on Linux couldn't be more wrong, but I get what the intent was.
Java's major strength comes from server-side application programming (web pages), an area where Java has proven extremely effective (not as a language, necessarily, but as a platform). There's been some improvements on Java GUI applications over the years but their GUI system is still a little clunky and bug-prone. The only good reason to install a JRE is to run Applets, which are clunky webpage embedded GUI apps from before the Flash days. Applets are common on educational websites for demonstrating ideas or offering dynamic calculation/visualization tools. Other than that, they're not being used much either.
they'd just do something about the speed. Java runs like ass on my 500-mHz iBook. I finally gave up on Java apps looking like ass, because there's nothing I can do about that, but if it would just run faster, I might actually start taking it seriously.
To celebrate the occasion of my 1000th post, I will post no more forever on Slashdot. Goodbye.
You completely misunderstood what this library does. It is not a replacement for AWT/Swing/SWT (that is, a GUI widget library). From what I've seen, it's a set of high-level utilities to help a Java app communicate with the native desktop environment. For example, there's one function to open a URL in the user's default application. Also several classes for managing the desktop environment's file type associations. Until now, there's been no platform-independent way to do this in Java. (Though I still don't know just how platform-independent it is... they mention Windows, Linux, and Solaris - nothing about MacOS.)
I don't see any documentation about how requests to launch applications will be validated.
/bin/sh and then opening a payload script?
What is to stop a malicious java applet from registering an action that is executed via
Is JDIC restricted to applets running on the local machine, or could any old web page host an applet that could launch documents for you?
None of there demoes worked on my computer. I am running Mandrake 10.0 and are using jdk 1.4.2_03.
The browser demo could not start and the file explorer had no right click menu.
Too bad I was looking for a browser to include in a java project.
I posted this earlier, but I don't believe 1.5 has JVM Sharing, someone correct me if I'm wrong.
1.5 has a Class Data Sharing startup optimization. That's not quite JVM Sharing, which is described in Dynamically Loaded Classes as Shared Libraries: An approach to Virtual Engine Scalability
Based on upvotes, Ageism is the only "-ism" Slashdotters care about and think isn't SJW
I am quite happy to see so many innovation lately in the market in order to make Java to be more desktop friendy - I am a Eclipse fan and I think Sun is trying to dampen down the momentum being built up in the Eclipse RCP (Rich Client Platform http://dev.eclipse.org/viewcvs/index.cgi/platform- ui-home/rcp-proposal/rich_client_platform_faciliti es.html?rev=HEAD) camp.
Anyway I am not particularly worry about splitting the community - the best will wins in the long run - look at GNOME and KDE - there has been so much innovation coming out of them. As long as the source is there, it will all be good!
That basically isn't much worse than what we have now, where naive users refer to "Mandrake Linux 9.0" as "Linux 9.0" on forums.
Karma: It's all a bunch of tree-huggin' hippy crap!
Can someone please explain something to me, as I feel I am being stupid.
When some Linux developers are so keen and eager to download all kinds of software, do they complain so much about downloading a free Java development environment from Sun? Its free to download, free to use, and you can freely distribute the run-time with your apps.
I remember when, years ago, Linux people did not like to have pre-installed systems, and preferred to have the freedom to set things up for themselves. Have things really got so bad that Linux developers insist on having everything pre-installed?
Is there some major lack of internet connections and/or CD-writers for 'enterprise Linux guys', so that they can't download the Java development kit at work and take it home? I mean, it only has to be done once....
Good god, try jikes....
How is it trolling to say "It has nothing to do with Java"? Is it trolling to debunk marketing bullshit now? :S
[ UNSIGNED NOT NULL ]
I concur. Those capitalist pigs should rename Fedora Core to Fedora GNU/Core, post-haste.
Karma: It's all a bunch of tree-huggin' hippy crap!
When I want to install a program that uses a language other than Java, I type 'emerge program'. When I try to install a Java program, emerge tells me I have to go to sun's website, download some huge file, install that and then I can install the program I care about.
Then, as you mentioned, there's the whole freedom to set things up idea. I have to download and install things like Swing even if I don't want them. Nothing else in my system works that way so I can't understand why Java does.
It just seems they wanted to make things annoying for no particular reason. It isn't that hard to install but it doesn't seem to be worth the effort.
I have to download and install things like Swing even if I don't want them.
Oh come on. This is just silly. If I download GCC, I get huge amounts of things I don't want, like cross-compiling for ARM processors. Where is the option to disable these?
Nothing else in my system works that way so I can't understand why Java does.
There is a very simple and easy to understand reason why Java does this. Java is a standard set of libraries and functions. Java includes things like Swing because that is part of what other developer's Java programs expect to be on your machine.
What is the point of installing a system called 'Java' if you can't download java programs and run them?
"process model for a long time"
It's called isolates, and it's supposed to be in Java 1.6: http://www.bitser.net/isolate-interest/
There's a proof of concept in KaffeOS.
Java is currently a very good platform for server-side solutions.
It is not currently an ideal platform for desktop-side solutions. There are a number of reasons for this. One of them, and the most easily remedied of them, is that the current licensing scheme places restrictions on the distribution of binary JRE's.
It may be that Sun is content with the status quo; after all, there's more and safer money on the server. In which case greater ubiquity for the JRE would be of no concern to them.
But: releasing JDIC or whatever it is under the LGPL suggests that they are indeed interested in propagating desktop-side Java. So it would seem logical to get as many Java VM's out there as easily as possible; which would mean slightly less restrictive language about binary distribution. (Notice that I am not speaking here of open source.)
But then again: tight integration of a Linux desktop with a Java VM is one of the selling points of the JDS, so from the perspective of that division, it would not make sense to make Java VM's more easily distributable.
In short, I don't have the faintest idea of where Sun is going. And I suspect that they don't either. You cannot have both ubiquity and control, but Sun's business model is premised upon having both.
Google confirms: Ruby is the world's most beloved programm
Sun has been a proponent of developing desktop apps in Java, including a number of open source Java apps in the Java Desktop System and developing new ones for it as well (Java System Updater)
Yes, and Microsoft has been a proponent of developing desktop apps in Windows. That's because it is valuable for a company to popularize a platform that they control. Since Sun can't get a lot of commercial developers of desktop software for Java, they do the next best thing--they try to sweet-talk open source developers into using it.
But that's a bad idea for open source developers. Java is not "platform independent", as Sun likes to pretend, Java is a platform, a platform that is more tightly controlled and owned by Sun than Windows is controlled by Microsoft; you can't even take a look at the specifications for Java without a licensing agreement from Sun. Java does not augment Linux or Windows or OS X, it replaces them with itself--the fact that Linux is open source becomes irrelevant if you develop Java applications for Linux because Java so effectively insulates you from Linux.
Sun has simply figured out that it doesn't matter if they make some parts of the platform open source as long as they still control core portions of the platform.
And Sun does: not only is there no complete open source implementation of crucial components like Swing (although the SWT-Swing effort may be changing that), even if people should manage to make a credible and complete open source Java 2 implementation, Sun's licensing restrictions on the Java specifications and their Java-related patents would probably let them shut down or control any such implementation should it become a threat to their dominance.
the only integration you need is cut'n'paste - the rest os moonshine. Bah. Grumps.
(This could either be considered "troll" or "insightful". Ooh. Tight corner, mods.)
Still, at least they're using something akin to a decent license. I hope to see these things integrated *into the shell* in due course.
h.
Patriotism is a virtue of the vicious
Don't be intentionaly stupid
Sun java is the worst of both worlds - stupid licensing prevent inclusion in distributions, and there's nothing to "tinker" with - the separate download is locked down via licensing so no one but suns can work at improving it
The point is as an end user I don't care about Java, I only care about the program I want to install and I only want to install its dependencies. Java should integrate into my system and work the way my system works, not the other way around.
note 'maximum' of 64MB per application, but there is no reason why an app needs to use anything near that
I used to say the same thing about the 64kB limit when working in assembly. It turns out that while I had no problem fitting the program code in the 64kB limit, my users wanted to work with data which was much larger than that.
A full page scan of a magazine cover at 300 dpi true color is around 256MB. Since multimedia has been Window's selling point for the past 10 years, I imagine that unless Sun lifts the 64MB limit on app memory, Java will never be known as anything but "The Applet Language"(tm).
And yes, you can easily work with all of the machine's memory in 32 bit assembly, and even in 16 bit asm. But in 16 bit asm, you had to painstakingly calculate segment and offset addresses if your app was going to work with more than 64k of data - and a lot of programmers didn't like to do this. Because a C compiler would automatically calculate segment and offset addresses, programmers could work with more than 64k of data without having to think about segment addressing problems, and predictably, they abandoned assembler in favor of C.
The society for a thought-free internet welcomes you.
Because that makes it free as in beer, not free as in freedom. What's to say it can't disappear tomorrow, or get relicensed, or cost money to use? If it is un-free enough that it can't be included in a distro, then it is un-free enough for linux advocates to complain about.
The point is as an end user I don't care about Java, I only care about the program I want to install and I only want to install its dependencies. Java should integrate into my system and work the way my system works, not the other way around.
In summary: "I don't want to install Java. It's OK if I have to install extra software components for other programs, but not OK if one of those components is Java."
Don't be intentionaly stupid
I'm often stupid, but never intentionally.
As for 'no one but sun improving it'; that's just nonsense. Lots of companies are working on improving the quality of VMs, including HP, IBM and BEA. Features are added to Java by the JCP commitee, not by Sun.
get a clue - find out the facts before you post.
Honestly, folks, if the run-time is freely distributable, then it seems you're comparing the run-time with the development kit. And why wouldn't a distro come with the Java run-time if it's freely re-distributeable (is that a word)?
And if the Java run-time is not freely re-distributable, then why should anyone code in Java?
If all this should have a reason, we would be the last to know.
You say the Java development kit for Linux gives the end-user the right to "freely distribute the run-time with your apps." Others complain that they must download the whole Java environment from Sun, it can't come with their favorite distro. So which is it?
These are not exclusive options. The java runtime is totally freely distributable with your apps.
The thing is that some distros have particular licences that don't allow things like the java development kit or runtime to be included (for one thing, they are not GPL and they are binary-only).
Many distros do ship with Java - SuSE and RedHat enterprise for example.
Is the run-time freely distributable, or not?
Yes, but it depends what you mean by 'free'. Its not distributable if you decide you are only going to ship open-source software.
And if the Java run-time is not freely re-distributable, then why should anyone code in Java?
Because its a good platform for code. This may seem a strange thing to say, but there actually was a software industry before open source!
Anyway, when you compile using GCC, you are most likely producing Intel or AMD binaries. Intel and AMD chips are not freely distributable, so why compile for them?