Let me have a crack at this...
> I'm rather confused by the various advanced or "active" web page
> methods. Let's see, there's CGI, Perl, Visual Basic Scripts,
> JavaScripts and Java, ASP (Active Server Pages), PHP and XML. I'm sure
There are server-side technologies and client-side technologies.
Server-side technologies run at the web-server side. Client-side
technologies are provided by the browser or other client application.
CGI - not a language, but an interface for the web server program
to call arbitrary code on the server system. CGI programming
can be done in any language. Lots of CGI programs are written
in Perl because web-page serving is generally a text-generation
problem and Perl has excellent text-processing capabilities.
See www.oreilly.com/catalog/cgi2 for a good overview. One of
the biggest beefs (beeves?) with CGI is that it requires the
web server program to spawn (fork/exec) a new process to service
each request. The downsides to this are performance issues and
some convolutions when trying to maintain user state across
several pages. For this reason most web server processes
implement some kind of "servlet" technology - teh ability to
write scripts which execute as threads inside the web server
process, skipping inter-process communications and process
creation overhead.
Perl - the Pathalogically Eclectic Rubbish Lister was already
cranking in the late 90's and was widely used by UNIX sysadmins
to automate all of those little UNIX chores that required the
editing or monitoring of text configuration and log files.
It rapidly took over the CGI space becuase it was a good tool
for the job. The Apache web server supports a loadable module
called mod_perl that allows your perl code to run inside
Apache. There is also a module that allows you to embed perl
statements inside the HTML documents for evaluation by the
server before transmission to the client. See perl.apache.org
for the straight dope on Apache+Perl. See www.perl.org for
a lead on Perl itself.
VBScript is a proprietary technology only available on IIS. I think
it works a lot like embedded-perl, where VBScript statements are
embedded in the HTML. With so many platform-independent alternatives,
a *technical* decision to use VBScript is a symptom of brain
damage.
JavaScript is an OO scripting language developed and first deployed
by Netscape Corp. There is a server-side scripting environment
available in the web servers sold by Netscape (Sun/iPlanet).
The "Java" in the name is a marketing gimmick and has nothing to
do with the Java programming language. JavaScript is also available
in most browsers as a client-side technology. There is an industry
standard for this one: www.ecma.ch/ecma1/STAND/ECMA-262.HTM
Java is a general-purpose byte-compiled OO programming language.
From an IBM perspective it replaces the work that was being done
in the early 90's to migrate busiess software development from
COBOL and PL/1 to Smalltalk. On the server side, it's relatively
easy to build a web server in Java which acts as a framework
for managing custom server application objects or "servlets".
See www.oreilly.com/catalog/jservlet for a generic overview.
There is a java servlet engine for Apache called mod_jserv,
more info at java.apache.org. Java's cool - definitely blows
the doors off of C++ for developer ease-of-use. Bummer about the
licensing and standardization issues.
ASP - Active Server Pages. More Microsoft stuff. Again - unless
somebody puts a gun to your head, leave this alone.
JSP - Java Server Pages. Sun is a Microsoft wannabe with a
perpetual System V license.
PHP3 - open source server side language that embeds in HTML.
The processing engine can run as a CGI with any web server and
as a module (mod_php3) in Apache. This thing is spreading like
wild fire. Check out www.valinux.com or sourceforge.net as
large-scale PHP3 sites.
> I've forgotten some. Now these are all just scripting languages,
> right? Clearly there are differences. Some are interpretive (Basic,
> JavaScript-? (or is it run from the JVM?). I assume that ASP and PHP,
> which I believe are server side implementations, require a special code
> server to which they interface (meaning they interface a daemon which
> provides their functionality).
Yup. VBasic and JScript require interpreters. ASP and PHP require
code at the web server to make them work.
> Is this right, or am I all wet?
>
> What is the difference between PHP and ASP?
>
> I thought ASP was an M$ thing, is it or is it open?
ASP is an MS thing. See www.chilisoft.com for a platform-independent
implementation. PHP is open-source. If it breaks, you get both
halves.
> I don't need to code in any of these but I would like to know where they
> all fit. Why are there so many? Is the number of ?languages?
> increasing or decreasing? Which are the most used?
There are basically three core technologies:
client side technologies either embedded in the browser or
accessible via plug-ins. You can use a plug-in to enable
just about any language at the browser - i.e. the tcl
plug-in available at www.demailly.com/tcl/plugin.
CGI - use your favorite language
server side technologies that run a scripting environment
inside the web server. Allaire Cold Fusion and JavaScript
are probably the first cuts at this. ASP emerged as
Microsoft Cold Fusion "not invented here" and PHP emerging
as both of those are cool but "where's my source code?".
Any language which can be though of as a "run-time" language
eventually get used to write a web server. There's the
TCL web server used at AOL and pushed by Philip Greenspun
of MIT and ArsDigita. There's CL-HTTPD or AllegroServe in
Common Lisp.
> I know I've asked a lot of questions and I appreciate any assistance.
>
> Thank You, GGK
The technology may be widely deployed but it's still in it's infancy.
Every programming technology from the last 40 years is being re-checked
for suitability in this environment.
WebCOBOL anyone?
ccb
--
Charles C. Bennett, Jr. VA Linux Systems
Systems Engineer, 25 Burlington Mall Rd., Suite 300
US Northeast Region Burlington, MA 01803-4145
+1 617 543-6513 +1 888-LINUX-4U
[EMAIL PROTECTED] www.valinux.com
vi/(emacs) NT/(Linux) qmail/(sendmail) (perl)/python (pepsi)/coke
**********************************************************
To unsubscribe from this list, send mail to
[EMAIL PROTECTED] with the following text in the
*body* (*not* the subject line) of the letter:
unsubscribe gnhlug
**********************************************************