Posted by
felipegaucho on November 17, 2005 at 11:28 AM PST
During a recent debate about Java, Linux and OSS I have observed that some old fears
are still alive and are still avoiding a collaboration between the OSS community
and the Java community. Underneath the traditional flames involved in such discussion,
there is an open question to be answered: Why the Java developers
don't use Linux as development platform ?. I know Linux users could
think it is an odd assertion, but I perceive much more Java developers using
Windows than Linux.
I don´t have intention to promote another discussion about
Linux vs
Windows or Java vs Whatever, but I´m looking for the reason that keep the Java users
away from the free plataform. More important, I´m looking for comfortable ways of attracting
more Java people to Linux. Believe me: it is not an easy task - to remove people from their
controlled environment and push them into the unknown environment - new tools, new commands
and even the simple task needing a reading of a book or a manual. These first frightful
steps avoid many of my friends to adopt linux and I think it is our duty to maintain an open
mind in order to facilitate this culture migration.
Some of the traditional issues about Java on Linux:
- Distros without Java environment: despite the usage of open source tools
by the majority of the Java developers, almost no distro comes with an integrated Java
development environment. From the point of view of the OSS community, an Open Source software
should not depend on a proprietary software - and the
JVM license is a
proprietary one. Some initiatives such as the
Apache Harmony are working around this eternal conflict trying to produce an entirely
Open Source Java Virtual Machine.
- The legacy of the environment configuration: many Java developers are
already using integration tools and configuration strategies on Windows, and many
of these tools require a reconfiguration in order to run on Linux. One can argue the simplicity
of such configuration but not all people are ready to spend days or weeks refactoring things
that are working fine. Comfort is the key problem here.
- Dependency of proprietary tools: java development is not only Java programming.
The processes adopted by the companies include comunication, continuous integration, tests, quality
and reprts - every tools related to the management of a Java Project. MS Project is the most obvious
example of a tool that few people are ready to abandon in the name of the Linux. There are several
other examples, including some complex development environment that depend on a set of
comercial products that could force the definition of new processes in some enterprises. Comfort, money
and risk are concerns here.
- Fear, uncertainty and doubt (FUD)
: several people comment about the comfort
in using an operational system for more than ten years - they know almost every important command
of Windows, and they are so accustomed to the windows environment that they simply give up to try
other systems. A very common perception is about the lack of information - the recent versions
of the Linux distros comes with an usability very similar to Windows and perhaps with much better
functions in some cases. Installation process, an old nightmare, has been shaped in a dummy
level and some distros like Suse and
Fedora includes visual wizards that make
installation very easy.
Moving on
Well, in order to brake the inertia caused by the discomfort of a complete
migration from Windows to Linux platform, I have created a checklist about how to
move to Linux:
- Choose the Open Source tools: almost every tool used by the Java community
have a Linux distribution. The first step of the proposed migration is to find the tools
you need in the Linux platform. A complete list is not reasonable because it depends on the particular
needs of each user. Due to that I just recommend you to check the extensive list provided by the
Java-Source.net. The most popular list should include the following
items:
- IDEs: Eclipse
, NetBeans
, JDeveloper.
- Build tools: Ant
, Maven
, others.
- Continuous integration:
Cruise Control.
- Web Server / J2EE Container: Tomcat
, JBoss
, Geronimo
, others.
- UML Modelers:
Umbrello
, Jude
, others.
- Database:
MySql
, PostgreSQL
, HSQLDB,
others.
- Version Control: CVS,
subversion,
others.
- Issue trackers: iTracker
, Bugzilla
, others.
- Office suite: OpenOffice,
gnome office
- Project managment tools: XPlanner,
others.
- Choose the flavor of your Linux: this is one of more delicious part.
Different of Windows and other proprietary operational systems,
Linux provide you a large number of possibilities, from the raw systems to the easy-to-use
environments. There are several lists about Linux distributions
on the web and I suggest you to choose the most popular ones in the beginning of your migration.
- Register yourself into a discussion list (optional): A powerful way to learn
something is to discuss it with experienced persons. Linux has a large community, it should be easy
to find a community in your country
or in your language.
- Read some introduction books (optional): there are some online books in the
Google Print and also a large number of
publications about Linux and about Java Programming on Linux. Check it out.
- The installation phase: after downloading and installing some of the above tools,
you are able to start working on Linux. The installation process could be messy and you should be
patient in order to get all the things working togheter.
The VMWare and the bootable Live CDs
Some interesting tools that can be useful
if you are not sure about the Linux usage: the operational systems running on virtual machines
and the magician Linux CD which runs fully configured from a single machine reboot. Recently,
the VMWare released a free VMWare player
- it allows you to run the Linux into your Windows
system without installing anything unless the vmware player. There is some
pre-built virtual machines available on the web.
Other good alternative to evaluate Linux before installing a distribution into you HD is
to use a Live CD. There are a lot of
distributions based on live CD, basically a CD you load into your CD-Rom - after that,
just reset the computer and the Linux will be alive on your machine. You can use these CDs to evaluate
what is the best Linux distribution for your needs, and also to test that strange distribution
just for fun.
Well, that´s it! I hope this long entry help you to think about the usage of Linux in your
day-by-day. I am working here in my community in order to help other developers to adopt
Linux because I believe the operational system is the last commercial software many people
are still using - there is a strange feeling in using a lot of Open Source tools on a
comercial plataform - why if we have free choices?. There is a lot of other choices, such as
Solaris or commercial platforms, but the majority of my friends are still imprisoned into Windows
and much of this scenario is caused by our comfortable inertia.
Let's produce more Open Source Software with Java and let's produce them on Linux.