Apple Updates to Java 1.4.1
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.
Time to try IDEA
Guvf vf abg n EBG zrffntr
I do development work (well, or did, but that's another isue), and the Lnux systems use Tomcat with Java 1.4 - mainly because it has the Regular Expressions stuff built in.
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....
52 Weeks, 52 Religions with John Hummel
Full release notes from Sun Microsystems on release 1.4.1, includes overview of changes and detailed description on many updated packages, etc.
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~).
Just installed it and now I can finally scroll a web page with an embedded Java applet without leaving behind artifacts in the broswer window from the applet. The difference is obvious in a page like news.bbc.co.uk were the news ticker no longer corrupts the whole page view when scrolling.
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
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!
Lord Pixel - The cat who walks through walls
A little bigger on the inside than out
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)
The "Java 1.4.1 Developer Tools Update" available via https://connect.apple.com/ -- after you log in, it's under "Java" under "Download Software". There used to be "Recent Updates" section where they put stuff like this, but it seems to have gone missing.
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.
I don't think the parent post meant that Java for OS X run only from the command line (obviously it didn't), or that it didn't support Swing (well, duh, of course it did), but that support for these things was weak -- which was certainly true.
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.
It's nice to have OS X remind me of updates that actually IMPROVE performance. This is real nice coming from a Windows world where every week there's a new "Windows update," fixing some bug that was discovered 2 weeks before.
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.
"Come for the Java and stay for the Cocoa and the Java." Last year it was just "Come for the Java stay for the Cocoa".
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.
--
The internet is the greatest source of biased information in the history of mankind.
Without a doubt, ReaderWare , a book, DVD & CD cataloging suite that has absolutely saved my life...
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?
I write in my journal
"Give me the book, or you're a dead man," sneered the thug behind the revolver.
"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..."
This sig intentionally left justified.
From the Apple website:
"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.
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 :)
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.
I installed and ran a perfunctory test of the new Java Runtime last night. I then fired up Robocode. 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.
"Smart is sexy." -- D. Scully ("War of the Coprophages")