 |
Moving to Linux
Posted by felipegaucho on November 17, 2005 at 11:28 AM | Comments (20)
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.
Bookmark blog post: del.icio.us Digg DZone Furl Reddit
Comments
Comments are listed in date ascending order (oldest first) | Post Comment
-
Felipe,
Could the answer be as simple as the fact that it is almost impossible to buy a machine the doesn't already have Windows installed on it?
Linux PCs: Customer service or lip service?
--JohnR
Posted by: johnreynolds on November 17, 2005 at 12:33 PM
-
I don't think that can be it. There's quite a pleasure to be had in having a Linux installation program wipe a never-booted Windows install off of a hard-drive.
Posted by: ewinslow on November 17, 2005 at 09:17 PM
-
The answer is that there is no problem. Most Java programmers, in contrast to a lot of Linux users, are not religious zealots who can't accept that not everyone follows their passion.
So a Java programmer will use the tools best suited for the job, and on the desktop that usually means Windows (this from personal experience, having used both Windows and Linux).
Personally, I'd not make Linux my main desktop environment unless it improves quite a bit (especially in userfriendliness and performance), and certainly not recommend it as a company-wide desktop where non-technical people would have to use it as well. Solaris would be a better option for something like that.
So maybe we're just too pragmatic for the Linux crowd, despite our products working just fine on their machines and a lot of us deploying to Linux based servers as a matter of course.
Your assertions that people are "imprisoned in Windows" and that "the operating system is the only commercial software people use" are wholly false. Looking in my own company, some people use Eclipse and we run Linux on some of our servers (with Apache and Tomcat), but that's the only open source software in operation in a company with some 75 people. All of the rest is either COTS or written internally. And we're not planning to change that any time soon, as it simply just works. As a company you should NEVER choose open source simply because it's a religious statement (which to the majority of people running Linux especially in a desktop environment it is, as the tone of your article shows clearly is the case for you too). Unless there's a clear business need for it, you shouldn't do it.
Posted by: jwenting on November 17, 2005 at 10:48 PM
-
I do use Linux, for ideological reasons. But since I now have a Mac I much prefer to use that. And much as I hate to admit it, using WindowsXP for development is also more pleasurable than using Linux.
A big problem is that GUIs just generally look crap and work worse on Linux. Maybe it would be better if I install gnome, but every time I have tried so far, it bombed out after compiling for 12 hours because of some dependency that seemed impossible to fulfill. I have to take enough crap from computers with the code I write, so if I can get something that looks nice and just works...
Posted by: tobega on November 18, 2005 at 01:59 AM
-
For databases, it should be noted that most proprietary databases run very well under Linux, so you do not need to switch to a free software database. Inf act you can download free (but full-featured) versions of Oracle and DB2 for Linux, you don't need to buy extra licenses for development work.
For Project management, most Linux distros come with Planner, which is a desktop app much alike MS Project (the latest release can even read MS Project files), while XPlanner is a web-based tool focused on managing Extreme Programming interactions.
You could also add CASE tools like Umbella (which also comes standard with many distros) and ArgoUML (pure-Java).
Desktop apps like NVU (visual HTML Editor) and Gimp (image/photo editor) also ease the migration to Linux.
By the way, most of these tools also work with Windows, so you can start using them before swithcing the OS, having less trouble to adapt.
I believe user tobega simply shoose the wrong linux distro. If you install Debian, Fedora, Suse or Mandriva you get by standard beautifull and easy-to-use KDE and/or Gnome desktops. No need to compile anything. Actually my personal experience (which also includes dozen customers having thousands of desktops) shows more hardware compatibility problems and applicaton problems using Windows than Linux!
jwenting, most Java developers are not so open-minded and most Linux users and developers are not so zealots as you're saying. And most Java developers still use Windows by pure inertia and lack of knowledge of alternatives (most still think you need to compile a new linux kernel to install a device-driver).
Two years ago I were a consultant for a big web app (a financial system). The customer decided to use JBoss and PostgreSQL instead of the Oracle tools they were used to, and that's the reason for me being there. As I use Linux on my notebook (Red Hat and later Fedora) they got impressed as I could to everything they did with Windows, and I did better, faster than them. The fact they were also using Eclipse as development platform and they could see me running Eclipse under Linux also helped a lot. After less than two months (and my work there was part time) all customer developers demanded to have Linux installed on their machines, and none of them had any previous exposure do Linux.
For me this is very common: a customer becomes impressed by the ease I can do everyday tasks (and better yet, develpment and systems management tasks) using Linux. They never believed it was possible to switch away from Windows to anything else.
Another case of migraton, I one went to a publich high-school where I'd teach courses on computer programming and networking. I let a Linux CD with the techinician responsible for the computer labs, who had never seen Linux before, but used Windows since 3.x. I Installed one machine and went out, let him install the others. Two days latter he told me it was much easier to install and configure Linux tham Windows. And each machine had a different hardware, as most came from donations.
So, except for ones locked into Microsoft tools (not just Office) and applications that run only on Windows, I can see no objective reason someone would not be able to switch to Linux in a short time. The problem is most won't even try, and would give up at the first small trouble, forgetting all the time they spent leaning Windows tricks and the daily problems caused by virus and Windows instability.
People don't like change, no matter what they could gain from it.
Posted by: flozano on November 18, 2005 at 05:11 AM
-
ehy guys? what r u talking about?!?
slow? worse GUI? difficult? compiling GNOME?
try the last Fedora Core or OpenSuse and then let me know... :D
Linux is also usefull for non technical ppl coz it have all the things they need (office, email, browser) and there are no virus problem...also u can personalize ta linux distro for the company where u work and put it in a dvd using the hard disk online for datas and deploying the OS on DVD...so if u want to update just change the dvd...very powerful...
I use linux as main desktop and windows (2000) only on vmware to test my java program...I develop on linux (mainly using Eclipse) and I feel very good...
demetrio filocamo
Posted by: dfilocamo on November 18, 2005 at 05:33 AM
-
Most Linux users I've met are zealots, the only exceptions being programmers :)
Yes, in my experience Linux is slower than Windows on the same hardware. Not when running something small like GVim or a command shell, but when running a heavy application like Eclipse there's a noticeable difference.
Hardware support is also still lacking, though getting better.
Then there's the problem of often having to spend hours or days fiddling with configuration files scattered all over the machine to get even the simplest things working.
Personally I've never had problems with Windows. The last time I had a virus infection was in 1994, the only virusses and other bad stuff that tries to get onto my machine are some email virusses which are intercepted on the way from my ISPs mailserver to my own. That's likely because I don't use P2P crap to download tons of pirated stuff. In fact the only major flood of attempts to get virus emails onto my machine came through a Linux mailing list which I was subscribed to at the time. Makes one wonder...
I'm certainly no religious zealot, running Windows and Linux both at home and at work, and having worked with several other OSs over the years. I'm seriously considering buying a Mac and/or a Sparcstation as well to expand my collection.
But at the moment Windows is my preferred desktop environment for ease of use, performance, and application availability (yes, there is a lot for Linux but most still has the same unfinnished look and feel it had 5 years ago).
Posted by: jwenting on November 18, 2005 at 06:40 AM
-
Interesting how posts reflect the point of the original poster about traditional issues:
compiling something? What is it - 1996?
Just use one of modern, user-friendly distros such as Ubuntu. I have dual Opteron at home, everyting is about 12 times faster than on standard company-ware I have in the office.
And tools? Eclipse, Ant, Maven, Jboss, Tomcat, WebLogic, Oracle, Postgres, CVS, etc. all run great. NetBeans not so much and I personally hate how Swing looks like on LCD monitors.
Supplementary tools? Thunderbird is way better email client than Outlook and not running AntiVirus all the time is worth the upgrade by itself.
For developer, every second shaved off change-compile-run cycle is priceless. Linux desktop definitely should be on your list of options.
Posted by: mgarber on November 18, 2005 at 07:05 AM
-
This is the kind of FUD the article was speaking about. Weak educated people (mostly users) spreading their one and only-right opinion.
1.) "As a company you should NEVER choose open source simply because it's a religious statement"
Well then you've definitivly never had the problem of making software-discisions?!
Our software department was several times faced with problems like bankrupt companies, discontinued products or really expensive licensing costs (which have been really cheap a few releases back when the software was not the popular).
2.)"Personally, I'd not make Linux my main desktop environment unless it improves quite a bit (especially in userfriendliness and performance)"
In the company I work for (I am project leader) we are 125 people (almost all are java coders) and everybody is free to work with the tools he/she likes - this is THE real productivity boost. Teamwork is done by using open standards like subversion.
About 75 of the devs use Linux for their java development since they like the comfort the Linux desktops provide to them (linux itself has no gui nore a desktop enviroment, its just a kernel), 25 use OSX and the rest win2k/xp. Everybody is happy, no problems.
Last but not least our company IS concerned about the fact that Java is not open source. What if sun would decide from one day to another to charge for the jdk/jre - since you may not license the jre itself (if you put it on a CD still SUN gives your users the right to use it, not you) we would be out of buisness immediatly!
Not that realistic but may happen especially when looking to SUN's financial situation.
lg Clemens
Posted by: linuxhippy on November 18, 2005 at 10:43 AM
-
Flexibility and choice is the key. As a relative Linux newbie, I run Ubuntu 5.10 out of the box (no problem). Java5, Eclipse 3.1, Tomcat, Ant - no problem. Also downloaded NetBeans 5.1. My focus is on Java development, not the underlying OS. Only thing I could do with is a good shared calendaring solution (use Thunderbird as Evolution is a little crash prone), but it's not a show-stopper.
Posted by: gng on November 18, 2005 at 01:01 PM
-
I find the many Linux distros to be a problem rather than a good thing. I have tried 3 different distros over the past 4 years and the time spent using them as a desktop environment wasn't exactly pleasant. Configuring the video drivers and persuading the wireless card to work on a laptop was very time consuming especially since you had to find instructions for your specific distro rather than just searching for "Linux". Gnome was very nice, but still a long way behind WIndows. 3 words I have for the Linux gurus who want to lure more users.... "ease of use". If you want to win, get a desktop with Gnome/KDE and one with WIndows and then just duplicate every feature Windows has to offer. This is one reason that I have recently given up on Linux and switched to OS X as a development environment. It's Unix under the hood which means I get to use my command line when I want and everything is more stable than WIndows, but I have a desktop that surpases Windows. So far the transition is going very well. Java 5 and Netbeans installed without a hitch and I didn't have to track down any hard to find drivers to install.... so far, everything just works. ;-)
Posted by: evickroy on November 18, 2005 at 09:50 PM
-
I have used Linux for several years as my Java development environment (and desktop). Java has been working super-smoothly.
I have modest requirements for a desktop, as I don't use it for playing music or videos. Everything I need (Firefox, Thunderbird, OpenOffice, Acrobat, ...) just works. I use Fedora Core because I am too lazy to move to Ubuntu. Either one seems a great choice for a developer.
What are the alternatives? Windows with Cygwin. Ok, except for the malware and the shitty command shell. OS X. Pretty, but Java sucks, and keyboard shortcuts aren't great.
If you are a first and foremost a Java developer, do yourself a favor and use Linux. If you are a music/video lover who dabbles in Java, OS X is a good choice.
Posted by: cayhorstmann on November 18, 2005 at 10:27 PM
-
3 words I have for the Linux gurus who want to lure more users.... "ease of use".
To be honest it doesn't bother me at all how many stupid windows users switch to linux - or wether they switch at all.
Sure it would be great since linux would receive better support from large software comanies ... but for now I have all and everything with linux I ever wanted!
I've got a really great desktop, a good command line, some nice apps ... and most important very well working java (pre-1.4 was quite ugly on linux).
For my taste productivity is higher than with OSX or Windows although there's less eye-candy which I prefer - the only"drawback" is that you should understand whats going on behind the scenes instead of just clicking a few buttons - I am sometimes quite angry about that but on the other side this helps me to slove linux problems which correspinding windows probs would lead to a new os-installation so far, lg Clemens
Posted by: linuxhippy on November 19, 2005 at 03:35 AM
-
I have been developing Java on Linux for 6 years. It was very difficult back then. We had to use a JDK from Blackdown because Sun did not release a JDK for Linux. Most IDEs were Windows only. So it was tough.
In all the projects I am on where we develop for Linux, I try to get some of the developers to develop on Linux. This avoids integration problems later. On the project I am now on 50% of the developers run Linux and 50% Windows. The project before that it was 100% Linux, and before that 100% Linux and before that 20% Linux. So the numbers in my experience are not quite as dire as other commentators.
One thing I have noticed is the large number of people developing on Mac OS X. I visited a group earlier this week. 90% of the engineers develop on Mac OS X. Linux has met a strong head wind to adoption with Mac OS X. I myself develop Java on Mac OS X at home, and on Linux at work.
Developing Java on Linux now is very easy, easier than on Windows. You get a great terminal, tail for logs, and a great shell. If you want to do everything with a mouse you still can.
The adoption issues are the same as in the general population. Linux on the desktop is much much better than it used to be, but way behind OS X. Dual booting for Windows only apps is a pain. Doing full-time Linux means using CrossOver Office, a great WINE distribution that will run MS Office and Lotus Notes or VMWare.
Posted by: gregrluck on November 19, 2005 at 10:07 AM
-
Just use whatever suits you. That's one of the great things about Java - it doesn't matter what OS you have, you can choose the one of your taste.
If you want integrated graphic environment and no hardware problems (and almost no hardware choice), choose Apple.
If you want every commercial application and every piece of hardware available, choose Windows.
If you know the power of command-line or you need to save money or you believe in free software, Linux is here for you.
If you want real Unix, choose Solaris.
If you don't know, just try them.
Posted by: podlesh on November 21, 2005 at 01:35 AM
-
I use Linux to work with Java. I love to work with C++ and Perl as well as the unix tools and environment, so Linux has it all. If I need windows for MS project or something else, I log on to a terminal server with rdesktop. I don't need it very often so I don't mind the latency. Gnome is a great desktop and very mature and to me it looks better than windows. It's certainly more customisable. I find Linux more satisfying to work with than windows, so I'll stick with it for the time being.
Posted by: rshields on November 25, 2005 at 02:49 PM
-
the only"drawback" is that you should understand whats going on behind the scenes instead of just clicking a few buttons
To empahsise your point, this is not a drawback. Being skilled in the unix environment makes you more productive and more valuable as a developer. Being a button pusher is not something to be proud of.
Posted by: rshields on November 25, 2005 at 03:00 PM
-
Nowhere in your article do you say WHY it is better to develop Java apps on Linux rather than Windows. Is it better? Is it for idelogical reasons?
The reason I develop Java on Windows is rather mundane - in 10 years of working for corporate companies, I have always been issued with a Windows machine. Don't forget that a typical, corporate, Windows machine is probably running MS Office and Outlook.
Even if I wanted to develop Java on Linux (or Solaris for that matter) I would be the odd one out and have to go through bureacracy to achieve it. Not to mention that I would then need to know Unix skills.
Its not worth the bother.
Posted by: too_many_details on November 29, 2005 at 07:05 AM
-
I'm an independent developer with 4 linux boxes in my home office serving various functions (development machine, firewall/router, db server, etc.) and I have linux servers installed at customer locations running java apps that I routinely ssh into for various support reasons. I also have one laptop running XP. Linux is by far the more stable and flexible platform. But.... my primary development machine is the XP laptop for one reason: fonts. Yes, I've worked the x11 font installation options which are an improvement - but still no contest. Bottom line is that my eyes are much happier staring at a windows screen all day than a Gnome or KDE screen. Todays IDE's provide a wealth of information and window's "effective" screen resolution is probably 20% better than linux with all other factors being equal. I could care less about eye-candy but I do value readable text with the smaller fonts. Please recognize that this is simply a personal preference and no more. I use Eclipse on my laptop and WinAxe to open x11 telnet windows on my linux boxes. Light testing is usually performed on my laptop with heavier testing done on my linux dev box. For me that is the best compromise. However, in closing, what is so great about Java is that I have the flexibility to work so seamlessly between the two platforms.
Posted by: jakramer on April 05, 2006 at 07:09 AM
-
I beg to differ, been programming Java in Linux now for 6 months and before that programming GCC in Linux and I can tell you that it is not as hard to program in Linux than Windows.
Posted by: jan2x on May 10, 2006 at 03:07 AM
|