0% found this document useful (0 votes)
29 views60 pages

Developing Mainframe Java Applications 1st Edition by Lou Marco ISBN 0471415286 978-0471415282 Instant Download

The document provides information about various Java programming books and their respective details, including titles, authors, and ISBNs. It includes links to download these books in multiple formats such as PDF, ePub, and MOBI. Additionally, it features a comprehensive overview of the content covered in 'Developing Mainframe Java Applications' by Lou Marco, including Java fundamentals, syntax, and application development in a mainframe environment.

Uploaded by

checafaiza57
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
29 views60 pages

Developing Mainframe Java Applications 1st Edition by Lou Marco ISBN 0471415286 978-0471415282 Instant Download

The document provides information about various Java programming books and their respective details, including titles, authors, and ISBNs. It includes links to download these books in multiple formats such as PDF, ePub, and MOBI. Additionally, it features a comprehensive overview of the content covered in 'Developing Mainframe Java Applications' by Lou Marco, including Java fundamentals, syntax, and application development in a mainframe environment.

Uploaded by

checafaiza57
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 60

Developing Mainframe Java Applications 1st

Edition by Lou Marco ISBN 0471415286


978-0471415282 install download

https://ebookball.com/product/developing-mainframe-java-
applications-1st-edition-by-lou-marco-
isbn-0471415286-978-0471415282-10322/

Explore and download more ebooks or textbooks


at ebookball.com
Get Your Digital Files Instantly: PDF, ePub, MOBI and More
Quick Digital Downloads: PDF, ePub, MOBI and Other Formats

Developing Enterprise Java Applications With J2Ee and Uml 1st Edition
by Khawar Zaman Ahmed, Cary Umrysh ISBN 0201738295 978-0201738292

https://ebookball.com/product/developing-enterprise-java-
applications-with-j2ee-and-uml-1st-edition-by-khawar-zaman-ahmed-
cary-umrysh-isbn-0201738295-978-0201738292-14370/

Java Network Programming Developing Networked Applications 4th Edition


by Elliotte Rusty Harold ISBN 1449365965 9781449365967

https://ebookball.com/product/java-network-programming-
developing-networked-applications-4th-edition-by-elliotte-rusty-
harold-isbn-1449365965-9781449365967-12564/

Java Classes in Java Applications 1st Edition by David Etheridge ISBN

https://ebookball.com/product/java-classes-in-java-
applications-1st-edition-by-david-etheridge-isbn-12866/

Developing backbonejs applications 1st edition by Addy Osmani


1449328253 9781449328252

https://ebookball.com/product/developing-backbonejs-
applications-1st-edition-by-addy-
osmani-1449328253-9781449328252-20238/
Java 2 Network Security 2nd Edition by Marco Pistoia, Pistoia, Deepak
Gupta, Ashok Ramani ISBN 0130155926 9780130155924

https://ebookball.com/product/java-2-network-security-2nd-
edition-by-marco-pistoia-pistoia-deepak-gupta-ashok-ramani-
isbn-0130155926-9780130155924-16824/

XML and Java Developing Web Applications 2nd Edition by Hiroshi


Maruyama, Kent Tamura, Naohiko Uramoto, Makoto Murata, Andy Clark,
Yuichi Nakamura, Ryo Neyama, Kazuya Kosaka, Satoshi Hada ISBN
0201770040 9780201770049
https://ebookball.com/product/xml-and-java-developing-web-
applications-2nd-edition-by-hiroshi-maruyama-kent-tamura-naohiko-
uramoto-makoto-murata-andy-clark-yuichi-nakamura-ryo-neyama-
kazuya-kosaka-satoshi-hada-isbn-0201770040-9780/

Developing Web Applications with Visual Basic.NET 1st edition by John


Alexander,Billy Hollis ISBN 9780471085171

https://ebookball.com/product/developing-web-applications-with-
visual-basic-net-1st-edition-by-john-alexander-billy-hollis-
isbn-9780471085171-11158/

Learning Classifier Systems From Foundations To Applications Lecture


Notes In Computer Science Lecture Notes In Artificial Intelligence
1813 1st edition by John Holland, Lashon Booker, Marco Colombetti,
Marco Dorigo, David Goldberg, Pier Luca Lanzi, Wolfg ISBN 3540677291
 978-3540677291
https://ebookball.com/product/learning-classifier-systems-from-
foundations-to-applications-lecture-notes-in-computer-science-
lecture-notes-in-artificial-intelligence-1813-1st-edition-by-
john-holland-lashon-booker-marco-colombetti/

Enterprise JavaBeans 3 0 Developing Enterprise Java Components 6th


Edition by Andrew Lee Rubinger, Bill Burke ISBN 0596158025
9780596158026

https://ebookball.com/product/enterprise-
javabeans-3-0-developing-enterprise-java-components-6th-edition-
by-andrew-lee-rubinger-bill-burke-
isbn-0596158025-9780596158026-12646/
Cover

Y
FL
AM
TE

Team-Fly®
Page i

Developing Mainframe Java™ Applications


Page ii

This page intentionally left blank.


Page iii

Developing Mainframe Java™ Applications

Lou Marco
Page iv

Publisher: Robert Ipsen


Editor: Margaret Eldridge
Assistant Editor: Adaobi Obi
Managing Editor: John Atkins
Text Design & Composition: MacAllister Publishing Services, LLC

Designations used by companies to distinguish their products are often claimed as trademarks. In all
instances where John Wiley & Sons, Inc., is aware of a claim, the product names appear in initial
capital or ALL CAPITAL LETTERS. Readers, however, should contact the appropriate companies
for more complete information regarding trademarks and registration.

Copyright © 2001 by Lou Marco. All rights reserved.

Published by John Wiley & Sons, Inc.

No part of this publication may be reproduced, stored in a retrieval system or transmitted in any form
or by any means, electronic, mechanical, photocopying, recording, scanning or otherwise, except as
permitted under Sections 107 or 108 of the 1976 United States Copyright Act, without either the
prior written permission of the Publisher, or authorization through payment of the appropriate per-
copy fee to the Copyright Clearance Center, 222 Rosewood Drive, Danvers, MA 01923, (978) 750-
8400, fax (978) 750-4744. Requests to the Publisher for permission should be addressed to the
Permissions Department, John Wiley & Sons, Inc., 605 Third Avenue, New York, NY 10158-0012,
(212) 850-6011, fax (212) 850-6008, E-Mail: [email protected].

This publication is designed to provide accurate and authoritative information in regard to the subject
matter covered. It is sold with the understanding that the publisher is not engaged in professional
services. If professional advice or other expert assistance is required, the services of a competent
professional person should be sought.

This title is also available in print as ISBN 0-471-41528-6

For more information about Wiley products, visit our web site at www.Wiley.com
Page v

Contents

Preface xiii
Acknowledgments xvii
Part 1 Java Fundamentals 1
Chapter 1 Introduction 3
Java Trek 3
A New World of Objects 3
Reusability 4
Inheritance 4
Encapsulation 4
Stack Class 5
Polymorphism 6
Java and C++ 6
C++ 7
Java 8
A PL/I Version of the Bubble Sort 17
In Summary 20
Chapter 2 What Is Java? 23
A Brief History of Java 23
The World of Java Today 25
Java: The Programming Language 25
Java: The Object-Oriented Programming Language 25
Java: The Portable Programming Language 26
Page vi

Java: The "Pointer-Less" Programming Language 27


Java: The MultiThreaded Language 28
IBM's Java Efforts 29
Java versus COBOL and PL/I: A Brief Look 29
In Summary 34
Chapter 3 Creating Your First Java Program 35
Installing the JDK 35
Is the JDK Installed Properly? 36
Compiling and Running the Program 37
Compiling and Running Java Programs: A Second Look 38
Watch out for Those Class Names 42
What Does a Compile Error Look Like? 43
Let's Look at the HelloWorld Program 43
Back to Our Program 46
In Summary 47

Chapter 4 The Sun Java 2 Basic JDK Tools 49


Basic JDK Tools 49
Appletviewer 50
jar 51
extcheck 53
java 54
javac 58
Javadoc 62
javah 66
javap 66
jdb
68
In Summary 76

Chapter 5 Declaring and Defining Data 77


Java Primitive Types 77
A Few Words on Variable Typing 78
Variable Type Casting 80
Java Variable Typing 81
The boolean Primitive Type 82
The char Primitive Type 83
Integer Primitive Types 84
Floating Point Primitive Types 85
Character Strings in Java 86
Java Reference Data Types 86
Page vii

Java Naming Conventions 88


In Summary 89
Chapter 6 Java Language Syntax 91
Miscellaneous Java Syntax Items 92
Java Source Code Is Case Sensitive 92
Java Statements Terminated by a Semicolon 92
Java Supports Multiple Comment Styles 92
Java Has No COPY or Include Statement 93
Java Has No Pointers 93
Java Has No Preprocessor 93
Reserved Words Exist in Java 93
Java Is a Free-Form Programming Language 95
Java Assignment Statements 96
Java Operators 97
Java Operators not Found in Mainframe Programming Languages 100
Java Arithmetic Anomalies 106
Mixing Primitive Types in Arithmetic Expressions 107
Loss of Precision when Dividing Integers 108
Shoddy Floating Point Arithmetic Results 109
Overflow and Keep Going 110
Java Program Control Statements 111
Loop Constructs 111
Interrupting the Normal Processing of Loops 117
Java Decision Constructs 119
In Summary 123
Chapter 7 Class and Object Representation 125
Anatomy of a Java Method 125
Visibility Modifiers 125
Other Modifiers 127
Returned Types Coded in Method Headers 128
Method Names and Argument Lists 128
The throws Exception-Name Option in Method Headers 128
A Word or Two about Java Packages 129
The package Statement 131
Anatomy of a Java class 132
Constructor Methods and Instance Variables 132
In Summary 147
Page viii

Chapter 8 Encapsulating and Hiding Data and Methods 149


Encapsulation 149
Why Encapsulate and Hide Your Data and Methods? 150
How Do You Encapsulate Your Classes in Java? 153
A PL/I Example: Is This Object-Oriented Programming? 158
Using Accessor (Get and Set) Methods 161
In Summary 164

Chapter 9 Inheritance 165


Inheritance Defined 165
Same Classes, Different Inheritance Trees 166
Single Versus Multiple Inheritance 168
Y
FL
Example of an Inheritance Tree From the Java Libraries 169
AM

An Example: Implementing Bank Accounts 170


Code for Checking and Savings Account Classes 171
TE

Taking Advantage of Inheritance 174


Effects of Casting to and from Superclasses and Subclasses 181
In Summary 183
Chapter 10 Interfaces 185
What Are Interfaces? 185
Why Are Interfaces Useful? 186
What About Abstract Superclasses? 187
Creating Interfaces 188
Example: Implementing the Vehicle Types 188
In Summary 193
Chapter 11 Java Event-Handling Basics 195
Event Processing
Team-Fly®
196
Java Graphical Interface Components 197
Java Events 199
The Java Event Processing Model 200
Variations on a Theme 1: Using Adapter Classes 205
Variations on a Theme 2: Using Top-Level Classes 206
Variations on a Theme 3: Using Inner Classes 207
In Summary 208
Page ix

Chapter 12 Exception Handling and Thread Basics 209


What Are Exceptions? 209
The Java Exception Hierarchy 210
The Java Exception Class 211
Mainframe Programming Language Exception Handling 212
Mechanisms
The Java Exception Handling Mechanism 214
Throwing Exceptions 214
Throwing Exceptions - Continued 215
Declaring Potentially Thrown Exceptions 216
Catching Exceptions with try/catch/finally 218
Java Exceptions Summary 220
Thread Basics 220
Why Code Multithreaded Programs? 220
What Are Java Threads? 221
Executing Your Threads 222
Sample MultiThreaded Program 222
In Summary 227
Chapter 13 The Training Department Class Scheduler 229
System
The Application Defined 229
Application Options for the Students 230
Application Options for the Instructors 230
The User Interface 230
The OS/390 Mainframe User Interface 231
The Java User Interface 234
The Data Stores 237
The Course Information File 238
The Class Information File 238
The Instructor Information File 238
The Employee Information File 238
Application Outputs 238
OS/390 IBM Mainframe Outputs 239
Java Outputs 242
Putting Together the Application 243
A Procedural Language Solution 244
A Java Language Solution 249
In Summary 254
Page x

Part 2 Java In the OS/300 Mainframe Environment 255


Chapter 14 Overview of OS/390 Java 257
Infrastructure/Architecture
Software Requirements 257
Java Application Architectures 258
Java Software Components Versus Standalone Programs 259
Accessing OS/390 System Software 259
IBM Java Development Tools 262
In Summary 262
Chapter 15 Overview of OS/390 UNIX System Services 265
The Command Shell 265
The HFS File System 267
Working with HFS Files 268
Comparing MVS, UNIX, and OS/390 Concepts 270
In Summary 278

Chapter 16 Java and MVS Batch 279


Executing Java in Batch 279
Running Java Programs with BPXBATCH 280
Running Compiled and Linked Java Programs 284
Running Java Programs as Started Tasks 285
In Summary 286
Chapter 17 Java Record I/O Using the JRIO Package 287
What Is JRIO? 287
Contents of the JRIO Package 288
JRIO Interfaces 288
JRIO Constants 290
JRIO Exceptions 292
Using JRIO 294
Directory and Dataset Naming Conventions 294
import Statements Needed for JRIO 295
Representing Record Structures 295
JRIO Coding Examples 298
Fetching Encoded Data from and Setting Data to Fields 311
In Summary 313
Chapter 18 Java, CICS, and IMS 315
Java and CICS 315
The CICS Transaction Gateway 315
Writing a JCICS program using COMMAREA 320
Page xi

Java and IMS 321


What Is IMS Connect for Java? 322
In Summary 326

Chapter 19 Java and DB2 327


Overview of Java and DB2 for OS/390 327
Java Database Connectivity (JDBC) 329
Using JDBC 329
Java and SQLJ 334
Using SQLJ 334
Comparing JDBC to SQLJ 337
In Summary 337

Chapter 20 The Training Department Class Scheduler 339


System Revisited
The Application Feature Defined 339
The SQL Used in the Example 339
A Procedural Language Solution for "Display Class List Later Than 340
Entered Date" Option
Comments on the COBOL Solution 340
A Java Language Solution for "Display Class List Later Than 344
Entered Date" Option
The Code for a Single Class Retrieved from the Database 344
In Summary 347
Part 3 Java: Above and Beyond Other Programming 349
Languages
Chapter 21 Applets 351
A Bit of Background 351
Applications versus Applets 351
Coding the Web Page that Uses the Applet 352
How an Applet Executes 352
In Summary 357

Chapter 22 Java User Interface Basics 359


Java GUI Component Libraries 359
Standard GUI Components 360
Java Containers 360
Another Example 366
In Summary 371
Page xii

Chapter 23 Java File I/O 373


The File 374
Files (Datasets) in COBOL, PL/I 374
Files in Java 375
The Concept of a Stream 378
Streams in COBOL and PL/I 378
Streams in Java 380
In Summary 383
Chapter 24 The Java 2 Enterprise Edition Libraries 387
What Is J2EE? 387
Java on the Server 388
J2EE APIs 389
In Summary 394
Chapter 25 Remote Method Invocation 395
What Is Java RMI? 395
Java RMI Mechanics 396
Time for an Example 398
Step 1: Create the RMI Interface 398
Step 2: Code the Client Class 400
Step 3: Code the Server Class 401
Step 4: Compile the Interface, then the Server, and Then the Client 403
Classes
Step 5: Generate the Stub with the rmic Program 403
Step 6: Place the Stub Class File where the Client and the Server 403
Classes can Find Them
Step 7: Start the rmi Registry 404
Step 8: Create a Policy File 404
Step 9: Execute the Server Class 405
Step 10: Execute the Client Class (Invoke the Remote Method) 405
Summary of RMI Steps 405
In Summary 407
Glossary 409
Bibliography 417
Index 419
Page xiii

Preface
Developing Mainframe Java Applications provides big iron data processors with a reference and
learning tool they can use to write Java programs that run under OS/390. The thrust of the book is to
describe Java in the language of the mainframe professional and to show how such professionals
would develop Java applications for the IBM mainframe.

This is a "how-to" book, meant to impart rules and general techniques by drawing analogies between
the familiar and the new. Scant mention is made of the technical intricacies of the Java Virtual
Machine, garbage collection algorithms, "the taming of the threads," or other topics that deal with
Java internals.

Who Should Read This Book?


The main audience for this book is the mainframe programmer. These programmers have years of
experience on the mainframe and, although the likelihood is high that they have a wintel desktop (for
email, office productivity, and mainframe terminal emulation), they may not be adept at
Y
programming on anything but a mainframe.
FL

The book helps programmers learn Java programming, but the book has a wider audience than
AM

mainframe programmers. Systems analysts need to understand what Java is all about as well as
programmers. Management, especially first and second line managers, needs an understanding of
Java and a way of relating Java to their technical background.
TE

As an aside, the book assumes that the reader has no C or C++ programming experience, which
means that Java syntax, down to using curly braces, may be unfamiliar to the reader.

Team-Fly®
Page xiv

The Book's Organization


Part 1, "Java Fundamentals," describes Java by comparing its language features with those of third-
generation procedural languages, such as COBOL and PL/I. The book describes Java as an object-
oriented programming language. Part 1 concludes by showing some Java code for an application and
comparing this Java code to COBOL and PL/I code that performs similar functions.

Part 1 contains chapters that discuss loops, decision constructs, declaring data, and
subroutine/function (methods, really) invocation–the language of procedural programming
languages. Other chapters discuss Class/Object representation, Inheritance, and Encapsulation–the
language of object-oriented programming languages. After the reader completes Part 1, he or she will
have a good grasp of how to use Java and how Java stacks up against familiar mainframe
programming languages.

The goals of Part 1 are as follows:

To describe Java by comparing and contrasting Java to familiar programming languages

To introduce the Sun Java JDK so the reader can create and execute simple Java programs on
his or her PC

To explain how Java implements the object-oriented programming language metaphor,


thereby showing how Java is different from PL/I, COBOL, and other languages used by the
mainframe programmer

Part 2, "Java in the Mainframe Environment," describes IBM's "Java Everywhere" strategy by
examining Java in the OS/390 environment. Each chapter covers how Java works with a particular
brand of IBM technology, such as CICS, DB2, or VSAM. Java code exploiting IBM-specific
technologies is included. The section concludes with Java code that accesses DB2 tables.

Part 2 explains shows how IBM has provided the Java programmer access to tried and true
technologies. After the reader completes this section, he or she will have a good grasp of how to
exploit Java in the OS/390 environment. The reader will be quite comfortable with Java; he or she
knows the syntax, how Java implements the object-oriented world view (from Part 1), and how to
use Java with familiar IBM technologies (Part 1).

The goals of Part 2 are as follows:

To explain how IBM has implemented Java on its mainframe environment

To explain how to use Java with the following IBM technologies:

CICS

IMS

Batch

VSAM
DB2

To compare and contrast Java code with COBOL and PL/I code when using the previous list
of technologies
Page xv

To describe IBM's JRIO classes and how the Java programmer on OS/390 uses these classes to
perform record I/O

To show application code using JDBC to access DB2 data

In the first two parts, the book shows COBOL and PL/I code that functions like the Java code in the
snippets and applications. However, this approach can only take the reader so far into the world of
Java. Simply put, Java is far more capable than COBOL and PL/I put together. Hence, the last
section of the book describes several key features of Java that are found only in Java.

Part 3, "Java: Above and Beyond Other Programming Languages," lightly touches on several Java
features and capabilities, such as applet creation, the Swing user interface classes, Java 2, Enterprise
Edition (J2EE), and Remote Method Invocation (RMI).

The goals of Part 3 are to describe some of Java's unique features, including

Applet coding

Java Native File I/O

Java GUI classes

The libraries constituting the Java 2, Enterprise Edition

The Remote Method Invocation (RMI) classes, which enable a Java programmer to execute
Java programs on other machines over a network

Conventions Used in This Book.


Code listings and outputs appear in a monospaced font, such as

public static void main( String[] args )

The first time a term is used in a chapter, the term is printed in italics.

Throughout the book, you'll find sidebar information that contains relevant information that doesn't
fit into the current context. Here's what a sidebar may look like:

You'll also encounter notes that augment the material preceding the note. Here's

THIS IS HOW A SIDEBAR TITLE MAY LOOK


And here is some text explaining the sidebar title . . .

what a note may look like:

This text may explain the material immediately preceding the note.

You'll also encounter tips that offer a shortcut or a solution to a common problem that relates to the
material you've just read.
This text may provide a shortcut or solution to a common problem.
Page xvi

This page intentionally left blank.


Page xvii

Acknowledgments
This work would not have been possible without the nearly infinite patience of the hard-working folk
at John Wiley & Sons. Of course, kudos go to my wife who had to witness and endure some strange
behaviors on my part during the completion of this work.
Page xviii

This page intentionally left blank.


Page 1

PART One
Java Fundamentals
Page 2

This page intentionally left blank.


Page 3

CHAPTER 1
Introduction

Java Trek
You are a mainframe programmer neck deep in COBOL programming. You cannot escape the siren
song of object-oriented programming (OOP). Every trade publication you peruse has articles from
industry pundits chanting the object mantra. In an evangelical manner, these new disciples of the
object faith quote chapter and verse from the missiles of Saint Booch and Saint Jacobsen. The
message is clear— you must adopt the Object Tao and righteously cast out the old demons of
procedural programming and structured design.

Okay, you got the calling. As a highly evolved mammal, your survival instinct kicks in. You sense
that you'd better find out what this object stuff is all about. If these harbingers of the object path are
correct, you could become obsolete before you become vested in your pension plan. Duly motivated,
you begin your quest for the truth about object technology.
Y
A New World of Objects
FL

The oceans of literature and the galaxy of Web pages contain many new terms and concepts. On your
AM

own, the brave new world of object technology can be quite daunting. In this exploration, you will
have an experienced guide to help you sort through the differences between mainframe programming
concepts and object technology— specifically Java programming.
TE

Team-Fly®
Page 4

Object applications are not related sets of procedures acting on external data sources, but sets of
communicating objects. These objects contain all their needed data and procedures. The object view
of modeling software systems is based on the properties and behaviors of actual application entities.
Comparatively, the old software design model of creating separate data models and structure charts
seems archaic.

Reusability .
The object prophets make strong claims about software reusability. On the reusability issue, the
prophets speak with a single voice. They say that only by using object technology can you, the
programmer, create truly reusable code.

We all know that software reusability is not a new issue. Actually, software reusability has always
been the platonic ideal of programming. You've probably been very close to this ideal at times. It is
possible to write reusable code with a procedural language, but the reusability is achieved in spite of,
rather than because of, your programming tools and environment.

Is there really a programming environment out there somewhere that enables you to create reusable
code as a rule, not as an exception? Any culture advanced enough to produce cholesterol-free eggs
and breastfeeding devices for males must be advanced enough to produce this programming
environment. But do object environments truly assist the programmer in writing reusable code?

Inheritance
You may have read about that wonderful property of objects called inheritance. With inheritance,
you write code that implements some behavior for a group of similar objects, or a class. You create
subclasses based on some relationship— subclass A ISA superclass of B, for example. Once done,
the code that implements behaviors for the superclass is automatically known to the subclass. Yes, I
said automatically known to the subclass.

Well, this certainly sounds like a feature that would help me write reusable code. Think of a bank
account superclass with checking and savings account subclasses. You write code to implement the
withdrawal behavior for the bank account class. This code automatically becomes known to the
checking and savings account superclass. One routine, three classes. This beats the pants out of
reusability in the COBOL world-copying code in a separate member of your PDS and changing a
few lines. Do you see the real value in this inheritance stuff?

Encapsulation
You are likely to encounter the term encapsulation in any exploration of object technology. With
encapsulation, the data and code that implement behaviors in application objects are hidden from
other objects. The big idea is that, because other objects do not know about an object's internal data
and behavior representations, these other objects cannot change these representations. In short,
encapsulation provides a safety mechanism that prevents unwanted changes in an object's data.
Page 5

How does this encapsulation stuff really help prevent unwanted changes? Think about the last set of
COBOL modules you wrote. Let's say you coded a list of parameters in the CALL/USING statement
of the calling module. Remember the unexpected behavior of the calling program? Remember trying
to debug the calling program? Remember how the called program changed one of the parameters
supplied in the LINKAGE section? Remember how difficult this problem was to locate? Suddenly,
like the light bulb flashing over the coyote's head in those silly roadrunner cartoons, you see the
beauty, majesty, and practicality of encapsulation.

The problem with the COBOL modules is that both the calling and called modules needed to know
the data representation of the parameters. Because the called module knew the data representation,
the module contained code that changed the parameter. At times, you count on the ability of the
called COBOL module to change the parameter's value and write code to make wanted changes.
Sadly, you can slip and write code that inadvertently changes passed parameters. The calling module
has no knowledge of these changes and does not execute correctly.

Owing to encapsulation, an object application can never suffer this fate. What an object doesn't
know, an object cannot change. Data contained on objects is safe from unwanted tampering from
other objects.

Stack Class
Let's say Joe Programmer wrote a PL/I program a while back. Being a wise guy, he implemented a
stack as a controlled data structure (a controlled data structure in PL/I— declared with the storage
class CONTROLLED— means the PL/I program can dynamically allocate memory for the structure
with the ALLOCATE statement). All routines that used the stack had this controlled structure
declaration. Joe's code worked; he was immensely pleased with himself. When the team lead
scheduled the code walk-through, he couldn't wait to demonstrate his superior knowledge of the PL/I
language.

Well, it turns out that Joe should have known that the project lead is not nearly as well versed in PL/I
as he is. When she saw the stack and its controlled allocation, she barked, "What is this?" With pride,
Joe described the intricacies of PL/I's controlled storage class. A scowl slowly spread over the
project lead's face. She was clearly not impressed with Joe's code and asked him to rewrite the stack
code, using a more conventional data structure. When Joe meekly asked for a suggestion, she
whipped out an array representation on a white board. Joe slinked back to his cube to make the
required changes.

Joe hunted down every module that accessed the stack because he had to change every one. He had
to change the POP, PUSH, and ISEMPTY routines, too. What a pain. Maybe Joe should have
conferred with Hagatha, the team lead, before he embarked on his coding journey.

If this application were done in an object language, Joe would need to change only the stack class.
All objects communicating with the stack, being ignorant of the stack's data representation, would
not have to be changed.

Another bonus— because of inheritance, all subclasses of a changed class automatically know of the
change. Joe need do nothing to implement a new data representation or a behavior in the subclasses.
Page 6

By now, you should be firmly convinced that this object stuff is definitely worth the admission price.
This class/object representation, combined with inheritance and encapsulation, makes for powerful
code. Many more object technology wonders are there to unearth— let's keep digging.

Polymorphism
What if you could send the same message to different objects and each object would invoke the
appropriate behavior in response to the message? Remember that object applications are
communicating objects, not separate function/module calls acting on external data sources. The term
message makes sense in object-speak. Objects communicate by issuing messages to each other. The
message invokes some behavior that you have implemented in code. The thrust of polymorphism is
that each object responds to a message according to its understanding of that message.

There is practical, everyday truth in this. How do people respond to messages? Do we not respond in
our own way? Don't different people (and dogs, for that matter) respond differently to the same
message? When you become accustomed and attuned to this concept, the object world-view of
polymorphism seems as natural and proper as wearing underwear.

You may think that object technology is recent, say 1990s, technology. However, object technology
has been around since the 1970s. It may be strange to realize that object technology is older than
your dog. It may be older than your significant other. It is certainly older than some of the big iron
technology like DB2 and REXX that you've been using for the past 15 years.

Java and C++


By now, you have absorbed the essentials of an object system: class/object representation,
encapsulation, inheritance, and polymorphism. That's good. But, as a programmer, you may be
naturally curious about programming languages that implement these essentials. It seems that every
programming language has an object flavor (even COBOL.) However, the most common are the
C++ and Java programming languages. Let's investigate these two languages.

Your first impulse may be to rush off to a bookstore and purchase some of the uncounted number of
books about these languages. Because most programming books are 40-plus dollars, a few books
equate to big bucks. After all, you're a programmer, not a drug dealer or a dentist. Three books are
the equivalent of food for two weeks. By now, the at-home crowd must be weary of eating beanie-
weenies. Maybe you can make do without the books for now.

Internet searches reveal a wealth of links on C++ and Java. There are lots of C++ and Java source
code, lots of terminology and acronyms, and lots of talk about UNIX on the net. There's little on how
object technology is used by companies in certain industries— notably yours. To find out how this
object–C++–Java technology is used by your industry and your company will take more research.
Page 7

Perhaps a direct approach is in order. Why not talk to folks in your organization to learn if anyone in
the same building is using object technology? You may meet a few object converts under your
corporate roof. Perhaps some of these object practitioners can shed some interesting light on C++
and Java usage within the company.

C++
Joe, the first object practitioner you meet, uses the C++ programming language. This programmer
swears with the fervor of a recent ex-smoker that any object programmer worth his salt uses C++. He
gleefully takes the time to explain his ardor for C++.

Joe tells you in a pompous and annoying manner that C++ supports all the features of object
programming: class/object representation, encapsulation, inheritance, and polymorphism. He
explains that C++ is a hybrid object language— a language built upon an existing procedural
programming language (C, in this case). He boasts that his C experience and knowledge of object
concepts enabled him to start coding almost immediately.

He continues by explaining that C++ supports multiple inheritance. Multiple inheritance enables a
subclass to inherit data attributes or behaviors from more than one superclass. Of course, he grins,
multiple inheritance is more flexible than, and superior to, single inheritance.

Because of your hard work and research, you understand what Joe is talking about. You wax with
glee as you realize that you can talk the object talk. You can't wait to walk the object walk.
Impatiently, you ask him to show you some C++ code.

As your eyes scan the C++ code, your shiny, gleeful face quickly sours to a dull, woeful puss. You
can't understand any of this stuff. This code could be Babylonian cuneiform writing as far as you're
concerned. You can't believe that under this mess is essentially code in a procedural language.

You recall the first time you saw PL/I. You didn't understand the nuts and bolts, but you had a good
understanding of what the code did. Your COBOL background was good preparation for
understanding PL/I. Unfortunately, this C++ stuff looks pretty cryptic.

The C++ programmer senses your state of overall confusion and asks you how much C experience
you have under your belt. There may be lots under your belt these days, but none of it is C
programming experience. You're a COBOL and PL/I programmer. Remember when you had to learn
pointer use in PL/I? You finally grasped that a pointer is merely a four-byte address. Joe shows you
pointers to character strings, pointers to integers, and (gasp!) pointers to pointers, explaining that,
although these pointers are addresses, they are all different data types. You thank the Joe for his time
and mosey on to your cubie. Alone with your thoughts, the horror of learning C++ seeps in. You
thought object programming would be easier than conventional procedural programming. This C++
stuff seems to be procedural programming at its worst.

At lunch, you mention to a chum that you're looking into C++ programming. This chum happens to
know a thing or two about C++. He has some C++ information obtained from a vendor of Macintosh
software development tools. He believes that this information is Mac-specific. But the C++
information from the Mac vendor made the
Other documents randomly have
different content
away.”

“Why,” said Audry, “are you not comfortable here?”

“Of course I am comfortable,” he said, “but I cannot stay here


forever, it would not be fair to you. Besides it is time that I was
doing my work in the world.”

“But it would be terribly risky,” said Audry, “and after the narrow
escape you had, I think you might consider you had done your
share.”

“No, because I feel that I have something so valuable for people,


that it is worth any risk.”

“But look how you have suffered and you will bring the same
suffering to others; in fact you hesitated about telling us.”

“But that was because you are children, and somehow I do not
feel that a child is called upon to undertake such great
responsibilities.”

“I do not see why a child should not judge,” said Aline; “it is all so
simple and beautiful. If it is worth dying for, people should be glad to
have it, whatever the suffering. I think I feel ready to die like poor
George Wishart. So if your going helps other people, even if it makes
us very sad you must go. When do you think you ought to start?”

“I have a definite errand to undertake. I have never told you


about it, but I am acting as a special messenger with some
important papers, and I have been thinking it over and have come to
the conclusion that I should be leaving here in a week at most, but
less if possible.”

“What, so soon?” exclaimed both the children at once.


A deeper gloom than ever seemed to fall over the party as this
was said, and although they tried to feel cheerful, they knew it was
a poor attempt. No one spoke for a long time. Ian sat with his head
between his hands and Aline gazed into the empty fireplace at the
dead ashes of the fire that had been lit when Ian came.

These days with Ian had made the Holwick life far more bearable
for her. There were her Greek lessons and the fencing lessons, but
bad as it would be to lose them it would be worse to lose her friend.
He was generally very reserved with her; but if she was in trouble he
always opened out. She glanced up. Ian had lifted his head and their
eyes met. What would she do without him?

Audry held one of the foils and drew with it on the floor. The
silence was oppressive.

At length Aline spoke. “Where shall you go, when you leave us?
You cannot think how sadly we shall miss you.”

“I shall probably miss you more than you will miss me, sweet
child,” and Menstrie looked at her with a strange longing pain in his
heart. It was thirteen years since any one person had filled his life as
this child had done, and now he was to lose her. “Surely,” he said to
himself, “life is compact of most mysterious bitterness”; but he tried
to be cheerful for the child’s sake and said, “Never mind, Aline, I
shall come and see you again. I think I shall try and become a
packman like your friend who gave you your necklace, if I can get
some money somehow to begin, and then I can pay many visits to
Holwick. I believe I could disguise myself well enough, as I do not
think that any one here really knows me,—the few that saw me will
have forgotten me. We can meet in this room and I shall be able to
bring you news and some interesting things from far away.”

“Yes, do bring me a chatelaine,” said Audry. “I have always wanted


one and Father has either forgotten or been unable to get it.”
“Is there anything you would like, birdeen?” said Ian, addressing
Aline.

Aline thought for a moment; why should he bring her things, he


was obviously poor and never likely to be anything else? What was
the younger son of a yeoman who had been a wanderer, a smith and
a soldier of fortune ever likely to have in the way of money? Even
her own father who had been a small Laird had never been able to
purchase her the necklace that he had so desired to do. “I do not
want you to bring me anything,” she answered finally, “if only you
can keep yourself safe,” and then she added hesitatingly, “Would a
Greek Testament be expensive?”

“No, not at all,” said Ian. “Would you like one, little angel?”

“Yes, very much indeed; but oh, I am afraid it will be a long time
between one visit and the next, and we shall not know what has
become of you,” and Aline sighed.

“I think I could write to you sometimes,” he said. “We might get


hold of Walter Margrove, who suggested something of the sort to
you, and for greater security we could make duplicates of the
parchment with the holes that you found in the book. I could write
the letter so that it looked like an announcement of my wares.”

They discussed the matter for some time and the next day set
about making the parchment slips, and for the following few
evenings they were busy with several preparations. Ian’s clothes all
had to be mended and put in good order and they took some of the
clothes that they had found in the secret room and by slight
alterations were able to make him a second outfit.

They also found a leathern wallet that with a little patching made
a sound serviceable article.

Ian further made a suggestion to Aline in case they should have


reason to suspect that the key to their correspondence was known.
“Let us take your name and mine,” he said, “to make the foundation
of a series of letters and we will write the names downward like this

A
L
I
N
E”

“Yes, and what next?” said Aline.

“Well, after each letter, we will write in order the letters in the
alphabet that follow it. After A we will write B C D E F G, and after L
we will write M N O P Q R, and whenever we get to Z we start the
alphabet again. So if we write our whole names it will look like this—

A. B C D E F G
L. M N O P Q R
I. J K L M N O
N. O P Q R S T
E. F G H I J K
G. H I J K L M
I. J K L M N O
L. M N O P Q R
L. M N O P Q R
E. F G H I J K
S. T U V W X Y
P. Q R S T U V
I. J K L M N O
E. F G H I J K
I. J K L M N O
A. B C D E F G
N. O P Q R S T
M. N O P Q R S
E. F G H I J K
N. O P Q R S T
S. T U V W X Y
T. U V W X Y Z
R. S T U V W X
I. J K L M N O
E. F G H I J K

Now there are 25 letters in each column, and if we just put a


number at the top of our communication, we shall know where we
are to begin to use the sequence.”

“I see,” said Aline, “if the number is 51 we shall begin at the top
of the third column; if it is 56 we shall begin 6 letters down the third
column.”

“And if it was 176,” said Ian, “what should we do?”

“Well, we should have to make another column the same way and
we should begin at the top of it.”

“Now suppose the number is 1, we shall then begin at the very


beginning, and the way we should use the letters would be like this.
Suppose this is the message,—

“Arthur Melland wishes to notifie the good people in the


Lothians of the lasting excellence of his wares. His pack is
regularly filled with all the newest materials and, too, all is most
marvellously finished in design.
Our first letter was A, and the first A we find is the A of ‘Arthur.’ Our
second letter was L, and the next L that we find is in ‘Melland.’ Our
third letter was I and the next I that we find is in ‘wishes.’ Our fourth
letter was N and the next N that we find is in ‘notifie.’”

“Oh, that’s quite easy,” said Aline, “and so you mark them all like
this—

“Arthur Melland wishes to notifie the good people in the


Lothians of the lasting excellence of his wares. His pack is
regularly filled with all the newest materials and, too, all is most
marvellously finished in design.

and then cut them out.”

“Yes,” said Ian, “and the only other thing necessary is that the
paper should first be neatly ruled with quarter inch squares, and
each of the key letters carefully written in a square. It does not
matter about the others. But then when the receiver gets the letter
he knows that the squares to be cut must be exactly an even
number of quarter inches from the edge of the paper.”

“I hope I shall remember it if needful,” Aline said.

“I don’t,” said Audry.

“Why not?” exclaimed the others in astonishment.

“Because I hope it won’t be needed and that would certainly be


simpler.”
CHAPTER XIV

GOOD-BYE

T HE days slipped by all too quickly and the children spent every
available moment in the secret room. But it was not very safe for
them to disappear from sight too often and moreover, other
obligations had to be fulfilled. Sometimes they were able to arrange
that one should remain with Ian while the other was occupied
elsewhere.

On one of these occasions, while Audry was in the secret room,


Aline went down to the Arnsides. On the way she met Father
Laurence coming up from Middleton. It was an unusual thing for him
to come to Holwick and Aline was surprised. “Good day, Father,” she
said, as she dropped a curtsey.

“Bless you, my child,” said the old man, looking at her keenly,
“talium enim est regnum dei,”[16] he whispered softly to himself.
“How profound Our Lord’s sayings were. Yes, it does one good even
to look at a child,” and then he noticed that Aline seemed sad and
troubled and lacked her usual buoyant vivacity. “Are you not happy,
little maiden?” he said gently.
16
For of such is the kingdom of God.

Aline looked at him with an expression of wonder; “No, not


exactly,” she said.

“What is it, my child?”


“Oh, many things, Father; the world is difficult.”

They had drawn near to the side of the road and Aline was leaning
against the wall; she plucked the top of a tall ragwort and began
pulling off its yellow petals one by one.

The priest put his elbow on the wall and looked down at her. He
was very tall indeed, with a rather thin face and deep sad eyes. He
at once saw that she did not want to tell him her troubles and he
had too much instinctive delicacy to press the child. He laid his
disengaged hand kindly on her head, and she looked up at him.

“Strange,” he thought, “I might have had such a child of mine


own; but no, it was not to be. Yes, I know what sorrow is: I have
indeed made my sacrifice.

“All things work together for good, Aline,” he said aloud, “the
forces of good must win in the end, but the powers of darkness are
strong and the victory may be long delayed; yet it will come.”

“But the world is cruel, Father,” said Aline.

“Yes, my child, I know, and the world often seems to be


victorious; but it is only victorious in the things of the world. The
principle of love and the principle of beauty will outlast the world,”
and he smiled a sweet smile.

Aline gazed into his face and he seemed to be looking into the
things beyond.

“Be of good courage, little maiden, fear not them that have power
to hurt the body. The Lord be with you, and may the Mother of God
watch over you; farewell.”

He turned as he spoke and Aline saw him cross over to the


cottage of Benjamin Darley. She went on to the Arnsides and found
both mother and son at home.
“Ah, Honey,” said the old woman, “it is good to see your bonnie
face, it’s a sight for sair een.”

“Mistress Aline is not looking very well, mother,” said John.

“Nonsense, John,” said Aline, and added brightly,—“I have come


to ask you all you can tell me about Newbiggin. I know I can trust
you.”

“Dear heart,” said Janet, “you do us honour.” She skilfully lifted the
peats with the long tongs and rearranged them on a different part of
the hearth and soon there was a bright fire.

“That’s a merry blaze,” said Aline; “it seems to cheer one’s heart.”

For an hour they sat and talked about Newbiggin; and the child,
with what she already knew, was able to make a shrewd estimate of
the true state of affairs.

After a while the subject not unnaturally turned to “Moll o’ the


graves” and Aline was dismayed when she heard that Moll had been
talking about seeing a man on the moors, and saying that it would
be the beginning of troubles.

“What did she mean by that?” asked Aline.

“She would not explain,” said Janet; “she refused to tell any one
anything more. ‘The time is not yet, the time is not yet,’ she kept
repeating; ‘when all is ready and I have discovered the workings of
the fates, I will tell you more than you wish to know.’”

“People have gossiped about it a great deal,” Janet went on, “but
Moll will say nothing further.”

“I trust that her evil desires may be foiled,” said Aline, “but I must
not tarry.”
As she went up the street she again met Father Laurence coming
out of Peter’s cottage and he seemed more sorrowful than ever.

“Peace be with you, Aline,” he said. “I have a right melancholic


thing here,” holding out a letter. “But it cannot grieve thee beyond
what thou already knowest. It is a letter from Durham, long delayed
in transit, concerning the death of little Joan. Will you read it or shall
I?”

Aline’s eyes filled with tears, “I should like you to read it,” she
said.

Father Laurence then read—

“To Peter Simson in Holwick

“It beseemeth me to send thee word, although my heart is


right heavy within me, of the passing of the small damsel y-
cleped[17] Joan, who came from Upper Teesdale. Of this you will
have already heard: but my sister was herself sick of an ague at
the time and Sir Robert Miller, her confessor, saith that her mind
wandered. He writeth this for me. She herself lingered not many
days,—God rest her soul,—and, when I came from Skipton,
where I dwelled, she was buried.

“I only know from a neighbour that the damsel had gained


health until latterly and that the end was on a sudden. She
spake much of the young lady at the Hall, who had given her
great bounty; and in especial would she have the shoon and the
belt returned, which were new. But these same I cannot find,
and methinks they must have gone to Newcastle with the other
orphans who were in my sister’s house, and whom the good
dame who came thence to nurse my sister, took home in her
charge, and may our Lady requite her kindness.

“An thou wouldst speak to the Mistress Alice or Ellen,—the


name escapeth me,—I would give thee much thanks.
“Elizabeth Parry.”
17
Named.

“But I never gave her any shoes or belt,” said Aline. “Poor little
Joan, her mind must have failed her at the last, or Mistress Parry
must have been as much in error as she was about my name. She
was a dear child,” she continued, “and it is bitter dole[18] to me. I
have burned a few candles for her soul, but I have not much
means.”
18
Grief.

“Trouble not thy gentle heart,” said the old priest, “I will myself
say mass for the child, and no one shall be at any charge. God keep
thee, Aline, as he may.”

When she reached the Hall she went to Ian and Audry and told
them what she had learned, and they were much disquieted at the
evil speaking of old Moll; but there was nothing that they might do
and they could only hope against hope.

Ever since hearing the letter that Father Laurence had read, the
sad figure of little Joan had floated before Aline’s eyes, and that
night she went to the library and opened the ambry and took out the
little packet and gazed at the pathetic contents. “I wonder whether I
shall ever be able to find the boy, Wilfred Johnstone,” she said. “But
I expect he will have forgotten already, boys never remember long,”
and then she recalled a remark of her father’s,—“A boy remembers
longer and is more constant than a girl, unless he has won her; but
after she is won she is the more faithful.” “I should like to know if
that be true,” she thought.

At length the evening came when Ian had to start. It was a fine
bright night as the three made their way down the secret passage
for the last time.
“How strange it has all been,” said Aline, “since we first discovered
the secret room and this passage. What a different thing life means
to me from what it did then!” She was leading the way carrying the
wallet containing the food, while Audry carried a staff and a big
heavy cloak.

“It has been a wonderful time for me,” said Ian, “and I can never
realise to the full the marvellousness of my escape or your great
kindness to me. I feel that God must have arranged it all, just
because it is so strange. I seem to have every little incident written
in undying characters in my mind, and I could recall almost every
word of your conversations with me. Even if we never meet again,
you will live with me always.”

“Oh, but you will come back and we shall meet again,” Audry
interrupted, “you must not talk like that.”

“I hope that I shall,” he said, but the tone of his voice was so sad
that no one spoke again till they came to the cave-room.

They lifted the stone and Ian climbed down first and then lifted
the two through the opening. As he held Aline in his arms a great
wave of feeling nearly overcame him altogether. For the moment he
felt as though he could not put her down; it was like voluntarily
parting with all that made life precious. He clasped her tightly to him
for a moment and then he set her very gently on her feet. It was not
too dark to see her face, and as he looked at it he realised that he
had never seen it more sad and yet it had never looked more
beautiful. The light was not bright enough to see the colour, but he
could just discern something of its richness in the gleam of her thick
long wavy hair, reaching far down below her waist. They all found it
very difficult to speak and the children wished him a safe journey
and a happy issue with very trembling voices.

“Think of me sometimes,” he said, “when I am gone, and pray for


me. May God be with you and do more than I can ever ask in my
feeble prayers.”

He kissed both the children, and holding Aline’s little face in both
his hands he said,—“Oh, if I could only do something for you, little
one, I could be happy, no matter what it cost. Somehow I feel that
we shall never meet again in spite of what Audry says; still that does
not make it impossible for me to do something for you. Remember
that I shall always be living in the hope that some such chance may
come and that the greatest pleasure you can give me is to let me
use myself in your service. But now I must go.” He kissed her once
again and then took the cloak, staff and wallet and strode into the
darkness; which soon closed round him and hid him from their sight.

After he had gone a hundred yards or so across the moor, he


paused; it was almost more than he could bear; so he knelt down
and prayed that all good things might come to Aline and, if it were
not selfish to ask it, that it might be given to him to suffer on her
behalf,—some pain, some sacrifice, some physical or mental
anguish, that might directly or indirectly add to her joy or lessen her
sorrow. After this he felt strengthened and even elated at the
thought of the suffering that he hoped would come. It was not
enough to give her happiness, the more it would cost him, the more
he would welcome it.

He walked as fast as the light and the nature of the ground would
permit, and when the morning dawned he had passed the wild
cataract of Caldron Snout and was on the spurs of Knock Fell.
CHAPTER XV

THE TERROR OF THE MIST

I T was a raw, damp morning and the day struggled up with


difficulty. Ian was very tired as it was long since he had made any
continuous physical effort and, anxious as he was to make progress,
he felt that he must rest. He sat down by a stream and opened his
wallet and broke his fast, while he thought out what would be the
best road for him to take. So far he had been sure of the way from
Audry’s description, but he was a little more doubtful about his
ability to find the route further on and yet, if possible, he did not
wish to ask questions of any one he met. He was just able to
distinguish the sun rising through the mist and hoped that the day
would brighten. From this he calculated that the wind which was
very steady was from the northwest.

He knew that, when they were hunting him before, a description


of him had been sent as far as Alston and Kirkoswald; so he
determined to try and reach Carlisle without going through these
places. In Carlisle people had more things to think about; and the
incident of his escape, even if news of it had travelled so far, would
by this time be forgotten. Moreover a stranger in the great border
town would not arouse any curiosity.

He therefore decided that he would keep along by the highest


ground following the ridge of summits. This he knew would
ultimately bring him to Cold Fell, where the drop on every side is
very marked and whence, if he had not seen Carlisle itself before, he
could drop down by Naworth or Brampton.
After a long rest he turned up the steep. Unfortunately the mist,
instead of lifting, grew thicker until he had nothing to guide him but
the wind and the general lie of the ground. Used as he was to the
hills, he always felt the eeriness of the mist seething and curling and
scurrying over the heather. It was bitterly cold as the wind was
strong and the mist grew so thick that he could only see the ground
for a few paces. He was afraid of coming suddenly upon the
precipice of some corrie or cross-gully. He had heard too of the
terrible “pot” holes in the limestone district, and pictured himself
falling down into one of those black bottomless chimneys, where
even his body would never be seen again.

He decided to strike straight up for the top, even though it was


more fatiguing, and he followed the steepest line of the ground,
scrambling over the rocks where necessary. He started violently as
he suddenly heard the scream of an eagle somewhere near him in
the mist, and later on he was surprised actually to come upon one
tearing the body of a grouse. The great bird rose and hit him,
whether intentionally or not he was not sure, but he shrank
involuntarily and the sight of the small mangled victim stirred his
heart. “Why was the world of birds and men so essentially cruel?”
“Poor little Aline,” he thought, as he looked at the little bird.

When at last he reached the height he was met by an icy wind of


tremendous force from the weather side of the hill and it was only
with extreme difficulty that he could keep his footing. Using the wind
as his guide he decided on a place where the gradient was less and
the direction right as far as he could judge and trusted that this
would be the col between the summits.

It was anxious work and at last he began to feel that he had


descended too far. He had missed the col. He was lost. Although
better in health his nerves were still shaken. For a moment he half
broke down. “Oh, if I could only see you once again, Aline,” he cried,
“and you will never know that months afterwards the shepherds
found the remains of an unknown man upon the hills.” He peered
into the mist as though by strength of will he would force its secret.
It was vain, the mist was blankly impenetrable. Under ordinary
circumstances he was too good a hillsman to mind and would simply,
worse come to the worst, have followed down stream till he came to
the haunts of men, but it was a matter of life and death to him now
not to come down the wrong valley. Moreover, there were the
precious papers, for which he had already risked so much.

Gradually he recovered, but what was he to do? Which side had


he gone wrong? He stood and reflected for a moment. The direction
of the wind seemed all right, but it was very much less in force.
Surely then he was to the east of the col. Oh, if only the mist would
lift, but it still raced past, with its white swirling, cruel fingers. The
wind sighed sadly in the rank, red tinted grass, and away below he
heard the falling of many waters and the endless bleating of sheep.
Every now and then some gigantic menacing forms would seem to
shape themselves out of the mist;—they danced round him, they
pointed at him, they mocked him. They were trolls, they were the
spirits of death, the lost souls of the sons of men. A brooding horror
seemed to sweep over the desolate hillside, chilling him with a
nameless dread. He turned a little further into the wind and the
ground grew more wet and mossy. This must surely be somewhere
below the middle of the col, he argued, and he struck still more to
the left.

Suddenly he came upon a sight that froze his marrow. It was the
skeleton of a child,—some poor little wanderer who, like himself, had
been lost and who never had returned home. The wind whistled
through the small slender bones. They were quite clean, save for a
little hair clinging to the skull, from which Ian guessed that it was a
boy. He might have been ten or twelve years old. How had he come
there? What had brought him to his fate? The clothes had entirely
gone save one little shoe. Ian picked it up, looked at it and shivered.
Oh, the horror of it! Then the mood changed and he found himself
filled with unutterable pity. “Poor child, poor child,” he said; “another
victim of a heartless world.” He knelt down and laid his hand on the
small skull and his emotion overcame him. Then he gathered the
bones together and carried them to a small hollow under a great
rock. As he was doing this, his fingers came across something in the
grass. It was a small wallet or purse. When he had taken all the
bones he managed with some difficulty to cover them with earth and
then he built up a little cairn of stones. The small shoe he put with
the bones, but the wallet he took with him.

With very mingled feelings he struggled up the slope and at last to


his great relief he felt the icy blast of the northwest wind, with the
ground sloping upward in the right direction. He decided to make for
the very summit, the better to check his position, and at last he
reached the point and then cautiously made his way in the same
manner to what he believed was Cross Fell.

It was very slow work and the ground was very wet and heavy; he
was footsore and stiff from lack of practice and when the evening
began to close in he had made absurdly little headway.

At last he felt he could go no further and must spend the night


upon the hills. He climbed over the ridge to the leeward side and
dropped until he came to the heather line, where he found a dry
hollow between some rocks. Tearing up a quantity of heather he
made himself a bed to lie on and sat down on the soft extemporised
couch. Then he opened the little wallet or pouch that he had found
by the skeleton. It contained some knuckle bones and a piece of
cord; but with them was a wonderful bracelet of peculiar
workmanship. Ian judged it to be Keltic of a very remote date as it
somewhat resembled work that a friend had found in the Culbin
sands. An inscription and other alterations had been made at a later
date.

The design was in bold curving shapes that expressed the very
spirit of metal. Most remarkable were three large bosses of a strange
stone of marvellous hue; they were a deep sky-blue, brilliantly clear
and transparent, but with a slight yet most mysterious opalescence
in the colour. He had never heard of such a stone and there was
something almost uncanny about the way they shone in the dim
light. Whether they were original or substitutes for enamel or amber
he could not tell.

The inscription ran:—


WOE TO WHO STEALETH ME
PEACE TO WHO FINDETH ME
BUT WEAL WHERE I COME AS A GIFT OF LOVE.

It was a marvellously beautiful thing and Ian could not help


speculating how the boy had come by it. “If these charms and
amulets really had any power, he might well have stolen it,” he
thought, shuddering at what he had seen. “But that is a thing we
shall never know. However, it would be a pleasing gift for Aline, and
some day I will clasp it myself on that little white wrist.”

He pictured Aline to himself wearing the bracelet and then rolling


his cloak about him went to sleep.

For a few hours he slept well and then he woke with the cold. He
was very tired and sleepy but unable to sleep again for the pains
which shot through him. The miserable night seemed endless, he
tossed and dozed and tossed again, but at last the dawn broke. It
was still misty but he was anxious to get on. He opened his wallet
and found it was getting low; there was enough for two fair meals,
but he divided it into three portions and took one.

The wind had dropped but he had taken the precaution of


marking its direction on the ground before he slept. However, that
would not avail him long. He wondered what Aline was doing. He
was sure that somehow Providence had intended him to help her.
Suppose he had done wrongly and should meet his death and
deprive her of his aid! Why was life so continually perplexing?

When he started to move, his swollen blistered feet made every


step painful, but gradually he became more used to it and struggled
Welcome to Our Bookstore - The Ultimate Destination for Book Lovers
Are you passionate about books and eager to explore new worlds of
knowledge? At our website, we offer a vast collection of books that
cater to every interest and age group. From classic literature to
specialized publications, self-help books, and children’s stories, we
have it all! Each book is a gateway to new adventures, helping you
expand your knowledge and nourish your soul
Experience Convenient and Enjoyable Book Shopping Our website is more
than just an online bookstore—it’s a bridge connecting readers to the
timeless values of culture and wisdom. With a sleek and user-friendly
interface and a smart search system, you can find your favorite books
quickly and easily. Enjoy special promotions, fast home delivery, and
a seamless shopping experience that saves you time and enhances your
love for reading.
Let us accompany you on the journey of exploring knowledge and
personal growth!

ebookball.com

You might also like