News on Monday
more>>
SharePoint Tech Report
more>>


   

 
 
Download Current Issue
ISSUE 2/1/2010 PDF

Need Back Issues?
DOWNLOAD HERE

Receive the print Edition?


 
blogs tab
Visual Studio 2010 Release Candidate Available Today
A Visual Studio 2010 release candidate is available on MSDN.
02/09/2010 09:45 AM EST

Is Microsoft eyeing Office subscription pricing?
Microsoft may be preparing to offer a new Office pricing option called "union," which charges the same for cloud as on-premises.
02/01/2010 09:38 AM EST

Facebook rewrites PHP runtime
Facebook is about to open source its own PHP runtime, written from scratch for speed.
01/30/2010 08:53 PM EST

 

Events calendar tab
2/9/2010 to 2/13/2010
San Francisco
IDG World Expo

2/10/2010 to 2/12/2010
San Francisco
BZ Media

2/17/2010 to 2/25/2010
Atlanta
Python Software Foundation

2/19/2010 to 2/20/2010
Los Angeles
SCALE

2/21/2010 to 2/24/2010
Las Vegas
IBM


 
Most Read Latest News Blog Resources

Schizophrenic Development




October 15, 2004 — 
It’s possible to develop a server-side Java app on Windows and run it on Linux, but it’s best to develop and test on the same platform. Platform-related inconsistencies (such as threading behavior) make any other approach too risky, and I test too often to develop on one system and test on another. Nonetheless, I don’t want to have a dedicated Linux development system. I need to run Quicken, Visio, and other commercial apps.

I’ve spent the past couple weeks fooling around with one solution to this problem: A desktop machine running both Windows XP (with Service Pack 1) and Red Hat Enterprise Linux WS under the VMware Workstation “virtual-machine” environment A VMware “virtual machine” is not a Java virtual machine; it’s a “swapper” mechanism that lets two operating systems run simultaneously on a single machine, each thinking that it has the hardware to itself.

I also had an ulterior motive. I wanted to see if the latest Red Hat release could actually work as a consumer operating system. Many Java developers seem convinced that that’s possible. I don’t agree. If you want a solid Unix implementation that makes a great consumer operating system, fitted with a gorgeous graphical UI and able to run commercial applications, go buy a Mac. Linux is not, and never will be, a platform suitable for use on the average consumer desktop. It’s a great server-side operating system, but the very things that make Linux so strong on the server side are a death knell on the client side.

Linux demonstrates why you shouldn’t let developers specify products. Linux is too complicated and too hard for a non-developer to use. The existing graphical front ends don’t fix this problem. Apple’s solution—to write what amounts to a robotic system administrator—works fine, but the Linux community doesn’t seem to have either the will or the ability to go this route. The only way to solve this problem is to get the UI specification process out of the hands of developers and into the hands of end users, something that’s not likely to happen.

Linux also requires too much hands-on fiddling. For example, Red Hat out of the box can’t acquire a DHCP-provided IP address when it boots. This is a well-known kernel bug, for which there’s a simple fix, easy to find with a Google search, but it’s ridiculous to expect an average computer user to do this work. Only in the developer/open-source community is it considered acceptable to ship a product with a well-understood show-stopper bug, and expect the person who bought the product to research a fix and apply it manually.

A pure Linux development platform is also problematic. I like working under Linux, as I’m a command-line sorta guy. I couldn’t live with Windows were it not for the Cygwin tools or the MKS Toolkit, both of which simulate Unix tools under Windows. Nonetheless, there are too many apps (developer and consumer) that either don’t run (or don’t run well) on Linux.

Nonetheless, developing Linux apps on Linux is essential, and VMware indeed makes it possible to get the best of both worlds. Apple’s new-found enthusiasm for Java—they’re finally supporting pre-release versions of the JDK, for example—makes Mac OS X a viable Java development environment as well, but you still have the mismatched-development-and-deployment-platform problem unless you’re also running Apple servers.

With VMware, a Linux environment happily coexists with Windows. Both operating systems run simultaneously, and you can switch back and forth between them without difficulty. You can even run Linux in a window on the Windows desktop (or vice versa if Linux is your primary operating system). You can access shared directories from both operating systems. The only caveat is that you need a lot of memory to get anything like decent performance. My 512 Mb system was sluggish in this configuration until I upgraded it to 1 GB RAM and gave half that memory to Linux.

I have a few minor gripes about VMware. You can’t resize the window it runs in (though I usually run it full screen). I really wish you could drag and drop (or at least cut and paste) from the Linux virtual machine to the Windows “host” operating system. My main gripe is that telephone support is not included with the product. I had a couple of installation problems that were easily handled by a phone call, but which would be difficult to figure out from the documentation alone. Unlike many vendors who give 30 days of free support with the product, VMware requires a service contract from day one.

That being said, VMware works like a champ, and really does solve my need for a schizophrenic development system. z

Allen Holub is an architect, consultant and instructor in C/C++, Java and OO Design. Reach him at www.holub.com.


Share this link: http://www.sdtimes.com/link/28185
 

Add comment


Name*
Email*  
Country     


  • Comment
  • Preview
Loading