Steve Anglin reports from last week's Mac OS X Conference with some talk summaries and slide downloads about the state of Java on the Mac, including a talk on how to work with Tomcat + Apache. With its Unix-base and strong support for Java, the Mac is now a good alternative to Windows, as a J2EE development workstation.
Read Looking back at Java from Mac OS X Conference
I use Mac OS X for a lot of my development efforts. It also suffices as a general workstation, because of its access to Microsoft Office, Outlook (and hence exchange servers), and file shares.
I've run the following applications on my PowerBook G4/500, running Mac OS X 10.2:
- BEA WebLogic 6. 7 should be fine too. You can copy the files over from another UNIX or even Windows installation, ensure the paths in the startup .sh files are correct, and it will work. The only problem with this is that it doesn't have a native "performance pack" and hence only uses java.io.*, thus restricting Mac OS X to development purposes in general.
Hopefully as WebLogic moves towards java.nio.* (or BEA provides an official Mac OS X port) this will be less an issue and Mac OS X will be a viable production WebLogic environment.
- TopLink 3.5 through 4.0. It's 100% Java, there's really nothing magical here. The Mapping Workbench looks wonderful in the Aqua Swing look and feel.
- Tomcat 3.3 and 4.0 (no brainer, it just runs)
- Oracle 9i Release 2 -- though it's only a developer's release and doesn't have any of the OEM GUI's. Sybase Adaptive Server Release 12 is also available for OS X.
- JBuilder 5 and 6. Even the windows version used to work by just copying the files over and modifying the startup script.
- Any X Windows Applicaiton that I've got source for, including KDE/Qt apps or GTK+/Gnome apps. FINK is a really great utility on SourceForge that uses Debian's package mechanism for installing binaries of free Mac OS X apps.
- Sun's J2EE Reference Implementation SDK 1.2.1 (needed to just recompile their C library for CORBA, wasn't too hard with the source release and make).
Well, enough about what I've run successfully... what's the real benefit of Mac OS X? Well, the way I see it:
- It's the best of both worlds between a modern GUI system and UNIX. I can mix and match tools to my liking, whether for Linux / UNIX, or MacOS. Eclipse, CodeWarrior, and JBuilder are available, but so are Emacs, VI, and all the other free tools used by Linux.
- It's a fast hardware platform, even for a laptop. The new PowerBook models support up to 1 GB of sdram on a 133MHZ bus and Gigabit ethernet, firewire support for fast external hard drives, etc. The mini-towers are dual processor, 2 gigs of DDR SDRAM, have heavy L2 and L3 cache, and 167MHZ frontside bus. It's quite comparable to the Intel Pentium 4's out there, but with a nicer OS.
- Virtual PC allows me the freedom to run other OS's the way that VMWare does... but even Windows 2K/XP. And it's a reasonable speed.
- WebObjects is a very useful web application server and is great to develop for with Mac OS X.
Here are some of the issues I've run into:
- Until end of August, I didn't have a database platform I was happy with. I could run Postgres or MySQL, but I wanted Oracle. Thankfully, I have it now.
- Apple's IDE isn't as intuitive for Java people, because of it's C/C++ heritage. The build system is clunky. Eclipse for OS X isn't ready for primetime yet, though it's getting there.
- No Java 1.4 yet.
So, that's my view of Mac OS... its a solid development platform for Java, and I really can't see a practical reason why I'd choose Linux over it (assuming cost isn't your major constraint).
I am also a convert from Windows to a PowerBook and I think it's an excellent machine to do development on. I run Oracle 9i, the Oracle containers for Java and Together in paralell with Mozilla and everyhing else and it copes with heavy loads a lot better than my Win2K 1Ghz PC with 640MB memory..
Anyway, if you're doing any Oracle work on the mac make sure to get TOra at http://www.globesoft.se/tora/
. There's currently no binary distribution do download but the source distribution compiles flawlessly as long as the following requirements are met:
1. ORACLE_HOME is set
2. X is installed
3. Qt is installed
I suggest you use fink to get X and Qt, then all you have to do is:
[boris:~/tmp/tora] nerm% ./configure
[boris:~/tmp/tora] nerm% make
[boris:~/tmp/tora] nerm% sudo make install
And it should be up and running.
Note however that it is possible to get it to integrate with KDE, but I haven't succeeded in building it with that yet. I'm looking in to it though..
/ Olof J?nsson
the Mac is now a good alternative to Windows, as a J2EE
> development workstation
you make this sound as if J2EE development and Windows were in any way tied together. That is, of course, not the case. If you really want praise the Mac, then say that some would even consider it as an alternative to Linux as a J2EE development workstation.
Don't make me laugh. Yeah if you like using vi or emacs to edit code then linux is great. However swing performance sucks (well it sucks on everything, but on linux it's particularly awful).
Even eclipse on linux isn't that good - gtk version is unstable and motif ui's are not user friendly at all IMO.
I guess I don't understand what's so awful about Windows for day-to-day development. 2000 is stable, and you don't have to reboot every time you want to use excel (yes i've used openoffice, it's mangled plenty of perfectly good office files).
That said, you can use excel in OSX, you can do pretty much everything you need windows for (with a much better GUI), and you're running on unix (stability, great CLI, etc etc). I keep looking for a good excuse to go pick up a mac, and I never imagined I'd say something like that.
Steve C wrote: However swing performance sucks (well it sucks on everything...)
It's so easy to judge other tools/libraries/api, and so difficult to design (or at least use) particular one.
Even assembler does not help to achieve better performance - in case developer is unexperienced, uneducated, irresponsible person, who dont want to learn/understand/apply problem domain specific solutions :)
If Mac port of SWT (A GUI toolkit by IBM, like SWING, but much faster, since it uses native OS widgets.) is ready yet, you can use it too. It is cross platform like SWING, and works incredibly fast. You can check it out SWT here: http://www.eclipse.org
I think it should be ready, since Eclipse has a new Mac OSX version.
swing performance sucks (well it sucks on everything, but on linux it's particularly awful).
Huh? I have been using the same swing app (IDEA) for months now on both Windows (NT 4) and Linux, and there is no noticeable speed difference. Its nice on both.
Agreed. And because it is using Swing, it also looks nice...
IDEA runs great on OS X, as well (although the EAP version doesn't yet, since it requires JDK 1.4).
I've developed Java apps in Windows 2k, Linux and OS X. I have to say that I really like OS X, except for the case issue. It "recognizes" case, but if you save a file named Foo.java in the same directory where a foo.java already exists, it'll overwrite the latter. Win2k is the first OS out of Redmond that I actually like. That being said, I still like developing on Linux better for a couple of reasons. I've never noticed that Swing or AWT runs any slower on it than on Win2k (although OS X's speed improvements in this area are very nice). Everything that I use is supported and runs great on Linux (Netbeans, Orion, PostgreSQL, Oracle, JRun). Please drop the "Swing is slow on Linux" argument unless you actually have firsthand experience, because in my _firsthand_ experience it's untrue.
Yes this is based on firsthand experience (why do Linux users get so defensive? Must be an OS/2-like religion thing. Or siege mentality?).
For instance, anything that involves opening a dialog (say, the process of including a new library in your project in IDEA) is painfully slow on Linux vs Windows.
I heard that there are swing optimizations in OS X. Can any current Mac users contrast swing performance on OS X vs Windows & Linux?
If you go back to build 629, you can run it on apples 1.3.1 vm.
Posted by Christian Sell 2002-10-10 04:32:30.0.
>> swing performance sucks (well it sucks on everything, but
>on linux it's particularly awful).
>Huh? I have been using the same swing app (IDEA) for months
>now on both Windows (NT 4) and Linux, and there is no
>noticeable speed difference. Its nice on both.
just to fuel up the flames, I confirm that. I'm using IDEA 2.6 on both my desktop win2000 and my linux slackware laptop and its very fast on both. Ok you can argue these are pretty powerfull machines (the laptop is a dell i8200, p4 1.6GHz & 1 Gb Ram) but even on my old machine at home (p3 450MHz + 192 Mb RAM) IDEA is perfectly usable. It's not as snappy as nedit, but still very usable.
"you make this sound as if J2EE development and Windows were in any way tied together."
My assumption is that there is a strong class of developers who only use windows as their workstation environmentl. So, Mac is a good alternative for the windows people for obvious reasons. I was not suggesting that there isn't a strong legion of J2EE-linux based workstation developers.
Oh, dear, I'd really love to agree, but unfortunately, in my experience, there are some really bad drawbacks compared to Windows and Lunux like
- Only limited database support on OS/X
- The keyboard both quality and layout, for example you cannot use IDEA 2.5 with a German keyboard.
- No JDK 1.4 support (or is there now?)
And of course, configuring OS/X is like messing around with the Caldera Linux cofiguration five years ago.
IMHO, Apple needs to put at least a year more development into OS/X _and_ come up with more processing power.
I recently switched from a combination of Win2k and Linux to a top-of-the-line PowerBook. Upgraded to Jaguar and I am downloading Oracle just now.
With Oracle added the databases supporting Jaguar are enough.
It's missing maybe DB2.
Swing is so nice and fast, that if there had been a comparable implementation years ago on Windows, Java would have been king of "the client side".
I miss not one piece of software of windows or linux, except maybe the XML/XSL transformations of IE6 (but I don't know if there's other software that can do the same on the Mac).
I don't miss JDK1.4 since the application servers , Java applications and libraries I use are not compiled on 1.4 so there is no need to move yet.
For those who care, there will be soon a JDK1.4 available as well letting users switch easily from the default JDK (I don't know which one will be) to the other one.
The nice thing is that if you develop a Java app on Jaguar you will have a better chance of selling it since you know for certain that your audience has Java correclty installed (even Web Start) and Mac users are used to pay for the software they use, unlike their siblings on linux and windows.
Someone was complaining that OS-X wasn't ready yet, you should check out the new features in Jaguar.
Apple has hired top BSD engineers, their UNIX core, IMHO, will soon be better than Linux and many other UNIX flavours as well.
(Let's not even go into the fact that they managed to have Word, Photoshop, Firewire, DVD read and write support run flawlessly on BSD).
Only drawback might be the cost, if you are used to only use open-source or freeware.