Approaches to Web Development for Bioinformatics
C is the ideal language for programming operating systems. C++
is a good choice for commercial desktop applications. However, it
is probably not the best language for most bioinformatics
applications. Some disadvantages are
-
It is not very uniform across platforms. The same
features that make
C ideal for programming operating systems and their utilities make it
too close the operating system for convenient cross platform
programming. For example, the byte order is different on
Windows than on UNIX systems and, although utilities exist to assist
with this, programmers must be aware of the issue. Perl and Java
programs work on any operating systems that Perl and Java runtimes are
ported to. However, a C or C++ program must be compiled for each
platform that it is to be run.
-
Linking with the right versions of libraries can be an additional issue.
This can be a problem with any language. However, on Windows shared
library versioning is not supported and install programs just copy
the dll files into the
windows/system32 (or equivalent) directory.
-
An error in a C program usually leads to the programming
crashing. In C++ there is an exception handling mechanism but it
is not as consistent as, say, Java. Application availability is
very important to web users so it is important that crashes do not
happen. C programming is not for the
faint hearted.
-
Programming in C and C++ is hard. Programmers have to
manually allocate and clean up memory. Lack of vigilance here
leads to the common occurrence of long running programs leaking
memory. C++ is a very complex language, which can be a barrier
in itself.
-
Programmers must be extra careful about security. This is
especially important for web and network programs where buffer overrun
attacks have been the source of many successful attacks. Because
the programs are compiled to machine instructions a successful hacker
can gain direct access to the operating system and can take control of
the machine. Other languages often have checks for buffer
overruns built into the network libraries.
Despite these disadvantages there are valid reasons for using C or
C++. C is the dominant language for application development for
the desktop, embedded systems, and server software like databases and
web servers. You may be starting with a program that is in C
or C++ and be unwilling to rewrite it in another language. It is
hard to beat C++ on the Windows desktop for responsiveness and
flexibility. Being more familiar with C than with other languages
may not be a good reason to use it. If you can program
effectively in C and / or C++ you can easily pick up other languages.
There are no user comments.
Please send ideas and opinions by email at alexamies@gmail.com.
© 2006-2007 Alex Amies