Why Java Developers Should Switch to Linux
It's summer again, people have more time on their hand, and they think
about switching operating systems:
to Mac OS X
OS X to Linux
I think that's great. A Windows monoculture is not healthy. Judging
from my students' href="http://www.chaddickerson.com/blog/2006/01/08/why-is-setting-up-a-new-pc-still-so-painful/">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.
- Java. In the
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.
- 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="http://www.keyboardmaestro.com">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
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="http://www.apple.com/accessibility/">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."
- All programs have keyboard shortcuts. Sure, but look at
- 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
first. For mail, use Thunderbird, not Outlook or Mail.app. 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="http://www.linux.org/info/logos.html">here, href="http://lwn.net/Gallery/">here, or href="http://tunes.org/~do/penguindex.html">here, and slap it on your