MacOS X is my Java development environment
I just read Cay Horstmann's complaints about MacOS X as a Java development environment, and was struck by just how differently we perceive the coding universe.
I am reluctant to disagree with Dr. Horstmann, given the amount I have learned from his columns and books over the years, but I really think he is off base. He feels that MacOS X is far inferior to Linux as a coding environment, while I have had the opposite experience.
My world revolves around biotech consulting and custom applications. I work both on the server side and the client, and while Java is not my only tool, it is in an important one for what I do. I tend to need Perl, ssh, Java, and the usual productivity tools. It is not enough for me to have a nice development environment, I also need support tools as well, and the MacOS X environment gives me the tools I want in an interface that is acceptable.
Cay gives six ways in which the Mac is inferior. Of these, the first two are quite real - Apple does have some problems with VM start time, and they do have differences in the graphics subsystem. The specific problem Cay mentioned with his UML editor Violet have been fixed in Panther, but the overall problem of having a different vendor on Apple than on Windows and Linux is real. Deficiencies are fixed over time, but as long as Sun is the sole vendor for Java on Linux, Windows, and Solaris, they form the baseline of how the system should perform. Even when Sun violates the contract of its APIs, there will be people who will find any other behavior wrong, and when the alternative behavior is clearly inferior, the people complaining about Apple's implementation have a strong case.
The other four seem to stem from not differentiating between the developer communities and the corporate office. Like most corporate office wonks, Apple trade show reps seem to have told him that the Apple way is the only way. This is annoying, incorrect, and regrettably par for the course from all too many vendors. I recall trying, and failing, to get support from RedHat and Dell for a hardware configuration problem one of my clients had. It was not pretty, and that was with a paid support contract. In my experience, Apple has responded better to support requests, but I still find vendor support pretty lousy across the industry. The Linux world is not winning any prizes here, at least in my experience.
The Mac developer and user community, on the other hand, tends to have solved the problems that face them, some with Apple software and hardware, and some without. They tend to have third party mice, a mixture of open source, closed source, and Apple software, and an overall problem solving attitude. In this regard, they are very like the Linux developer communities. I do see rather less software modification, and more configuration, but they are getting their work done.
As far as hardware goes, I have been happy with my decision to use a TiBook/667 for my sole computing environment. It has been a trooper, only failing when I dropped it on a floor from a height. My wife's TiBook/400 has had two problems that justified sending it back to Apple for repairs, which is not as good a record, but first revs of new hardware often have their little surprises. In the main, the people I know with TiBooks have had pretty good luck with the hardware. Again, a real concern, but I have not had nearly as many problems as Cay seems to have had. Different usage patterns, perhaps, or different luck of the draw.
I do worry about Apple's commitment to Java. Their new XCode dev environment does not handle Java very well, though it does work. I am hoping that they are going to push Java development in future releases, but I am concerned. A major test will be 1.5 time to market, as that depends on a lot of factors.
Thanks be to Eclipse, which does work well. I also find it encouraging that they are now using JBoss as the underlayer to WebObjects, which might mean that Apple is finally willing to play nice with others.