Skip to main content

Why Java Developers Should Switch to Linux

Posted by cayhorstmann on June 21, 2006 at 10:43 AM PDT

It's summer again, people have more time on their hand, and they think
about switching operating systems:

  • From href="">Windows
    to Mac OS X
  • From href="">Mac
    OS X to Linux
  • From href="">Windows
    to Linux

I think that's great. A Windows monoculture is not healthy. Judging
from my students' href="">crapware-infected
laptops, it is actually extremely unhealty.

In the last five years, I regularly used Windows XP, Mac OS X, and
Linux (Fedora and Ubuntu). In my experience, Windows XP is just fine when
well-tuned, but not easy to keep that way, and totally wretched when it is
not. Mac OS X is pretty if you are into blue and brushed metal and the
mouse and Java 1.4.2--as you should be if you are a right-thinking
citizen. I much prefer Linux, particularly for Java development. I'd like
to convince you to switch to Linux as well. My motivation is simple and
selfish. If lots of programmers work on Linux, then Java support will for
Linux will get even better.

I often hear the argument "I saw the (caution: oxymoron ahead)
coolest dudes at a tech conference running Macs, so I should get a
Mac too". There are three simple reasons to switch to Linux instead.

  1. Java. In the href="">reality distortion
    field, "Apple has optimized Java on Mac OS X to look great and
    perform superbly, making Mac OS X the ultimate platform for developing
    and deploying cross-platform Java applications." It just ain't so. Sun
    releases the latest and greatest versions of Java simultaneously on
    Linux, Solaris, and Windows. The Mac port is done by Apple. After much
    delay. With interesting bugs. And, if you use Eclipse plugins, you have
    SWT bugs too.
  2. Keyboard shortcuts. This is what drove me away from the Mac.
    On Thunderbird, I check my mail with Alt-F W G (File -> neW -> Get
    all messages). I start a new message with Alt-M N (Message -> New
    message), save it with Alt-F L (File -> send Later) and send it with
    Alt-F D (File -> senD unsent). I really hate to do that with the
    mouse. M o v e t h e m o u s e t o t h e m e n u b a r t h e n l o c a t
    e a n d c l i c k t h e m e n u t h e n l o c a t e a n d c l i c k t h
    e s u b m e n u t h e n l o c a t e a n d c l i c k t h e m e n u i t e
    m. . . I did give the Mac the good try for a month or two, three years
    ago, and I just couldn't take the constant mousing.
    Now I know what
    the Mac zealots will say:
    • All programs have keyboard shortcuts. Sure, but look at
      NetBeans. At most half of the menu options have shortcuts, and most
      of them are impossible to remember (Ctrl + Shift + F8).
    • You can get a href="">third-party program. Ok,
      but you'd have to laboriously define hundreds of menu accelerators
      by hand, separately for each program, and they too would be hard to
    • href="">Research
      has shown that people delude themselves thinking that the
      keyboard is faster. Studies, in which people from all walks of life
      have been asked to solve the same task with the mouse or keyboard
      have conclusively demonstrated that the mouse is faster, even though
      power users have the illusion that they save time with keystrokes.
      Well, a programmer isn't a person from all walks of life. We need
      both of our hands on the keyboard most of the time.
    • You can turn on accessibility features. This one really
      galls me. Nowhere is the difference between Apple's href="">blowhard marketing
      and the reality more apparent. Indeed, you can activate an
      accessibility key to get into the menu. Once you are in the menu,
      you have to use the arrow keys. What happens if you hit E? Will it
      open the Edit menu? No, sir. The all-knowing keepers of wisdom in
      Cupertino know that this would not be good for you. The key is
      silently and unobtrusively ignored. "Apple’s commitment to
      accessibility is evident throughout the Mac OS X operating system
      which is by design, easy to use, but also includes a wide variety of
      features and technologies specifically designed to provide
      accessibility to users with disabilities."
  3. Freedom. I run Mac OS X 10.3 on my aging PowerBook, and I
    like it just fine. Can I try out Java 5.0? Not without paying for and
    installing Mac OS 10.4.

Ok, you want good Java support, keyboard shortcuts, and freedom. Who
doesn't? But isn't Linux hard to use?

For my needs, Gnome seems on par with the Mac OS X and Windows GUIs. In
the bad old days, laptop suspend and USB stick mounting worked poorly, but
those issues have been fixed. The remaining difficulties are (1) wireless
and (2) external displays. Wireless with an external $20 card works
beautifully, but some of the built-in adapters can cause grief. Get a $20
card. External display switching is not as easy as it should be. Practice
it at home before you give that presentation.

If you are considering switching, do yourself a favor. Stay on your
old platform a little longer and switch to cross-platform applications
For mail, use Thunderbird, not Outlook or You don't
want your mail trapped in some proprietary format. Use OpenOffice for word
processing and spreadsheeting. You increase your chances of being able to
read your files twenty years from now. Use Eclipse or Netbeans or JEdit or
Emacs for your Java programming. On Windows, use the bash shell (Cygwin),
not the DOS shell. After you are comfortable with the cross-platform
applications and tools, make the switch. It'll be easy. And if you don't
like your new OS, you can switch again.

??? style="float:left;padding-right:1ex" />After you switched to Linux, there
is one remaining problem--the coolness factor. Nobody can see that you
aren't running Windows. The solution is, of course, a Linux sticker. Pick
up a garish one at a trade show, or print one from href="">here, href="">here, or href="">here, and slap it on your

Related Topics >>