Welcome!

Linux Authors: Elizabeth White, Liz McMillan, Roger Strukhoff, Pat Romanski, Yeshim Deniz

Related Topics: Linux

Linux: Article

Getting Down to Business with Linux

On the Move

With the recent release of SuSE 9.2 Professional and Novell's Linux Desktop operating systems, the Linux desktop is ready to compete with Microsoft Windows for client-side computing in a business environment. I know this is something of a debate among many, but the opportunities for Linux to garner a respectable percentage of the desktop market is not unreasonable if done correctly and the cost savings of using Linux on the desktop could easily exceed the savings realized by replacing just the server components of your infrastructure.

Linux desktop adoption will occur in waves. The first wave or opportunity will be in areas of specific-purpose computing. Those areas where the client primarily runs a specific application such as retail point-of-sale, government, scientific, manufacturing and applications in the medical field. For the most part, these client machines are not leading-edge Pentium 4-class machines and they do not need a fully configured office suite. For these environments the most important requirements are to run on modestly configured hardware and be reliable. Linux is perfect for these scenarios.

The next wave of opportunity will be in branch offices and remote facilities where security and reliability are important. The current OpenOffice suite on Linux is quite good and serves most people's needs. I travel a lot and my primary desktop is SuSE Linux 9.2 Professional, OpenOffice 1.1 and Ximian Evolution for my mail, contacts and task management. I've found Linux to be a very productive environment in many ways, but in particular, its lack of vulnerability to the myriad Windows worms, viruses and other security breaches has proven to be more productive than I originally thought. I can attest to this productivity gain because I'm able to keep working while others around me are running around trying to find the latest virus scanner to fix their Microsoft Windows desktops.

Moving to Linux

Linux is becoming much more attractive on the desktop with the delays of Microsoft's Longhorn until late 2006. Most realize that Longhorn also forces a rewrite of all the existing Windows applications - even those that were written to the Microsoft .NET standard. The cost of these rewrites plus the cost of upgrading most hardware to run the new Avalon GUI are major issues facing all IT managers. So, obviously people are evaluating the move to Linux sooner rather than later as organizations look to maximize their investments in existing software development, desktop hardware and infrastructure.

Tips on Getting to Linux Successfully

1.  Identify a specific area of business that will benefit from migrating to Linux keeping in mind that Linux will bring much higher levels of reliability and security and will support modestly configured hardware. This is where cost savings will be maximized and Linux will provide a substantial return on your investment. Avoid the pitfall of biting off more than you can chew. Find a subset of an application that can benefit from being ported to Linux. Don't try to rewrite your entire ERP system, maybe just the warehouse management component.

2.  Evaluate all your options before you start coding. Before trying to rewrite the existing application to run natively on Linux, you may want to test the Linux waters and take an interim step by looking at WINE as a viable alternative. WINE is attractive because it lets you execute existing Windows applications on Linux with minimal changes.

This is another heated debate in the Linux world - using WINE (Wine Is Not an Emulator) versus writing a native application for Linux. For those in the Linux world that believe nothing but a native application will do - get over it. The major inhibitor to adoption of Linux on the desktop is the lack of business applications, WINE helps accelerate the migration of existing business applications to Linux and, in the end, that's what is important.

By using WINE, you can avoid having to port the entire application to run natively on Linux - which is a monumental task. While most Linux distributions ship with the current stable build of WINE, let's not forget Code-Weavers' CrossOver commercial WINE technology. I've found Jeremy White at CodeWeavers to be very accommodating in addressing specific areas where WINE was lacking, and installing CrossOver can be silent and painless to the end user. Obviously, using WINE is only a stopgap measure that lets you test the Linux waters without significant cost. Ultimately, you want to have a true cross-platform application.

3.  Avoid writing an application that will only run on one operating system. Evaluate the existing application and its future in your organization. You do not want to write the application in a language that locks you into one platform, but one that will compile and run on either a Microsoft Windows or Linux platform. This improves your return on investment because you have a single source code line that can be compiled on either platform. In this way the application is easily maintained and simultaneous updates for both platforms is easier to manage. Whenever possible, choose a high-level language that offers a level of abstraction to relieve your team from having to trap every possible message or manag- ing every pixel on the screen. A high-level language lets you focus on the business case - not the nits of the operating system and its myriad function calls. A high-level language that compiles to either Windows or Linux will take care of the grunt work and improve your productivity.

4.  Choose a language that fully supports robust object-oriented coding practices. As you write the application you will want to create business processes in classes isolated from the user interface. This will provide maximum flexibility in the future since parts of the application may be suited to a rich-client model and some may be better suited to a browser-based model. By encapsulating the business logic in functional classes you have the flexibility to do either or both in the same application.

5.  Accelerate your development by choosing an integrated development environment that provides not just a colorful text editor but a robust debugger, intelligent prompting of defined objects and functions, a report builder to create business reports quickly and some source code management functionality that gives the team the ability to check code out, check in and do difference and code merge operations.

6.  To ensure success make sure the Linux version of the application is familiar to the end user. The application should behave just like the Windows version. This is important for end users to buy in to the new Linux application. Application familiarity will maintain end-user productivity because they won't have to learn a new application. Remember, in most cases the end user does not care what operating system they are using, but they do care if the application behaves differently than their existing application - especially if it's more complex or requires additional keystrokes.

7.  Watch out for products with dual licenses. You must read the license agreement of all development tools, report writers, debugging aids or databases and make sure you understand the license requirements. Some products don't require a license fee if YOUR product is open sourced, but others don't make this distinction. Some require that you buy a license to use it for commercial purposes, others do not. This is a very important point you must investigate before choosing a development tool, programming aid or database.

8.  Make sure the products you choose provide some type of technical support. Choose products that have installation support and an active news group to get your questions answered. If available, it would also be smart to buy a support contract for the first year to ensure your project does not get sidetracked on a technical issue that takes up valuable time and effort. Tech support contracts pay for themselves with just a couple of calls.

9.  Once your first project is up and running, monitor it and determine your return on investment and I'm positive you will find it to be substantial and that it will pave the way for future projects because management will clearly see the advantages.

10.  Finally, remember that not all applications are candidates for Linux migration so make sure you involve the end user in your investigation and thoroughly analyze the application before embarking on conversion.

In closing, remember to take a small application or subset of a larger application as your first project. Add an additional 30% to your estimate to account for the learning curve and most of all, keep track of the challenges you encounter and how you solved them so your next project can benefit from your learning experience.

More Stories By Charles W. Stevenson

Charles W. Stevenson, PhD, is
CTO of GUPTA Technologies, LLC.

Comments (0)

Share your thoughts on this story.

Add your comment
You must be signed in to add a comment. Sign-in | Register

In accordance with our Comment Policy, we encourage comments that are on topic, relevant and to-the-point. We will remove comments that include profanity, personal attacks, racial slurs, threats of violence, or other inappropriate material that violates our Terms and Conditions, and will block users who make repeated violations. We ask all readers to expect diversity of opinion and to treat one another with dignity and respect.