The knowledge and design skills from this book are a good foundation for
learning more about programming, computing, and even practical work on
software. First, the skills are good for learning the currently fashionable
collection of object-oriented languages, especially Java. The two languages
share a philosophy of programming. In both settings, computing means
dealing with data, and programming means describing classes of values and
functions on them. Unlike Scheme, however, Java requires programmers to
spell out the class descriptions in Java, not just in English, and to place
function definitions with class descriptions. As a result, Java requires
programmers to learn a lot of syntactic conventions and is unsuitable as a
first language.
Second, a programmer must study the fundamental ideas of computing. Thus
far, our studies have focused on the laws of computing for data-oriented
programming languages. Using the programming skills from this book, we can
design and implement a simulation of how the hardware computes. By doing so
we see the laws of computing from a radically different perspective. The
contrast points to a number of interesting questions:
The two mechanisms of computing are rather different. Can one
mechanism compute what the other one can compute and <#60275#>vice versa<#60275#>?
The laws we have used are mathematical and abstract. They do not take
into account any real-world limitations. Does this mean that we can compute
whatever we wish?
The (simulated) hardware shows that computers have limitations. How
do these limitations affect what we can compute?
Research on these questions created the discipline of computing and still
guides the design of most computing curricula.
Finally, the design knowledge of this book is enough to build some
real-world programs in Scheme. DrScheme with its build-in Web browser and
email capabilities is such a program. Building large real-world programs,
however, requires some more knowledge about the functions that Scheme uses
to create GUIs, to connect computers on a network, to script things such as
shells, common gateway interfaces (CGI), COM objects, and so on.
Material on all three topics is available from this book's Web site in a
form that just extends the coverage and the style of the book. The book's
Web site is 3
Check in with this site on a regular basis and continue to study
computing and programming.