12
LIST OF FIGURES
spread to the general population. Originally, web pages were only served from
dedicated machines and system administrators were loathe to allow any but the
most trusted of their colleagues to deploy interactive web pages. There are good
reasons for this. A poorly written interactive web page can be a major security
risk. It can also devour system resources and greatly slow down, if not crash, a
server. In the past few years this has become less of a problem as most personal
computers now come with preinstalled web servers; thereby democratizing the
process for all those who have an internet connection.
The more important impediment to the spread of interactive web pages
among general users is that the langauges for developing such pages have just
been too difficult for novices to learn. Originally these pages were written
in primarily in PERL, an interesting but rather bizarre language favored by
hackers both for its power and for its mystique! More recently, Java has become
a popular language for writing these pages, but this still requires authors to
have at least one semester's worth of programming experience before they can
even start to build interactive web pages.
Goals of this book
In this book, we return to the original ideals of the World Wide Web and present
a simple language, Scheme, for developing interactive web pages and other web
programs. Scheme is similar to HTML in that it is easy for non experts to learn
the basic language and to build build fairly sophisticated interactive web pages.
Scheme is a dialect of Lisp (a language which was first developed in 1957 at the
dawn of the computer era).
We begin with an introduction to HTML and CSS for developing static web
pages.
Next we give an introduction to writing Scheme servlets, the most basic form
of interactive web page. These pages are written in a mixture of Scheme and
HTML.
We then introduce the JLIB windowing library and show how to write and
deploy programs that use Graphical User Interfaces. These programs are en
tirely written in Scheme.
In the second part of the text we move on to more sophisticated topics such
as developing web programs that access databases and writing programs that
involve communication among multiple users.
Hardware and Software Requirements
The software that is used in this text is all free and open source. It can be
easily downloaded and installed on almost all platforms (Windows, Mac, Linux,
Unix). If this text is being used in a course, we also provide instructions for
setting up a central server which removes the requirement for all students to