There's a saying - "Life is about choices" - that can also be applied to Linux. In the mainstream there are about 60 different vendors with a Linux distribution working on a number of hardware platforms. For the enthusiasts that's okay, as they can reinstall as often as they like. A business, on the other hand, may not share the view that the best way to run an operating system is by trial and error. Knowledge is key here - and knowing what to do if something goes wrong.
Planning and preparation are key to a successful Linux install. Be prepared to do a lot of reading before you make a decision. If you don't know which hardware is installed on the machine you're going to use, find out; it could make or break your chance of creating a working system. For example, does your machine have an Intel i810 video card that's supported by your Linux distribution? If not, how difficult will it be to include that in the kernel? Talk to as many people as you can, find a local Linux user group to get involved with, and arrive at the meeting with a list of questions. The nice thing about Linux users is that they like to help.
Choosing a Java version can be a selective task too. First of all find out which Java versions are currently stable within your chosen Linux distribution. At the time of writing, Debian (www.debian.org) is still using JDK 1.1.8 as a stable Java development kit (this is shipped under license). This may suit your needs just fine. You can run a basic setup of Tomcat and a MySQL driver, for example, and run a couple of Web apps from JDK 1.1.8; the only thing you have to take into consideration is that some of the core classes from the Java 2 API will be missing (you'll be surprised how much you miss them).
We're now entering an exciting time in which Java on the server side is taking off. Java on the Linux server side gives us a secure and reliable architecture with which to host our applications, but we have to understand how the server works, what makes it tick, and what makes it crash. Also it's time to get serious about the way we program and how we manage the way our programs work. For example, do you need to implement a message queue system so you don't throttle the server with processes? You need to know, and it's knowledge like this that will advance your career to bigger and greater things. A good working knowledge of the operating system you're using can create a better foundation for the applications you're building.
Banco do Brasil is in the process of replacing its entire fleet of Windows boxes with Linux. As a result, they are converting their business logic over to Java. They operate with 78,000 employees and serve 12 million customers. From where I'm standing it sounds like they've really done their homework, seen the cost benefits, and are moving forward in quite an aggressive way. I just wish more people were in a position to do the same. If anything the key here is that Java has matured over the last couple of years and people are starting to see the benefits.
With the right amount of research in the areas of Linux and Java, you can transform business practices, cut costs, and show the world that Java doesn't revolve around a PetStore demo. It does come at a price: knowledge and preparation. Once again I can't stress enough the importance of talking to other people, in person or on mailing lists. The chance of someone else being in the same predicament or situation is very high. By sharing knowledge and experiences the Java community stands a very good chance of being able to deliver some exceptional products.
ReferencesDebian Linux: www.debian.org
Jason Bell is a programmer and chief technical officer for a B2B Web portal in York, England. He has been involved in numerous Web projects over the past five years, the last two of which have been servlet-based.