For some time now, we've all been reading about Linux in the trade magazines.
You've read about how Linux is either the Next Windows Killer or the
Next Windows Victim, depending on the publication you've read and the current
hype of the month.
On the more rational side, you've probably done
some research into Linux and discovered how stable it is, or that it's
free (both free as in price and as in freedom of speech), and comes with
loads of tools and utilities.
But really, why should you use it?
I mean, Windows has its shortcomings, but with a superior development environment
such as Delphi, most of its limitations are hidden from you, right?
You may be thinking, "I really like the idea of Linux, but what can it
do that will really make me bother to use it?"
I thought you'd never
ask.
This article is not meant to be an advocacy paper for Linux.
Its intent is to show you the main features (in this author's opinion)
that your current operating system either can't do at all, or can't perform
as cleanly or as cheaply as Linux can. In other words, reasons that
will make your cost/benefit analysis make more sense.
Note: Linux is a derivative of Unix, and therefore is the result
of almost 30 years of gradual refinement and development. If
you are new to Unix and Linux, be aware of the depth of the pool you are
stepping into. It can be very bewildering at first, and often frustrating,
but keep in mind that the answers are Out There, online and in books.
I've been running Linux for the past two to three years, which began as
very gradual forays at home, tinkering and learning; the rewards of working
with the system are great. As a developer, you will be amazed
at how simply the system operates beneath the surface, and how common-sense
many of its subsystems are. I won't be going into details on how
these features are configured or operated, as there are many books and
online documents available to get you started. For general Unix knowledge,
and for a good reference to help you as you proceed, I suggest Running
Linux from O'Reilly & Associates (www.oreilly.com).
If you also want help with setting up and installing a particular distribution,
there are now many introductory texts at online and brick-and-mortar bookstores.
Finally, don't forget about the many Linux information Web sites available,
such as www.linuxdoc.org, www.linux.com,
and www.linuxnewbie.org.
For the in-house or contract developer, the X Window System
will hands-down be one of the greatest features of Linux. X has been
happily running for well over a decade on most Unix systems, and predates
Linux by several years. A comprehensive exploration of X is beyond
the scope of this article, but for the purposes of this discussion the
important part of X is that it provides robust GUI operation over a network.
This system really works well over a network -- it's not just a bolted-on
third-party product as would be required under Windows. And since
Linux is a multi-user system, many concurrent users can log on remotely
and run GUI applications hosted on a single machine. All the client
needs is an X Windows graphics server, regardless of the operating system.
Several excellent and inexpensive X servers are available for Windows, which gives
you flexible cross-platform options for your software
without sacrificing usability. The portability of X makes it perfect
for thin-client machines on shop floors, or for wireless units in hospitals
and other facilities. The remote systems can all be connected to
a central Linux machine or cluster where the actual processing takes place.
This means that inexpensive hardware can be used on the client -- only
the graphics drawing takes place on the client, and all the real processing
occurs on the main system. And since database operations take place on the central machine, many network/database performance issues
are less of a concern.
Because Linux has grown up from the multiuser roots of Unix, everything
you can do while physically sitting at a Linux console can be done over
a network from down the hall or over the Internet; even GUI applications
can be run over a network, thanks to the X Window System.
And because this capability is a central part of the system, it doesn't
just apply to a few "Enterprise" applications that happen to supply remote
access utilities -- every application that runs under Linux can be run
from a remote network connection.
Traditionally, the venerable telnet utility was used to log on remotely
to Unix machines, but once the Internet became more popular (and therefore
more dangerous), various utilities were created to allow secure remote administration.
One of these is Secure Shell, which allows encrypted connections
between the client and the remote server. A free version of SSH is
available at www.openssh.org,
and a commercial version can be found at www.ssh.com.
This is the perfect system for contractors and central office developers
who need reliable connections to remote sites for administrative duties.
Software updates, troubleshooting, and even remote backups can be performed
over the Internet. SSH is really flexible, and will even encrypt and
compress your X Window GUI traffic on the fly.
Linux clustering combines PCs linked via a network into a
multiprocessor machine. This remains an untapped market, and is primarily
used as a cheaper alternative for high-end supercomputer users. However,
the great benefactors of this supercomputing revolution will be the much
smaller clusters in the range of 10 to 20 processors preconfigured
and prepackaged in small cabinets for specific tasks. A large stumbling
block to mass-market clustering has been the lack of high-productivity development tools
to create and operate clustered applications. With its component
architecture and rapid GUI development, Kylix very nicely fills this
void and brings RAD practices to cluster development. For time-consuming
number-crunching tasks such as image processing, video compression, and
3D graphics rendering, a 10-node cluster in a small cabinet could tear
through these operations almost 10 times faster than a single-processor
system. And because Linux is free, there are no licensing costs for additional
nodes; aside from marginal hardware costs, a 10-node cluster
is almost as cheap as a a five node cluster.
Because Linux allows full operation over the network rather than at the local
console, it does not need a dedicated monitor and keyboard to operate properly.
As long as a network connection is available, the machine can be fully
administered remotely. Companies such as Cobalt Networks (now owned
by Sun Microsystems) and VA Linux have been successfully building network
appliances to run Web sites, e-mail servers, ftp servers, and file servers
from small plug-in boxes. These systems really work; I know of a
Cobalt machine hosting almost 50 Web sites and supporting several hundred e-mail users, and it has not been rebooted in over 460 days! And because
of the easy Web-administration GUI, this system has been managed by a person
with no Unix experience. At prices below $3,000, this is
truly the commodity, reliable computing we've been promised for years.
For all classes of Delphi developers, particularly in niche markets,
this could really be a dream come true. Using Kylix, one could build
an entire web application and pre-install it on either a pre-configured appliance
such as a Cobalt server, or an inexpensive custom-built Pentium-class machine.
One could then ship the box to the customer with some simple instructions
(plug in, turn on, type an IP number) and the application would be available
from any Web browser on the client network. With SSH, one could remotely provide onsite technical support, subscription-based
remote backups, and other services.
Conclusion
I hope I've shown you some of the really powerful capabilities Linux brings
to the table. For years, the main limitation in custom Linux application
development was the lack of a comprehensive RAD tool like Delphi for
fast GUI development. With Kylix, this limitation is addressed,
and by combining the benefits of Delphi with the capabilities of Linux,
developers will have a true multiplatform force multiplier at their disposal.