I'm pretty sure that all the Macs Apple sells now (and for the past year or so) are 64-bit. (Also it's been available since April). But yes, it's less than ideal.
I'm pretty sure that all the Macs Apple sells now (and for the past year or so) are 64-bit. (Also it's been available since April). But yes, it's less than ideal.
As for the feel: Don't get bogged down by the implementation technology. The vast majority of your customers (presuming you're not targeting the rabid fanboy subset of Mac) will not notice nor care about the language you've implemented your application in.
If your software does what a business needs and looks reasonably good while doing it, you'll make a killing.
You know.... as it's Java. It should run (with modest effort) on a few platforms.
You cannot deploy Java 6 applications to Mac (except 64-bit Intel Mac OS X 10.5 after September, as mentioned above). You can build Java 6 for all other platforms (back to Windows 98, FFS), but to work for Mac customers you have to adjust your build to create a Java 1.5 version.
You also have to add in special Java upgrade instructions for those using OS X 10.4 (since the 1.5 upgrade isn't included in automatic updates), and tell anyone with a Mac earlier than that to piss off, because Java 1.5 (released over FOUR years ago, in 2004) won't work on OS X 10.3 or earlier.
That is an exceptional pain which isn't present on Windows or Linux.
Apple makes wonderful hardware but they treat their third-party developers like crap. Microsoft is absolutely awesome in comparison and realizes that "Developers, Developers, Developers" are the secret to their OS's success.
Every time Apple upgrades their Mac OS a frantic application re-write is often required from third-party developers just to get things working on the new platform. In contrast, I can pull out an application written 15 years ago for DOS and fire it up under Windows without a problem. Microsoft realizes how important it is to keep third-party software working on their platform and bends over backwards to provide that backward compatibility.
For our own software, we've not had to tinker with the base code (written on Win 98) at all under Windows.
Building desktop apps for Mac is a (lucrative) pain.
It's true Microsoft goes to extraordinary lengths to keep backwards compatibility. Consider the Joel Spolsky anecdote about SimCity: http://www.joelonsoftware.com/articles/APIWar.html
In case you missed that, SimCity had a bug where it used memory it already freed. This worked under DOS for whatever reason, but not under Windows. So the Windows team hardcoded a special case just for SimCity.
That is going too far, IMO. Why should my OS have all this extra bloat to check for buggy applications? This is why OS vendors seed preview releases to developers, so they can test their own damn software and issue fixes for these kinds of bugs. While it may have been hard to distribute updates 20 years ago, with the internet it's trivial.
It sounds like there was a some kind of bug in DOS that allowed SimCity to work with object freed from memory and Windows team tried to hide it in Windows by making a special case :)
In any case I think it's called going an extra mile for the customer, isn't it? (I can't believe I'm writing it about MS)
It might work sometimes, but I'm pretty sure most platforms consider that behavior undefined.
Also, Apple never just pulls the plug on an API - at worst, if you use an API, and then Apple decides to remove the API, the next version of the OS simply lists the API as deprecated, and you get a warning when you compile. It is only in the following version of the OS that the API may actually be pulled. I don't think it's unreasonable to expect developers to update their apps every 2-3 years if they want them to keep working.
As for Java developers wanting to develop on the Mac, well, I don't know any Mac developers still using PPC Macs as their principle machine. Actually, I don't know any developer, period, using a computer that is older than about 2-3 years as their principle machine.