Overview
PERL
The name Perl stands for Practical
Extraction and Report Language (Perl, 2004). Perl is a high-level programming language especially designed for processing
text. (Christiansen, 1999). The initial version was designed and introduced by Larry Wall in 1987, and since it is an open-source
code there are thousands of people who have had some input to it in subsequent versions. Perl is one of the most popular languages
used for CGI scripts, but its file and text manipulation facilities also make it well suited for system utilities, software
tools, system management tasks, database access, graphical programming, networking and programming for the World Wide Web.
It can be used for tasks as simple as one-line processing to tasks normally done on large elaborate systems. Perl is an interpretive
language so no compiler is required. The software can be downloaded for free and the language is relatively easy for someone
to start to learn.
JAVA
Java is a programming language developed
by Sun Microsystems. Java began as the “Stealth Project” in 1991 and was named Oak, but was formally introduced
as Java in 1995, and the compiler was written in Java as of 1994 (Java History, n.d.). Java is simple, object oriented, platform
independent, safe, high performance and multi-threaded. Java is often used for small, executable programs that can be downloaded
on a client’s computer (applets), and can be used for applications as well (Harold, 2004). The software can be downloaded
for free from various web sites.
Hardware /Software Considerations
PERL
Perl is an open source code and is
supported by its users. The standard Perl library and optional modules are created and maintained by volunteers (Christiansen,
1999). The GNU project includes PERL in its distributions, but there isn’t a separate GNU Perl. Perl is not well suited
for real-time embedded systems, low-level OS development work, multi-threaded shared-memory applications or extremely large
applications (Christiansen, 1999). Perl builds and runs on virtually all known platforms, and there are specific versions
available for various proprietary platforms (Christiansen, 1999).
JAVA
Java packages and compilers are available
free under GNU and are also available directly from Sun. Compiled Java code can run on most computers and operating systems
because Java interpreters and environments or Java Virtual Machines exist for most operating systems (Java, 2004). Java is
a general-purpose programming language but is most well suited for use on the World Wide Web.
Key Features
PERL
Perl is noted for its process, file
and text manipulation facilities. It is very popular with system administrators and CGI script authors, although it may also
be used by a host of people in other occupations (Christiansen, 1999). Many UNIX users are using Perl instead of the Bourne,
C and Korn shells for scripting duties and short programs. Perl provides access to all of the UNIX built-in commands plus
offers a more powerful programming language (A Perl function, 1998).
JAVA
Java was the first language to include
inline sound and animation in a web page, and is used to allow user-interaction from a web page (Harold, 2004). Java is an
ideal programming language for distributed applications, and it allows you to distribute content along with the code which
will allow the user to interact with the content.
Security Issues
PERL
Perhaps the biggest security risk
of any programming language is found in the people who use it and who may or who may not know how to use it safely. The biggest
security concern with Perl is that user input that is sent to a Perl script may contain characters that will be interpreted
as Perl code. This is especially a problem with system(), exec() and open() functions (Dimov, n.d.). Thus, user input must
be filtered so that unwanted characters are not misinterpreted as code.
JAVA
The widest use of Java is in the creation
of applets that will execute on a client’s computer. Thus, it is easy to see that there will always be those who design
Java applets with malicious intent. Java has been modified over time in an attempt to minimize the risks of malicious code.
Java offers strong security measures to prevent system modification and the invasion of privacy, however its protection against
denial of service attacks and antagonism is rather weak (McGraw, 1999).
SUMMARY
In side by side benchmark
tests with a specific programming problem, (Prechelt, 2000) determined that writing a program in Perl would take half the
time that the same task would take in Java and that the program would only need half as much code. Java would consume more
memory than similar Perl code. Prechelt’s tests also showed that a Java program would be faster than Perl in the initialization
phase but it the main phase of the program the Perl program would execute faster than Java.
It seems that Perl would offer some advantages in the development phase and would have a lesser impact on the system
memory, although the skill or lack of skill of the programming team could easily sway the balance in one direction or the
other.
References:
Christiansen, T. (1999). Perlfaq1. Retrieved Oct 7, 2004, from Perldoc.com
Web site:
http://www.perldoc.com/perl5.6/pod/perlfaq1.html.
Christiansen, T. (1999). Perlfaq2. Retrieved Oct
7, 2004, from Perldoc.com Web site:
http://www.perldoc.com/perl5.6/pod/perlfaq2.html#What-machines-support-Perl---Where-do-I-get-it-
Developer's Daily, (1998). A Perl function to prompt users during interactive
command-
line input. Retrieved Oct 10,
2004, from Developer's Daily Web site: http://www.devdaily.com/perl/edu/articles/pl010005/pl010005.shtml.
Dimov, J. (n.d.). Security issues in Perl scripts. Retrieved Oct 10, 2004, from
cgisecurity.net Web site: http://www.cgisecurity.com/lib/sips.html.
Harold, E. (2004). Java tutorial. Retrieved Oct
10, 2004, from Cafe au Lait Java News
and Resources
Web site: http://www.cafeaulait.org/javatutorial.html#xtocid5001.
McGraw, G. (1999). Securing Java two. Retrieved Oct 10, 2004, from SecuringJava.com
Web site: http://www.securingjava.com/chapter-two/chapter-two-1.html.
Prechelt, L. (2000). An empirical comparison of C, C++, Java, Perl Python,
Rex and Tcl.
Retrieved Oct 10, 2004,
from University of Karlsruhe Web site
http://page.mi.fu-berlin.de/~prechelt/Biblio/jccpprt_computer2000.pdf
UNC School
of Information and Library Science, (n.d.). Java history. Retrieved Oct 10,
2004, from School of Information
and Library Science Web site: http://www.ils.unc.edu/blaze/java/javahist.html.
Webopedia, (2004). Java. Retrieved Oct
11, 2004, from Webopedia Web site:
http://webopedia.internet.com/TERM/J/Java.html.
Webopedia, (2004). Perl. Retrieved Oct
9, 2004, from Webopedia Web site:
http://webopedia.internet.com/TERM/P/Perl.html.
|