Apple Updates to Java 1.4.1 148
A user writes, "Apple has caught up with the times and updated their Java to 1.4.1, bringing it completely up to date with the newest release from Sun. It now takes advantage of Aqua and Quartz Extreme, is usable via Universal Access, and can be controlled through AppleScript." It provides 1149 new classes over 1.3.1, a new native I/O API, updated XML tools (SAX 1.0/2.0, DOM 1.0/2.0, XSLT), I18N and L10N enhancements for Unicode 3.0, regexes, IPv6, faster loading of applets, improved caching, storing of certs in the Keychain, faster UI, more Aqua-like UI ... and native Java applet support for Safari.
Great (Score:4, Informative)
Re:Great (Score:1)
Re:Great (Score:2)
Re:Great (Score:2)
Last I checked (a few hours ago), Intellij still didn't have a 1.4 compatible release for OS X. Do you know something I don't?
Re:Great (Score:3, Informative)
Re:Great (Score:2)
Great: WHY? (Score:2, Interesting)
Or better yet since you are discussing client-side apps you don't need to spend one penny and just download Apple's tools.
Of course if you are adamant and have lots of use with IntelliJ great but you'd be surprised how nice PB/IB work.
Re:Great: WHY? (Score:2)
Limewire (Score:1)
Re:Limewire (Score:1, Flamebait)
Re:Limewire (Score:2, Informative)
Re:Limewire (Score:2)
Re:Limewire (Score:1)
Yes, it is (Score:3, Informative)
java version "1.4.1_01"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.1_01-39)
Java HotSpot(TM) Client VM (build 1.4.1_01-14, mixed mode)
LimeWire(Acquisition)/0.8
LWMain A
SettingsManager: loadDefaults()
ConnectionManager initialize()
And so forth.
Re:Limewire (Score:2, Interesting)
Re:Limewire (Score:2, Interesting)
and yes, improving java *will* improve acquisition, because acquisition literally runs limewire's java core and then provides a native interface for it. so if limewire's core is running faster (which it might, because it'll be using java 1.4), then the interface is updated faster and the program as a whole is faster.
i can assure you there's no code that "messed with the window server". the warping you're probably referring to is java being slow and not allowing time for the Swing Event Thread to completely process all the redrawing. but, the code tries to make sure that swing is given as much time as possible to keep things updated.
Re:Limewire (Score:2)
Re:Limewire (Score:2, Informative)
Yay for me! (Score:5, Interesting)
I usually develop things on my Mac laptop, then transfer thing over to the official test system. But since I only had Java 1.3, it was harder to develop my stuff for them - I had to have a separate Linux box just for me to use as a mini-server.
Well, I no longer work there and am about to take another job, but at least I an update my system and work on my new web publishing system.
My only fear? That Java 1.5 will be released in a few weeks....
Re:Yay for me! (Score:3, Informative)
Re:Yay for me! (Score:3, Informative)
Documentation/Changelog/New futures (Score:5, Informative)
Re:Documentation/Changelog/New futures (Score:5, Interesting)
If you think switching from old apple MRJ (carbon) to Cocoa and a very standard JVM is trivial you are sadly mistaken.
This release is a huge win for OS X users. It puts the Mac in parity with Sun JVMs for the first time in many years. The UI is greatly enhanced by the use of Aqua and hardware graphics acceleration.
I suspect that finally OS X can stay nearly in parity with Sun's releases.
Re:Documentation/Changelog/New futures (Score:2)
Re:Documentation/Changelog/New futures (Score:4, Insightful)
Read the announcement carefully.
If you were a user of MacOS X, you would understand what a second-class citizen this has been in terms of Java. Native GUI support (Cocoa, Quartz) was non-existant. Java ran great - with CLI! This was a REAL shortcoming for users, untill now.
With a fully accelerated GUI and enterprise security features, OS X cannot be summarily dismissed as a client OS by business, at least not on the JVM features.
You obviously don't know what you're talking about (Score:5, Informative)
Apple's 1.3 VM was DEFINATELY NOT CLI ONLY.
It had a perfectly reasonable AWT/Swing implementation which was derived from the old Mac OS 9 implementation and ran ontop of Carbon, which means it did have the Aqua look and feel and it did run ontop of Quartz.
You can just about make that out in this diagram: http://developer.apple.com/macosx/images/sysarch_s m.gif [apple.com]
Now, we can talk about reimplementing AWT/Swing ontop of Cocoa rather than the crufty 20 year old foundation that is Carbon - and probably we can agree its a great thing, but it sure did take a long time. Its definately not the case that this is the first release with an Aqua GUI though!
Gently, gently (Score:5, Informative)
Mr. Cornelius is right that Java has been something of a second-class citizen on OS X. Java is privileged to be a real citizen of an OS at all -- on Linux it is a sort of visiting dignitary, and on Windows it is a sort of persecuted immigrant. But OS X Java wasn't perfect: Swing apps, while they looked great, definitely didn't run as smoothly as Carbon and Cocoa apps. Applet support was mostly good, but still spotty. Apps were slow, especially UIs and graphics in general. And, of course, Java was waaaay out of date.
The new version of Java is a huge leap forward in all these problems. With this newest release, it looks much more like a "first-class" citizen than it ever did before.
Re:Gently, gently (Score:2)
I like your exteded similies on the naturalization status of Java in various foreign territories! Funny!
'Course, I meant OS X as a first-class citizen in Java-land - your inversion is more revealing of the situation.
Re:Gently, gently (Score:2)
"Native GUI support (Cocoa, Quartz) was non-existant. Java ran great - with CLI!"
Its very easy to read that and assume GUIs were not supported at all, or at best, were some sort of emulation. This just isn't true. They weren't based on Cocoa, true, but they were on Carbon and Quartz, which is just as "native". If it isn't, someone had better tell Apple (the Finder), Adobe (Photoshop) and Microsoft (Office) pretty quickly. All are Carbon applications.
Actually, all Swing GUIs are an emulation in some sense. Apple's is one of the most native implementations because its Aqua PLAF actually does call lots of native code (which the Sun Windows PLAF didn't last time I checked, so you could hack things and run the Window PLAF on X11 or Mac OS... but that could have changed). All that's really changed is the native layer used is now Cocoa rather than Carbon. Its not panacea. People are reporting all sorts of new GUI bugs - which is to be expected after such a huge change.
Re:Gently, gently (Score:2)
Re:Documentation/Changelog/New futures (Score:3, Funny)
Then perhaps you should read a different article. Other people seem excited.
Re:Documentation/Changelog/New futures (Score:2)
Spoken like a non-Mac user! Seriously, you have a ver good point, excepting the fact that there are Mac users here for whom this is a big deal precisely for the behind-the-times reasons you state. In addition to every Mac-using slashdotter, I imagine it's also of interest to Java developers, desktop support jockeys, and others.
Maybe it's helpful to think of the story as not primarily about Java, but about Mac OS X?
cool. (Score:1)
Re:cool. (Score:1)
Hoorah! (Score:2)
Hopefully this will provide a serious speed boost too.
It's a good day to be a mac java developer.
Re:Hoorah! (Score:2)
Oh well....
*happy face* (Score:1)
Best Java Apps? (Score:2)
Re:Best Java Apps? (Score:3, Informative)
It is a little rough around the edges and really needs some fine tunning but runs like a dream on my PowerBook running on JAVA 1.3 no less. With any luck they will upgrade it to use the 1.4 code base they are already using for Windows and Linux clients. It is quite resource intensive, however on the Powerbook I don't notice that at all (just on the Windows development machine at work ~sigh~).
Re:Best Java Apps? (Score:5, Interesting)
My point is that Java seems primarily used for client/server applications or XML based messaging. (Thus the large number of UML programs) The end user applications end up tied into that via support. Other than a few so-so chat or P2P clients, I just don't see many end user applications writen for Java.
Don't get me wrong. I'm not knocking Java. Some folks who work here swear by it. We're even going to start coming out with some nice Java libraries and toolkits ourselves. But it seems oriented towards custom programs and perhaps largely the enterprise. Sort of one step up above scripting languages like Perl or Python but not quite in the C++ territory.
Yet I just never see applications outside of that market. Not a slam. Just curious. It just seems odd that there are more Basic programs for OSX than Java. (At least judging by what gets downloaded at VersionTracker)
Re:Best Java Apps? (Score:5, Interesting)
Now, I didn't know Java when I started. I learned Pascal in college and I've made a few attempts to learn C++, but I've never really succeded.
I picked Java for this project because I intended it for educational purposes and I'm not delusional enough to think that anyone would adopt my program if it was MacOS X only.
Anyway, long story short, I've written a beta quality piece of software for statistical design of experiments using the Java/Swing API. I thought it was pretty easy to work with, and the speed is more than adequate, even on my iBook/500.
I think the reason you don't see more Java Apps is just that not many people have inscentive to write their programs for cross platform use. If I had been a Windows user, I probably wouldn't have cared about the people who don't use windows and just learned C++ and the Win32 api. There wouldn't be the inscentive to capture the other 5-10% that doesn't run Windows. Even most Mac or Linux programmers don't care. Even though Java really is "fast enough" for most things.
BTW: if anybody would like to beta test some Java software for Statistical DOE, email me. Let's see... Take my slashdot username and email me with that at mac.com.
Re:Best Java Apps? (Score:3, Interesting)
So I've chosen C instead. I know that I can write C in a portable way so that it will be trivial for the end user to install on any platform. I have the division between OS specific code and general code well defined. So I can call the C backend from, say, Objective-C in the Cocoa environment. Or I can link it into a GTK+ front-end. It's more work for me than a Java app would be and I don't get the many advantages that Java offers to developers. But I just don't see any other realistic solution. Java's portability is largely theoretical in this world.
Devon
Re:Best Java Apps? (Score:2)
1 - The phrase "write once test everywhere" still applies to Java. Even if you are very competent and write your java app carefully you still need to test it on all platforms you intend to deploy your app on because there are many small differences. These small differences are created by platform specific bugs, VM version specific bugs and all the differences between different OSes and what users expect. So many bugs between versions..
2 - If you write an app on the mac, it will look odd on windows and vice versa. Windows and mac apps behave differently, they have different UI standards.. I mean even aqua and MacOS 9 have huge differences. In MacOS X, the preferences menu item is in a system menu. On eveyr other platform on earth it goes under the edit menu. On Windows all windows have their own menu bar, on mac systems the menu bar is global per program.
3 - You never have enough control over the rest of the system. Sure you can do most common UI tricks but if you want to access resource forks or the like, you need platform specific code.
4 - Deployment on windows really sucks.
-The java VM does not come pre-installed.. well, actually there is a java VM pre-installed but it's 1.1 only, and crap.
-There is no standard way of making a double clickable
All these things make it very difficult to make a professional looking / acting application. I think Myster is about as close as anyone has come to making a java app that looks like it's a native macOS X application... and it still bugs me that it's not perfect..
SPEED IN JAVA
First off, java is not slow because it is not native. Java is compiled from byte code to machine native code before it is run via a mechanism called the just in time compiler. in tests this JIT can get code to within a few % of of C/C++ code!
Java is not slow because of the garbage collector. Recently the garbage collector has gotten much better. It's now only a tiny fraction the a problem it once was.
Java is slow because
1) Swing is pretty damn slow (widgets do their own java based drawing) (usually awt is faster)
2) Java encourages a style of programming that is not conducive to speed.
On macOS X java is slow because many of the components do their own drawing and the type of drawing they do is hard to speed up *in Aqua/Quartz*. Also aqua is just slower than any other platform to begin with which means many programs don't bother to optimise many of their routines which work fine until thye are run on MacOS X. from what i've heard the java team is working on these problems. It's from their work that we now have quartz extreme so more power to them!
oddly enough Myster is more popular on the mac than the PC!.. Also it's extremely popular in japan thanks to its use of UTF strings. (all the ??? you see in myster are japaneese characters.)
As for beta testing Myster [sf.net].. Sure, tester are good.. Coders are better, (Myster [mysternetworks.com] is open source [sf.net] too). we're also looking for volunteer translators and people to help with the internationalization / documentation effort. Oh and martketing people are welcome too. Oh and we're loking for new web hosting/email.. weee. Mail here [mailto] to inquire. wow, that was a shameless plug
Re:Best Java Apps? (Score:2, Interesting)
Well, I think that actually people *do* write lots for Java, but Java is better at different things than C or C++. It doesn't show up in consumer listing like Version Tracker Basic is good for nothing, and the only reason you see it on VT so much is the same reason you see VB for windows: tons of bad developers using drag-and-drop solutions.
Java is good at non-GUI things. I mean *great* at it. C is much better at rendering graphics. So, Java lives with developers and server apps mostly. I have never found a lack of Java libraries to support in me any given task.
Re:Best Java Apps? (Score:2)
I think Java is as good at implementing self-contained functionality, and interacting over the network, as any other environment, and there are lots of builtin modules for that kind of thing. But Java has not been very good at interacting with the machine it is running on, at least not nearly so well as something like C or Python; also, the startup time for a Java application is at least an order of magnitude great than for those other environments.
Java is a fairly nice language, and continues to be almost good enough to be better than the alternatives for a lot of applications. I think there is a pretty good chance that with JDK 1.5 it will have everything it needs to have quick interaction with the system on which it is running and to start applications quickly (usecs vs msecs). If the JDK/JRE can sort out the font/GUI situation enough to look like a normal program, I think Java will be used a lot more for programs with GUIs.
Larry
Re:Best Java Apps? (Score:2)
Download IDEA. You'll love it and never use Jedit again.
Re:Best Java Apps? (Score:2, Informative)
Re:Best Java Apps? (Score:2, Informative)
Anyway, I am hoping that this will make DVArchive run even better.
Re:Best Java Apps? (Score:1)
It was a little slow on my B&W G3, but it flies on my new DP G4.
Ted
Re:Best Java Apps? (Score:5, Funny)
Ladies and gentlemen, I give you the scourge of the 20th century: hyperbole.
Unless you'd care to post some kind of fascinating tale of adventure and suspense in which your book database saved you from certain doom, curb your enthusiasm a little, okay?
Re:Best Java Apps? (Score:4, Funny)
"I can't," whimpered TedTodorov, "I lent it to my cousin Bruno."
Cocking the gun the thug replied, "Prove it!"
At which point TedTodorov slowly slid his laptop across the blotter on the desk, turning it to shine into the beady eyes of his foe.
"See? It says I checked it out to him last week..."
Re:Best Java Apps? (Score:2, Informative)
Re:Best Java Apps? (Score:1, Informative)
Re:Best Java Apps? (Score:1)
Re:Best Java Apps? (Score:1)
Ivan.
Re:Best Java Apps? (Score:2)
These guys have a cool music application called MuSing that is basically a drum machine with evolutionary principles so that you can evolve new beats. It's really excellent and you can give it access to your own sample library so that all the sounds are your own.
It's a packaged Java application, so you can work with it just like a native Mac OS X application. It's $25 or so.
Geneffects [geneffects.com]
So far, so good. (Score:2, Interesting)
Re:So far, so good. (Score:3, Funny)
I believe you mean to say a "4 fold decrease in loading time." If your original statement is correct, then this is one update I will steer clear from. My 400Mhz G4 without Quartz Extreme is slow enough as it is.
Re:So far, so good. (Score:1)
Re:So far, so good. (Score:2)
It's official; Netcraft confirms... (Score:1)
Browser bug is fixed (Score:4, Informative)
Java issues with browsers... (Score:2)
Anyone? Or is it just me?
Re:Java issues with browsers... (Score:1, Funny)
Swing Look n Feel (Score:2)
Re:Swing Look n Feel (Score:1, Informative)
So from command line type: [Netbeans Home]/bin/runide.sh -jdkhome
Re:Swing Look n Feel (Score:2)
Re:Swing Look n Feel (Score:1)
There's an example program there for changing LaF on the fly and checking which ones are available. It's meant to be used for aqua-metal but can be useful in any platform.
A cool java text editor (Score:3, Informative)
Well, that and my dos xx is right here as well
Java 1.4.1 Dev Tools Update is out also (Score:4, Informative)
What I really want to know is why it's 48.6mb for the dev tools on top of the 26mb (I didn't write it down, so I could be wrong) for Java 1.4.1 itself.
Re:Java 1.4.1 Dev Tools Update is out also (Score:4, Informative)
Refreshing . . . (Score:5, Insightful)
The difference? In Windows land an update meant, "Fuck, what 'security patch' is ready to be downloaded now? This is so annoying." In OS X, when software update pops up I'm generally wondering what new improvements there are to things overall, and happy about it.
But... (Score:1)
--Kimota!
Re:But... (Score:1, Informative)
Re:But... (Score:2)
Possible New WWDC Slogan (Score:3, Interesting)
Yeah But.... (Score:2, Informative)
Cheers
Glory be.. (Score:1)
Finally, I don't have to ssh into my account at work or run my Gentoo partition to have a working java 1.4.1. (don't get me wrong, I got lots of kudos for having a 10gig linux partition on my TiBook, but kudos don't get my applications working on OS X)
And for those of you wondering what all the fuss is about, all I have to say is 'nio.'
hugs & puppies
Re:Glory be.. (Score:1)
Not eating up all the box's resources when getting your network on is a good thing. Thank you nio (NewIO).
much faster applet rendering (Score:2, Interesting)
almost instantaneously (Score:2)
Re:almost instantaneously (Score:1)
"I put both Mac and Solaris together for abbreviation, their results were the same, and those computers only had Netscape."
Now THERES a good balanced test... So he recommends IE on a PC while only testing Netscape on other platforms? Heck, *right now* I have IE, Camino(was:Chimera), Mozilla (Mach-O), iCab, OmniWeb, Safari, and Opera. I test with each and all. I could probably also add Netscape 7... Thats 8 possible browsers for Mac OSX alone... They *all* work good for something, and I prefer Chimerino... The Mach-O Mozilla is quick as well. I expect - when Camino-era hits the latest Gecko version - it'll be much tighter...
1.3 and 1.4.1? (Score:1)
1) is this supposed to happen?
2) if the answer is yes, why? is apple going to remove 1.3 at some point, or are both required, kind of like a 'classic' enviroment for older java apps? or is 1.4.1 backwards compatible?
(geez, that's more like 4 questions )
Re:1.3 and 1.4.1? (Score:2, Interesting)
1) is this supposed to happen?
Oh, I missed that. IIRC one of the improvements Apple were making was to have java preloaded. One of the big reasons java is perceived as 'slow' is that when you run any java binary the virtual machine has to be loaded. So 'java HelloWorld' takes a second to run - which looks bad.
2) if the answer is yes, why? is apple going to remove 1.3 at some point, or are both required, kind of like a 'classic' enviroment for older java apps? or is 1.4.1 backwards compatible?
1.4.1 is backwards compatible. However it isn't a bad idea having both around. Developers (like me) find it useful - for example Swing was very buggy in 1.3 and has been rewritten, so it's nice to be able to choose versions.
Also, Apple are playing it safe. For packaged apps I think 1.4 is 'opt-in' - i.e. the default is 1.3, and you have to edit the info.plist to change that. (At least this was true in the recent developer previews).
One situation I had recently was my (bad) code whose behaviour changed from 1.3 to 1.4 because I forgot that 1.4 can return ipv6 addresses (which I'd forgotten; doh). It's backwards compatible, but that doesn't mean crappy code won't make silly assumptions.
Anyway, hope that gives you some explanation.
Re:1.3 and 1.4.1? (Score:1)
Re:1.3 and 1.4.1? (Score:5, Informative)
So if your 1.3.1 app uses any Mac-specific functions, you may need to rewrite them for 1.4.1 compatibility. However, if it is bundled as a Mac OS X app, it will (as stated above) get 1.3.1 by default, so end-users will have no problems with any existing applications (that's the Apple Way).
The rules for whether you get 1.3.1 or 1.4.1 are:
command line:
You get 1.4.1 by default. If you want 1.3, you need to execute: (javac is in the same directory if you need the compiler or other tools)
btw I have no idea why there is a space in "Versions" above: if you see it, it shouldn't be there
double-clicked jar files:
You always get 1.4.1.
Mac OS X bundles:
You get 1.3.1 by default. How to specify 1.4.1 depends on whether the app was made with MRJAppBuilder (from the 1.3.1 Dev Tools) or Jar Bundler (from 1.4.1 Dev Tools). For MRJAppBuilder apps, add this line to YourApp.app/Contents/Resources/MRJApp.properties: For Jar Builder apps, in the YourApp.app/Contents/Info.plist file, in the Java section add a key called JVMVersion with a value of 1.4* (you can use the Property List Editor or a text editor).
All this and more is documented in the Release Notes.
Ivan.
Arrrg (Score:2)
Re:Arrrg ( ... the price we pay) (Score:5, Insightful)
I first thought of this but realised the following:
I don't think it is a bad price to pay considering the performance of JAVA applications on OSX ... but your right it was annoying, I hate losing my uptime on the powerbook :)
Word Whomp (Score:1)
Apple made improvements on Java? (Score:5, Interesting)
"On other platforms, each Java application consumes some system memory. So you might end up using more memory than you need to when running multiple Java applications. Other languages, such as C or C++, solve this problem using what?s called shared libraries. Apple developed an innovative new technology that allows Java code to be shared across multiple applications. This reduces the amount of memory that Java applications normally use. And it fits right into Sun?s Hot Spot VM, allowing Mac OS X to remain compatible with standard Java. In addition, Apple has given this implementation to Sun so the company can deploy it on other platforms. Just one example of how Apple supports standards and shares ideas to benefit all"
That's very nice of them.
Hushmail still borked with new JVM. (Score:1)
Major Performance Increase (Score:4, Informative)
I installed and ran a perfunctory test of the new Java Runtime last night. I then fired up Robocode [ibm.com]. I have a Powerbook G4 550, and in the past, I would see around 12 fps during the battles. With the new Java, I was seeing 24 fps consistently!
This is a great leap forward, IMHO.
Re:Major Performance Increase (Score:2)
Eclipse? (Score:1)
JBuilder startup script. (Score:2, Interesting)
quick way to get jbuilder working from the
command line. I've only tested it with jbuilder 6.
Paste it into a file called startJBuilder.sh
or whatever and put the file into the
directory and do a chmod +x startJBuilder.sh. Then you can run it from there with a
Should work with any version of jbuilder and will use the default jre you have installed.
------------- startJBuilder.sh -------------
#!/bin/bash
JARS=`find
CP=.
for X in $JARS; do
CP=$CP:$X
done
DEFS='-Dcom.apple.mrj.application.apple.menu.ab
DEFS=$DEFS' -Dapple.laf.useScreenMenuBar=true'
DEFS=$DEFS' -Dapple.awt.showGrowBox=true'
BOOTCLASS='-Xbootclasspath/p:../lib/lawt.jar:/S
java $BOOTCLASS $DEFS -cp $CP com.borland.jbuilder.JBuilder
Ugliest ever without Quartz Extreme? (Score:3)
Re:disappeared? (Score:2)
Re:disappeared? (Score:2)
This feature had been open to editors, so that they could catch mistakes. This change does not effect regular users at all (except that now some subscribers are mirroring ahead of time for us).
Great Grandaddy poster was asking why the story disappeared, and pudge was saying that it's cause he changed his mind about whether or not it should have been posted to the front page.
Re:disappeared? (Score:3, Funny)
And since it worked so astoundingly well for that, the powers that be decided to open it up for paying customers, too.
Re:dungeon master for Java (Score:2)