A top choice for learning web programming

A top choice for learning web programming
If you get only one tutorial/reference book on web programming, make it this one

Reviewed by Conrad Weisert, July, 1999 -- © 1999 Information Disciplines, Inc.



Bringing it all together

I've been looking for a book like this one for some time. Marty Hall has combined in a single volume the topics an experienced programmer needs in order to get started in web development.

I had been making do with Spainhour and Quercia's Webmaster in a Nutshell,, 1996, O'Reilly, ISBN 1-56592-229-8, another well-written and understandable work, but so condensed that it often sent me seeking answers from other sources.

Structure and content

Core Web Programming is like a set of four books. Its broad scope is shown by the list of chapters:

Part 1 -- Hypertext markup language

  1. Designing web pages with HTML
  2. Block-Level elements in HTML 3.2
  3. Text-level elements in HTML 3.2
  4. Frames
  5. Cascading style sheets

Part 2 -- Java Programming

  1. Getting started with Java
  2. Object-oriented programming in Java
  3. Basic Java syntax
  4. Applets, graphical applications, and basic drawing
  5. Handling mouse and keyboard events
  6. Windows
  7. Layout Managers
  8. GUI Controls
  9. Concurrent programming using Java threads
  10. Client-server programming in Java

Part 3 -- CGI programming

  1. Hypertext transfer protocol
  2. The client side
  3. The server side

Part 3 -- Javascript

  1. Adding dynamic content to web pages
  2. Javascript quick reference

The sequence is logical and well suited to a semester course.


Style and readability

Hall's writing is always clear and understandable. His style is friendly and informal, without going to folksy extremes like Meyers's "gotta"s and "wanna"s. Hall treats the reader as a respected colleague with whom he wants to share information rather than an inferior in need of enlightenment.

Java on balance

Hall's book not only answers my own needs for a good reference, but will also serve as a textbook for a course in introductory Java web programming. Although it's light on object-oriented concepts, it covers the language and the essential (for web programming) libraries well.

Hall takes a balanced view of Java. Unlike many writers on Java, he avoids overhype and concedes Java's shortcomings. However, I noticed two claims on page 235 with which I must register a strong dissent:

First, Hall echoes the common assertion:

In Java everything is an object.
Not so! Java programmers need and use independent functions just as much as, say, C++ programmers do. If you're unsure, see Pseudo-classes and Quasi-Classes Confuse Object-Oriented Programming .

Next, and more surprisingly, he asserts:

"In some object-oriented languages, there is a distinction between regular data types and classes. . . . In contrast, in Java all complex types are true objects."
Actually Java is the absolute worst offender in its inconsistency between so-called "primitive types" and objects. While a central design criterion in C++ is that programmer-defined classes should look as much as possible like built-in types, Java goes to great lengths to force them to be as different as possible! (For further discussion see The Dark Side of Java and Conventions for Operations in Java.) Although Hall explains the inconsistency by conceding the need for so-called "wrapper" classes like Integer he doesn't use those clumsy and half-thought-out standard classes in the code examples that appear throughout the book.

In the context of the whole book, those are minor issues which experts debate endlessly. If they're flaws they don't detract from the value of this excellent book which I recommend highly.


Return to book reviews.
Return to IDI home page.