With the full intention of driving widespread adoption of collaboration software, it was trivial to pick Java as the platform: there is no other realistic way to bring together teammates working richly on Macs and Linux, in addition to Windows. Here are a few of the tricks we used to navigate such an operation.
If the product achieves security by extensively using cryptography, it may be highly preferable for all users to have the exact same version of Java. We have observed that there are some incompatibilities between encryption keys, particularly between Java 1.4 and 1.5. This implies making the sizable commitment to downloading Java for every new user—not a big deal according to Moore’s law.
A good way to make a product easy to deploy and upgrade is to use Java Web Start, which in essence is a download manager. JWS is smart, fetching only any upgraded binaries as they become available: downloads are as small as they have to be after the initial installation. We have detected that JWS 1.3 and before are not tolerant enough of low bandwidth or unreliable connections. Thus, it is advisable to require that users have Java 1.4+ before starting product installation.
Sound like a big gamble? Sure, but you are not alone. Google and Sun have partnered to make Java widely available on people’s desktops.