The magazine of the Melbourne PC User Group
Java 5
- for the bookshelf
Major Keary
|
|
Widely referred to as Java 5,
the latest version of Java is
officially named Java 2
Standard Edition 5.0 (J2SE5). It has undergone significant enhancement
and — according to the authors of Learning Java — "is targeted at developers and has the biggest set of
language changes since Java's birth".
Java is widely included in the programming languages taught in computer science
courses, and programmers and developers are finding it necessary to add Java to
their respective repertoire.
If you have a serious interest in learning Java 5 there are two comprehensive
titles that are suitable as texts for formal courses, for self-teaching, or as
guides for developers/programmers who want to upgrade their Java skills.
Learning Java
The third edition of O'Reilly's Learning Java "is for computer
professionals, students, technical
people, and Finnish hackers". It is not
for raw novices who want a teach-yourself-Java text; it is best suited to
readers who are programmers approaching Java for the
first time, users who want to catch up with the latest version, and students.
If you are not quite sure of what Java does, its origins, and where it fits into
the pantheon of programming languages, the book's first chapter — which requires
no
technical knowledge — is well worth reading. The second chapter is a tutorial
that demonstrates, and discusses, a simple application.
A companion CD contains all the code examples used in the book, and includes
Windows and Linux versions of Java 5, Win/Lin/Mac versions of NetBeans IDE 4.1
RC1; Win/Mac versions of Eclipse IDE 3.1; Win/Mac versions of Apache Ant 1.6.2;
BeanShell 2.0b2; and Jakarta Tomcat 5.5.9. Several chapters from the first
edition are also on the CD in PDF and HTML files.
This is a thorough coverage of Java 5 and includes chapters on Java-related
applications: NetBeans, Eclipse, and XML-based applications. As one expects of
an O'Reilly book, the editorial people and the authors have combined to produce
a text with a high readability index and one in which information is well
organised and easy to find. The index runs to almost sixty pages, there is a
comprehensive table of contents, and an excellent glossary. Example code is used
extensively to support the text.
The term 'readability' is used in the sense of: the quality of or capacity for,
being read with pleasure or interest, considered as measured by certain
assessable factors, as ease of comprehension, attractiveness of subject and
style [OED]. The authors are excellent technical communicators, and the
publisher has done a good job of typographic design without any distracting
effects.
The book's style is tutorial, but each chapter leads with extensive discussion of the particular topic. The focus is on how to use Java 5 rather than
conceptual issues, which makes it a good ongoing reference.
Niemeyer and Knudsen: Learning Java 3/e
ISBN 0-596-00873-2
Published by O'Reilly,
954 pp. + CD,
RRP $84.95 incl. GST |
 |
Java 5 Illuminated
This title is from Jones and Bartlett, a leading publisher of course texts. A
companion CD contains all of the example code used in the book and "provides a
browser-based module ... [that visually] illustrates the execution of code that
implements the concepts taught ...". The CD also contains the necessary
software: Integrated Development Environments (IGRASP, JCreator, BlueJ, and
Borland JBuilder Foundation X), Java 5, and TextPad.
The book is designed as a text for a formal introductory course in Java, but is
worth considering for self-directed study. There is no requirement for prior
programming knowledge, but that assumes one is in a formal classroom environment
where — in the introductory part —a teacher puts flesh on the text's bones.
Anyone using Java 5 Illuminated as a self-teaching resource should have a grasp
of basic programming concepts and terminology.
As the book moves on to the real task — learning Java — there is no skimping on
detail and discussion of concepts. The style is not 'conventional tutorial'
where the reader is provided with plain how-to information in step 1, step 2, ... format. The object here is to make the student use
Java rather than read about it, to be Java-enlightened rather than learn by
rote. As the authors say in the preface, under the heading pedagogy, "concepts
are always taught first, followed by complete examples illustrating these
concepts".
Extensive use is made of didactic code, which is printed using spot colour "to
better illustrate the syntax of the code and to reflect the use of colours in
today's IDE tools"; it works well. I was impressed by the margin notes that
offer tips, advice, warnings, and cross references; the Common Error Trap notes
are especially useful (for example, "When swapping elements, be sure to save a
value before replacing it with another value to avoid losing data").
There are plenty of exercises, problems, and projects. Solutions to selected
exercises are at the back of the book; further 'instructor materials' (more
solutions and PowerPoint
slides for each chapter) are available to instructors on the publisher's
website.
Appendices contain useful information on reserved words and keywords; operator
precedence; Unicode; representing negative integers; representing floating-point
numbers; and Java Classes APIs.
Anyone who teaches Java should consider this as either a course text for
students or as a foundation for designing classroom presentations. Anyone who
wants a formal self-teaching resource should examine Java 5 Illuminated;
provided one has the discipline to work through the examples and exercises it is
comprehensive and well presented. The book has a sub-title, An Active Learning
Approach, which is an accurate description.
This title is available direct from Elsevier Australia Customer Service, tel.
1800 263 951, fax 02 9517 2249, Email:
customerserviceau@lseviencom.
Anderson and Franceshi: Java 5 Illuminated
ISBN 0-7637-1667-7
Published by Jones and Bartlett,
1177 pp. + CD,
RRP $95.00 incl. GST |
 |
Java Cryptography Extensions
This text has a sub-title, Practical Guide for Programmers. It is intended to be
a guide, not a definitive work, and does not pretend to provide more information
about cryptography per se than is necessary for its purpose: to show software
engineers and programmers how to implement crypto in Java. Cryptography is a
discipline in its own right and its practitioners require specialised
mathematical knowledge that software engineers and programmers cannot be
expected to pursue. The author has a long crypto history and also engages in
research using Java; he is well placed to choose just how much detail of crypto
concepts is required for a skilled Java practitioner to implement a
cryptosystem.
Here the focus is on practical issues. The example code was developed "primarily
on an Apple PowerMac G4,
and testing was done on a Windows XP box as well", which confirms that Java's
platform portability is not affected by the complexities of crypto.
The author's eye for practical issues is demonstrated by his cautionary note in
a section entitled, Working with Jurisdiction Policy Files; anyone
developing commercial software that is going to be exported should ensure there
is no conflict with some other country's law. There are two issues: export
restrictions and import restrictions, and both have to be considered when
software is developed for a single enterprise that operates in multiple
jurisdictions. Java's cryptographic libraries reflect that situation, being
divided into Java Cryptography Architecture (JCA), and Java
Cryptography Extension (OCE). "However, this platform is not without its
idiosyncrasies", a topic discussed in some detail.
A key problem for anyone developing a cryptosystem is to comprehend the
terminology and concepts. The author does a good job of explaining those things
without breaking into esoteric mathematical solutions. He points out that such
information tends to fade from memory — gets rusty — when the need for it is
intermittent; the book should also serve as an ongoing resource for refreshing
one's memory on such topics as Electronic Code Book (ECB), Cipher
Block Chaining (CBC), and Cipher Feedback Mode (CFB).
Chapters deal with symmetric ciphers; asymmetric ciphers and key agreement
protocols; message digests, authentication codes, and digital signatures; and
managing keys and certificates.
A thorough coverage that gets the right balance between too much technical
detail and not enough. An essential resource for anyone involved in designing,
developing, or programming crypto in Java applications. The author provides
sound, authoritative advice on picking algorithms.
This title is available direct from Elsevier Australia Customer Service, tel.
1800 263 951, fax 02 9517 2249, Email:
customerserviceau@elsevier.com.
Jason Weiss: Java Cryptography Extensions
ISBN 0-12-742751-1
Published by Morgan Kaufmann,
158 pp.,
RRP $34.65 incl. GST |
 |
Reprinted from the June 2006 issue of PC Update, the magazine of Melbourne PC User Group, Australia
|