The Swift Programming Language Swift 21 Apple Inc pdf download
The Swift Programming Language Swift 21 Apple Inc pdf download
Inc download
https://ebookbell.com/product/the-swift-programming-language-
swift-21-apple-inc-57954152
https://ebookbell.com/product/mastering-swift-2-dive-into-the-latest-
release-of-the-swift-programming-language-with-this-advanced-apple-
development-book-for-creating-exceptional-ios-and-osx-applications-
jon-hoffman-5470890
https://ebookbell.com/product/the-swift-programming-language-
swift-57-apple-inc-50090374
https://ebookbell.com/product/the-swift-programming-language-
swift-53-apple-inc-34614756
https://ebookbell.com/product/the-swift-programming-language-
swift-55-apple-inc-36444848
The Swift Programming Language Swift 57 57 Apple Inc
https://ebookbell.com/product/the-swift-programming-language-
swift-57-57-apple-inc-44480436
https://ebookbell.com/product/the-swift-programming-language-
swift-4-apple-inc-7177452
https://ebookbell.com/product/the-swift-programming-language-inc-
apple-22130798
https://ebookbell.com/product/the-swift-programming-language-apple-
inc-34614754
https://ebookbell.com/product/the-swift-programming-language-
prerelease-apple-inc-4690428
Welcome to Swift
About Swift
Swift is a new programming language for iOS, OS X, watchOS, and tvOS apps that
builds on the best of C and Objective-C, without the constraints of C compatibility.
Swift adopts safe programming patterns and adds modern features to make
programming easier, more flexible, and more fun. Swift’s clean slate, backed by the
mature and much-loved Cocoa and Cocoa Touch frameworks, is an opportunity to
reimagine how software development works.
Swift has been years in the making. Apple laid the foundation for Swift by
advancing our existing compiler, debugger, and framework infrastructure. We
simplified memory management with Automatic Reference Counting (ARC). Our
framework stack, built on the solid base of Foundation and Cocoa, has been
modernized and standardized throughout. Objective-C itself has evolved to support
blocks, collection literals, and modules, enabling framework adoption of modern
language technologies without disruption. Thanks to this groundwork, we can now
introduce a new language for the future of Apple software development.
Swift feels familiar to Objective-C developers. It adopts the readability of
Objective-C’s named parameters and the power of Objective-C’s dynamic object
model. It provides seamless access to existing Cocoa frameworks and mix-and-
match interoperability with Objective-C code. Building from this common ground,
Swift introduces many new features and unifies the procedural and object-oriented
portions of the language.
Swift is friendly to new programmers. It is the first industrial-quality systems
programming language that is as expressive and enjoyable as a scripting language.
It supports playgrounds, an innovative feature that allows programmers to
experiment with Swift code and see the results immediately, without the overhead of
building and running an app.
Swift combines the best in modern language thinking with wisdom from the wider
Apple engineering culture. The compiler is optimized for performance, and the
language is optimized for development, without compromising on either. It’s
designed to scale from “hello, world” to an entire operating system. All this makes
Swift a sound future investment for developers and for Apple.
Swift is a fantastic way to write iOS, OS X, watchOS, and tvOS apps, and will
continue to evolve with new features and capabilities. Our goals for Swift are
ambitious. We can’t wait to see what you create with it.
A Swift Tour
Tradition suggests that the first program in a new language should print the words
“Hello, world!” on the screen. In Swift, this can be done in a single line:
print("Hello, world!")
If you have written code in C or Objective-C, this syntax looks familiar to you—in
Swift, this line of code is a complete program. You don’t need to import a separate
library for functionality like input/output or string handling. Code written at global
scope is used as the entry point for the program, so you don’t need a main()
function. You also don’t need to write semicolons at the end of every statement.
This tour gives you enough information to start writing code in Swift by showing
you how to accomplish a variety of programming tasks. Don’t worry if you don’t
understand something—everything introduced in this tour is explained in detail in
the rest of this book.
N OTE
On a Mac, download the Playground and double-click the file to open it in Xcode:
https://developer.apple.com/go/?id=swift-tour
Simple Values
Use let to make a constant and var to make a variable. The value of a constant
doesn’t need to be known at compile time, but you must assign it a value exactly
once. This means you can use constants to name a value that you determine once but
use in many places.
1 var myVariable = 42
2 myVariable = 50
3 let myConstant = 42
A constant or variable must have the same type as the value you want to assign to it.
However, you don’t always have to write the type explicitly. Providing a value when
you create a constant or variable lets the compiler infer its type. In the example
above, the compiler infers that myVariable is an integer because its initial value is an
integer.
If the initial value doesn’t provide enough information (or if there is no initial
value), specify the type by writing it after the variable, separated by a colon.
1 let implicitInteger = 70
EXP ERIM EN T
Create a constant with an explicit type of Float and a value of 4.
Values are never implicitly converted to another type. If you need to convert a value
to a different type, explicitly make an instance of the desired type.
2 let width = 94
EXP ERIM EN T
Try removing the conversion to String from the last line. What error do you get?
There’s an even simpler way to include values in strings: Write the value in
parentheses, and write a backslash (\) before the parentheses. For example:
1 let apples = 3
2 let oranges = 5
EXP ERIM EN T
Use \() to include a floating-point calculation in a string and to include someone’s name in a
greeting.
Create arrays and dictionaries using brackets ([]), and access their elements by
writing the index or key in brackets. A comma is allowed after the last element.
4 var occupations = [
5 "Malcolm": "Captain",
6 "Kaylee": "Mechanic",
7 ]
If type information can be inferred, you can write an empty array as [] and an empty
dictionary as [:]—for example, when you set a new value for a variable or pass an
argument to a function.
1 shoppingList = []
2 occupations = [:]
Control Flow
Use if and switch to make conditionals, and use for-in, for, while, and repeat-
while to make loops. Parentheses around the condition or loop variable are
optional. Braces around the body are required.
2 var teamScore = 0
4 if score > 50 {
5 teamScore += 3
6 } else {
7 teamScore += 1
8 }
9 }
print(teamScore)
In an if statement, the conditional must be a Boolean expression—this means that
code such as if score { ... } is an error, not an implicit comparison to zero.
You can use if and let together to work with values that might be missing. These
values are represented as optionals. An optional value either contains a value or
contains nil to indicate that a value is missing. Write a question mark (?) after the
type of a value to mark the value as optional.
2 print(optionalString == nil)
8 }
EXP ERIM EN T
Change optionalName to nil. What greeting do you get? Add an else clause that sets a
different greeting if optionalName is nil.
If the optional value is nil, the conditional is false and the code in braces is
skipped. Otherwise, the optional value is unwrapped and assigned to the constant
after let, which makes the unwrapped value available inside the block of code.
Another way to handle optional values is to provide a default value using the ??
operator. If the optional value is missing, the default value is used instead.
1 let nickName: String? = nil
Switches support any kind of data and a wide variety of comparison operations—
they aren’t limited to integers and tests for equality.
2 switch vegetable {
3 case "celery":
9 default:
EXP ERIM EN T
Try removing the default case. What error do you get?
Notice how let can be used in a pattern to assign the value that matched that part of a
pattern to a constant.
After executing the code inside the switch case that matched, the program exits from
the switch statement. Execution doesn’t continue to the next case, so there is no need
to explicitly break out of the switch at the end of each case’s code.
You use for-in to iterate over items in a dictionary by providing a pair of names to
use for each key-value pair. Dictionaries are an unordered collection, so their keys
and values are iterated over in an arbitrary order.
1 let interestingNumbers = [
5 ]
6 var largest = 0
largest = number
print(largest)
EXP ERIM EN T
Add another variable to keep track of which kind of number was the largest, as well as what that
largest number was.
Use while to repeat a block of code until a condition changes. The condition of a
loop can be at the end instead, ensuring that the loop is run at least once.
1 var n = 2
3 n = n * 2
4 }
5 print(n)
7 var m = 2
8 repeat {
9 m = m * 2
print(m)
You can keep an index in a loop—either by using ..< to make a range of indexes or
by writing an explicit initialization, condition, and increment. These two loops do
the same thing:
1 var firstForLoop = 0
2 for i in 0..<4 {
3 firstForLoop += i
4 }
5 print(firstForLoop)
7 var secondForLoop = 0
9 secondForLoop += i
print(secondForLoop)
Use ..< to make a range that omits its upper value, and use ... to make a range that
includes both values.
Use func to declare a function. Call a function by following its name with a list of
arguments in parentheses. Use -> to separate the parameter names and types from
the function’s return type.
3 }
sum: Int) {
4 var sum = 0
8 max = score
min = score
sum += score
print(statistics.sum)
print(statistics.2)
Functions can also take a variable number of arguments, collecting them into an
array.
1 func sumOf(numbers: Int...) -> Int {
2 var sum = 0
4 sum += number
5 }
6 return sum
7 }
8 sumOf()
EXP ERIM EN T
Write a function that calculates the average of its arguments.
Functions can be nested. Nested functions have access to variables that were
declared in the outer function. You can use nested functions to organize the code in a
function that is long or complex.
1 func returnFifteen() -> Int {
2 var y = 10
3 func add() {
4 y += 5
5 }
6 add()
7 return y
8 }
9 returnFifteen()
Functions are a first-class type. This means that a function can return another
function as its value.
3 return 1 + number
4 }
5 return addOne
6 }
8 increment(7)
3 if condition(item) {
4 return true
5 }
6 }
7 return false
8 }
Functions are actually a special case of closures: blocks of code that can be called
later. The code in a closure has access to things like variables and functions that
were available in the scope where the closure was created, even if the closure is in a
different scope when it is executed—you saw an example of this already with nested
functions. You can write a closure without a name by surrounding code with braces
({}). Use in to separate the arguments and return type from the body.
1 numbers.map({
4 return result
5 })
EXP ERIM EN T
Rewrite the closure to return zero for all odd numbers.
You have several options for writing closures more concisely. When a closure’s
type is already known, such as the callback for a delegate, you can omit the type of
its parameters, its return type, or both. Single statement closures implicitly return
the value of their only statement.
2 print(mappedNumbers)
2 print(sortedNumbers)
Use class followed by the class’s name to create a class. A property declaration in a
class is written the same way as a constant or variable declaration, except that it is in
the context of a class. Likewise, method and function declarations are written the
same way.
1 class Shape {
2 var numberOfSides = 0
5 }
6 }
EXP ERIM EN T
Add a constant property with let, and add another method that takes an argument.
Create an instance of a class by putting parentheses after the class name. Use dot
syntax to access the properties and methods of the instance.
2 shape.numberOfSides = 7
This version of the Shape class is missing something important: an initializer to set
up the class when an instance is created. Use init to create one.
1 class NamedShape {
5 init(name: String) {
6 self.name = name
7 }
Notice how self is used to distinguish the name property from the name argument to
the initializer. The arguments to the initializer are passed like a function call when
you create an instance of the class. Every property needs a value assigned—either in
its declaration (as with numberOfSides) or in the initializer (as with name).
Use deinit to create a deinitializer if you need to perform some cleanup before the
object is deallocated.
Subclasses include their superclass name after their class name, separated by a
colon. There is no requirement for classes to subclass any standard root class, so
you can include or omit a superclass as needed.
Methods on a subclass that override the superclass’s implementation are marked
with override—overriding a method by accident, without override, is detected by
the compiler as an error. The compiler also detects methods with override that don’t
actually override any method in the superclass.
1 class Square: NamedShape {
5 self.sideLength = sideLength
6 super.init(name: name)
7 numberOfSides = 4
8 }
test.area()
test.simpleDescription()
EXP ERIM EN T
Make another subclass of NamedShape called Circle that takes a radius and a name as arguments
to its initializer. Implement an area() and a simpleDescription() method on the Circle
class.
In addition to simple properties that are stored, properties can have a getter and a
setter.
5 self.sideLength = sideLength
6 super.init(name: name)
7 numberOfSides = 3
8 }
get {
set {
}
override func simpleDescription() -> String {
(sideLength)."
print(triangle.perimeter)
triangle.perimeter = 9.9
print(triangle.sideLength)
In the setter for perimeter, the new value has the implicit name newValue. You can
provide an explicit name in parentheses after set.
Notice that the initializer for the EquilateralTriangle class has three different steps:
If you don’t need to compute the property but still need to provide code that is run
before and after setting a new value, use willSet and didSet. The code you provide
is run any time the value changes outside of an initializer. For example, the class
below ensures that the side length of its triangle is always the same as the side length
of its square.
1 class TriangleAndSquare {
3 willSet {
4 square.sideLength = newValue.sideLength
5 }
6 }
8 willSet {
9 triangle.sideLength = newValue.sideLength
shape")
print(triangleAndSquare.square.sideLength)
print(triangleAndSquare.triangle.sideLength)
square")
print(triangleAndSquare.triangle.sideLength)
When working with optional values, you can write ? before operations like
methods, properties, and subscripting. If the value before the ? is nil, everything
after the ? is ignored and the value of the whole expression is nil. Otherwise, the
optional value is unwrapped, and everything after the ? acts on the unwrapped value.
In both cases, the value of the whole expression is an optional value.
"optional square")
Use enum to create an enumeration. Like classes and all other named types,
enumerations can have methods associated with them.
1 enum Rank: Int {
2 case Ace = 1
3 case Two, Three, Four, Five, Six, Seven, Eight, Nine, Ten
6 switch self {
7 case .Ace:
8 return "ace"
9 case .Jack:
return "jack"
case .Queen:
return "queen"
case .King:
return "king"
default:
return String(self.rawValue)
In the example above, the raw-value type of the enumeration is Int, so you only
have to specify the first raw value. The rest of the raw values are assigned in order.
You can also use strings or floating-point numbers as the raw type of an
enumeration. Use the rawValue property to access the raw value of an enumeration
case.
Use the init?(rawValue:) initializer to make an instance of an enumeration from a
raw value.
3 }
The case values of an enumeration are actual values, not just another way of writing
their raw values. In fact, in cases where there isn’t a meaningful raw value, you
don’t have to provide one.
1 enum Suit {
4 switch self {
5 case .Spades:
6 return "spades"
7 case .Hearts:
8 return "hearts"
9 case .Diamonds:
return "diamonds"
case .Clubs:
return "clubs"
EXP ERIM EN T
Add a color() method to Suit that returns “black” for spades and clubs, and returns “red” for
hearts and diamonds.
Notice the two ways that the Hearts case of the enumeration is referred to above:
When assigning a value to the hearts constant, the enumeration case Suit.Hearts is
referred to by its full name because the constant doesn’t have an explicit type
specified. Inside the switch, the enumeration case is referred to by the abbreviated
form .Hearts because the value of self is already known to be a suit. You can use
the abbreviated form anytime the value’s type is already known.
Use struct to create a structure. Structures support many of the same behaviors as
classes, including methods and initializers. One of the most important differences
between structures and classes is that structures are always copied when they are
passed around in your code, but classes are passed by reference.
1 struct Card {
(suit.simpleDescription())"
6 }
7 }
EXP ERIM EN T
Add a method to Card that creates a full deck of cards, with one card of each combination of rank
and suit.
An instance of an enumeration case can have values associated with the instance.
Instances of the same enumeration case can have different values associated with
them. You provide the associated values when you create the instance. Associated
values and raw values are different: The raw value of an enumeration case is the
same for all of its instances, and you provide the raw value when you define the
enumeration.
For example, consider the case of requesting the sunrise and sunset time from a
server. The server either responds with the information or it responds with some
error information.
1 enum ServerResponse {
3 case Error(String)
4 }
9 switch success {
print("Failure... \(error)")
EXP ERIM EN T
Add a third case to ServerResponse and to the switch.
Notice how the sunrise and sunset times are extracted from the ServerResponse value
as part of matching the value against the switch cases.
Protocols and Extensions
1 protocol ExampleProtocol {
4 }
4 func adjust() {
6 }
7 }
8 var a = SimpleClass()
9 a.adjust()
var b = SimpleStructure()
b.adjust()
EXP ERIM EN T
Write an enumeration that conforms to this protocol.
Notice the use of the mutating keyword in the declaration of SimpleStructure to
mark a method that modifies the structure. The declaration of SimpleClass doesn’t
need any of its methods marked as mutating because methods on a class can always
modify the class.
Use extension to add functionality to an existing type, such as new methods and
computed properties. You can use an extension to add protocol conformance to a
type that is declared elsewhere, or even to a type that you imported from a library or
framework.
4 }
6 self += 42
7 }
8 }
9 print(7.simpleDescription)
EXP ERIM EN T
Write an extension for the Double type that adds an absoluteValue property.
You can use a protocol name just like any other named type—for example, to create
a collection of objects that have different types but that all conform to a single
protocol. When you work with values whose type is a protocol type, methods
outside the protocol definition are not available.
1 let protocolValue: ExampleProtocol = a
2 print(protocolValue.simpleDescription)
error
Even though the variable protocolValue has a runtime type of SimpleClass, the
compiler treats it as the given type of ExampleProtocol. This means that you can’t
accidentally access methods or properties that the class implements in addition to its
protocol conformance.
Generics
3 for _ in 0..<numberOfTimes {
4 result.append(item)
5 }
6 return result
7 }
8 repeatItem("knock", numberOfTimes:4)
You can make generic forms of functions and methods, as well as classes,
enumerations, and structures.
1 // Reimplement the Swift standard library's optional type
2 enum OptionalValue<Wrapped> {
3 case None
4 case Some(Wrapped)
5 }
7 possibleInteger = .Some(100)
Use where after the type name to specify a list of requirements—for example, to
require the type to implement a protocol, to require two types to be the same, or to
require a class to have a particular superclass.
4 if lhsItem == rhsItem {
5 return true
6 }
7 }
8 }
9 return false
Constants and variables must be declared before they are used. You declare
constants with the let keyword and variables with the var keyword. Here’s an
example of how constants and variables can be used to track the number of login
attempts a user has made:
1 let maximumNumberOfLoginAttempts = 10
2 var currentLoginAttempt = 0
Type Annotations
You can provide a type annotation when you declare a constant or variable, to be
clear about the kind of values the constant or variable can store. Write a type
annotation by placing a colon after the constant or variable name, followed by a
space, followed by the name of the type to use.
This example provides a type annotation for a variable called welcomeMessage, to
indicate that the variable can store String values:
The colon in the declaration means “…of type…,” so the code above can be read as:
“Declare a variable called welcomeMessage that is of type String.”
The phrase “of type String” means “can store any String value.” Think of it as
meaning “the type of thing” (or “the kind of thing”) that can be stored.
The welcomeMessage variable can now be set to any string value without error:
welcomeMessage = "Hello"
You can define multiple related variables of the same type on a single line, separated
by commas, with a single type annotation after the final variable name:
Constant and variable names can contain almost any character, including Unicode
characters:
1 let π = 3.14159
2 let 你好 = "你好世界"
3 let = "dogcow"
N OTE
If you need to give a constant or variable the same name as a reserved Swift keyword, surround the
keyword with back ticks (`) when using it as a name. However, avoid using keywords as names
unless you have absolutely no choice.
You can change the value of an existing variable to another value of a compatible
type. In this example, the value of friendlyWelcome is changed from "Hello!" to
"Bonjour!":
2 friendlyWelcome = "Bonjour!"
2 languageName = "Swift++"
You can print the current value of a constant or variable with the
print(_:separator:terminator:) function:
1 print(friendlyWelcome)
2 // prints "Bonjour!"
N OTE
All options you can use with string interpolation are described in String Interpolation.
Comments
// this is a comment
Multiline comments start with a forward-slash followed by an asterisk (/*) and end
with an asterisk followed by a forward-slash (*/):
Nested multiline comments enable you to comment out large blocks of code quickly
and easily, even if the code already contains multiline comments.
Semicolons
Unlike many other languages, Swift does not require you to write a semicolon (;)
after each statement in your code, although you can do so if you wish. However,
semicolons are required if you want to write multiple separate statements on a
single line:
Integers
Integers are whole numbers with no fractional component, such as 42 and -23.
Integers are either signed (positive, zero, or negative) or unsigned (positive or
zero).
Swift provides signed and unsigned integers in 8, 16, 32, and 64 bit forms. These
integers follow a naming convention similar to C, in that an 8-bit unsigned integer
is of type UInt8, and a 32-bit signed integer is of type Int32. Like all types in Swift,
these integer types have capitalized names.
Integer Bounds
You can access the minimum and maximum values of each integer type with its min
and max properties:
UInt8
type UInt8
The values of these properties are of the appropriate-sized number type (such as
UInt8 in the example above) and can therefore be used in expressions alongside
other values of the same type.
Int
In most cases, you don’t need to pick a specific size of integer to use in your code.
Swift provides an additional integer type, Int, which has the same size as the current
platform’s native word size:
Unless you need to work with a specific size of integer, always use Int for integer
values in your code. This aids code consistency and interoperability. Even on 32-bit
platforms, Int can store any value between -2,147,483,648 and 2,147,483,647, and
is large enough for many integer ranges.
UInt
Swift also provides an unsigned integer type, UInt, which has the same size as the
current platform’s native word size:
Floating-Point Numbers
Floating-point types can represent a much wider range of values than integer types,
and can store numbers that are much larger or smaller than can be stored in an Int.
Swift provides two signed floating-point number types:
N OTE
Double has a precision of at least 15 decimal digits, whereas the precision of Float can be as little
as 6 decimal digits. The appropriate floating-point type to use depends on the nature and range of
values you need to work with in your code. In situations where either type would be appropriate,
Double is preferred.
Swift is a type-safe language. A type safe language encourages you to be clear about
the types of values your code can work with. If part of your code expects a String,
you can’t pass it an Int by mistake.
Because Swift is type safe, it performs type checks when compiling your code and
flags any mismatched types as errors. This enables you to catch and fix errors as
early as possible in the development process.
Type-checking helps you avoid errors when you’re working with different types of
values. However, this doesn’t mean that you have to specify the type of every
constant and variable that you declare. If you don’t specify the type of value you
need, Swift uses type inference to work out the appropriate type. Type inference
enables a compiler to deduce the type of a particular expression automatically when
it compiles your code, simply by examining the values you provide.
Because of type inference, Swift requires far fewer type declarations than languages
such as C or Objective-C. Constants and variables are still explicitly typed, but much
of the work of specifying their type is done for you.
Type inference is particularly useful when you declare a constant or variable with
an initial value. This is often done by assigning a literal value (or literal) to the
constant or variable at the point that you declare it. (A literal value is a value that
appears directly in your source code, such as 42 and 3.14159 in the examples below.)
For example, if you assign a literal value of 42 to a new constant without saying
what type it is, Swift infers that you want the constant to be an Int, because you have
initialized it with a number that looks like an integer:
1 let meaningOfLife = 42
Likewise, if you don’t specify a type for a floating-point literal, Swift infers that you
want to create a Double:
1 let pi = 3.14159
Swift always chooses Double (rather than Float) when inferring the type of floating-
point numbers.
If you combine integer and floating-point literals in an expression, a type of Double
will be inferred from the context:
1 let anotherPi = 3 + 0.14159
The literal value of 3 has no explicit type in and of itself, and so an appropriate
output type of Double is inferred from the presence of a floating-point literal as part
of the addition.
Numeric Literals
1 let decimalInteger = 17
For hexadecimal numbers with an exponent of exp, the base number is multiplied by
2exp:
Numeric literals can contain extra formatting to make them easier to read. Both
integers and floats can be padded with extra zeros and can contain underscores to
help with readability. Neither type of formatting affects the underlying value of the
literal:
Use the Int type for all general-purpose integer constants and variables in your
code, even if they are known to be non-negative. Using the default integer type in
everyday situations means that integer constants and variables are immediately
interoperable in your code and will match the inferred type for integer literal
values.
Use other integer types only when they are specifically needed for the task at hand,
because of explicitly-sized data from an external source, or for performance,
memory usage, or other necessary optimization. Using explicitly-sized types in
these situations helps to catch any accidental value overflows and implicitly
documents the nature of the data being used.
Integer Conversion
error
Because each numeric type can store a different range of values, you must opt in to
numeric type conversion on a case-by-case basis. This opt-in approach prevents
hidden conversion errors and helps make type conversion intentions explicit in your
code.
To convert one specific number type to another, you initialize a new number of the
desired type with the existing value. In the example below, the constant twoThousand
is of type UInt16, whereas the constant one is of type UInt8. They cannot be added
together directly, because they are not of the same type. Instead, this example calls
UInt16(one) to create a new UInt16 initialized with the value of one, and uses this
value in place of the original:
Random documents with unrelated
content Scribd suggests to you:
up cooking—illness makes such a lot of extra work—and, fortunately, we
had a very good housemaid. But if you didn't shine as a patient, I certainly
didn't shine as a nurse. I'm afraid I hadn't the gentle, womanly touch of the
real ministering angel, smoothing pillows and such like. I knew nothing
about nursing, and you said I heaved hot-water bags at you."
"So you did; but you were an excellent nurse for all that. But, oh, I did
feel so guilty keeping you hanging round me. It was more than a year out of
your life, just when you would have been having such a good time."
"Oh," said Ann, "I don't grudge the year—I've had heaps of good times.
The only really bad times were when the attacks of high fever came and
you got unconscious; then you wouldn't let a nurse into the room. Jim and I
had to sit up with you for nights on end. But you were very brave, and you
never let your illness get on our nerves. You just bounded up from an attack
like an india-rubber ball. The doctors simply gasped at you. You said good-
bye to us so often that we began to take it quite casually, merely saying,
'Well, have some beef-tea just now, anyway'; and Father used to laugh and
say, 'You'll live and loup dykes yet.'"
"I'm sure I wasn't at all keen to live, Ann. When you get very far down
dying seems so simple and easy; but I did want to see Robbie again. I think
that kept me alive. When did you take me to London? In spring, wasn't it?"
"Yes, in March. You weren't getting a bit better, and some one told Mark
about the vaccine treatment, and he thought it might be worth trying. We
were told that the journey would certainly kill you, but you said, 'No such
thing,' so off we set, you and I, all on a wild March morning. You stood the
journey splendidly; but two days after you arrived you took the worst fever
turn of all. The London doctors came and told me you wouldn't live over
the night, and I really thought they were going to be right that time. I
telephoned to Priorsford, and it was Davie answered me, 'Is that you,
Nana?' I was sorry to worry the boy, but I had to tell you were very ill, and
that I thought Jim should come up by the night train. But you warstled
through again, and then Mark brought Sir Armstrong Weir to see you. We
had seen several London doctors, very glossy and well dressed, with
beautiful cars, and we wondered if this great Sir Armstrong would be even
smarter. But the great man came in a taxi, and wasn't at all well dressed—
grey and bent and very gentle."
"He looked old," Mrs. Douglas said; "but he couldn't have been so very,
for he told me his own mother was living. He was very kind to me."
"Well, it was partly his vaccine and partly your own marvellous pluck."
"Oh no. It wasn't pluck or vaccine or anything, but just that I had to live
more days on the earth."
"'Deed ay," said Marget, nodding in agreement with her mistress. "Ye
never did ony guid until ye had given up doctors a'thegither. As soon as we
got quat o' them ye began to improve."
"Now, now, Marget," said Ann, "you get carried away by your dislike of
doctors. We've been very thankful to see them many a time."
"Oh, they're a' richt for some things; but whenever it's ony thing serious
ye canna lippen to them. When there's onything wrang wi' yer inside
naebody can help ye but yer Maker."
"I could wish them a better job! Hoo onybody can like clartin' aboot in
folks' insides! Doctorin's a nesty job, and I'm glad nane o' oor laddies took
up wi't. They a' got clean, genteel jobs."
"Such as soldiering?"
"Oh, I'm no' heedin' muckle aboot sodgerin' aither," said Marget. Then,
turning to her mistress, she said, "As you say, Mem, nae doctor can kill ye
while there's life in the cup. D'ye think it was mebbe the flittin' that brocht
on yer trouble? Ye ken ye washt a' the china yersel'."
Mrs. Douglas smiled at her. "All the years you've known me, Marget,
have you ever heard of housework doing me any harm? No. It was some
sort of blood-poisoning that went away as mysteriously as it came. Though
what I was spared for I know not. If I had died, how often you would have
said of me, 'She was taken from the evil to come.'"
"Poor darling!" said Ann. "Do you think you were spared simply that
you might receive evil things? Say, rather, that you were spared to help the
rest of us through the terrible times.... Father, mercifully, had kept
wonderfully well through your illness. He had accepted his limitations and
knew that he must not attempt a hill road, or fight against a high wind, or
move quickly; and really, looking at him, it was difficult to believe that
anything ailed him."
"But it must have been very bad for him, Ann, all the scares he got with
my illness. It's dreadful for me to think that the last year of his life was
made uncomfortable and distressed by me."
"But you mustn't think that. Even in those stormy days he seemed to
carry about with him a quiet, sunny peace. What a blessing we had him
through that time; the sight of him steadied one."
"And I'm sure I couldn't have lived through that time without him," Mrs.
Douglas said; "although I sometimes got very cross with him sitting reading
with a pleased smile on his face when I felt so miserable."
"I think he really enjoyed his restricted life," said Ann. "To be in the
open air was his delight, and he was able to take two short walks every day
and spend some time pottering in the garden, going lovingly round his
special treasures, those rock plants that he was trying to persuade to grow
on the old wall by the waterside. We wanted him to drive, but he hated
driving; he liked, he said, to feel the ground under his feet. He never looked
anything but well with his fresh-coloured face."
"He got younger lookin'," Marget said. "I suppose it was no havin' a kirk
to worry aboot, the lines on his face got kind o' smoothed oot. D'ye mind
when he used to come into the room, Mem, you aye said it was like a breath
o' fresh air."
"Yes, Marget, I mind well. Neil Macdonald said when he was staying
with us once that when Father came into the room he had a look in his eyes
as if he had been on a watch-tower, 'As if—Neil said, in his soft, Highland
voice—'as if he had been looking across Jordan into Canaan's green and
pleasant land.'"
Ann smiled. "I know what he meant. D'ye remember Father's little
Baxter's Saints' Rest that he carried about with him in his pocket and read in
quiet moments? And his passion for adventure books? I think Jim got him
every 'thriller' that was published. And the book on Border Poets that he
was writing? He always wrote a bit after tea. No matter who was having tea
with us, Father calmly turned when he was finished to the bureau, pulled
forward a chair—generally rumpling up the rug, and then I cried, 'Oh,
Father!'—and sat quietly writing amid all the talk and laughter. He had
nearly finished it when he died.... That last week he seemed particularly
well. He said his feet had such a firm grip of the ground now. I didn't want
him to go out because it was stormy, and he held up one foot and said, 'Dear
me, girl, look at those splendid soles!'"
Marget put her apron up to her eyes. "Eh, lassie, ye're whiles awfu' like
yer faither."
There was a silence in the room while the three women thought their
own thoughts.
At last Ann said, "What pathetic things we mortals are! That Saturday
night when we sat round the fire my heart was singing a song of
thankfulness. You were still frail, Mother, but you were wonderfully better,
and to have you with us again sitting by the fire knitting your stocking was
comfort unspeakable. Jim had been reading aloud the Vailima Letters, and
the letters to Barrie and about Barrie sent us to The Little Minister, and I
read to you Waster Luny's inimitable remarks about ancestors, 'It's a queer
thing that you and me his nae ancestors.... They're as lost to sicht as a
flagon-lid that's fa'en ahint the dresser.' I forget how it goes, but Father
enjoyed it greatly. I think anything would have made us laugh that night, for
the mornin's post had brought us a letter from Robbie with the unexpected
news that he had been chosen for some special work and would be home
shortly—he thought in about three months' time. And as I looked at you and
Father smiling at each other in the firelight I said in my heart, like Agag,
'Surely the bitterness of death is past!' and the next day Father died."
Mrs. Douglas sat silent with her head bowed, but Marget said, "Oh,
lassie! lassie!" and wept openly.
"It isn't given to many to be 'happy on the occasion of his death,' but
Father was. His end was as gentle as his life. He slipped away suddenly on
the Sabbath afternoon, at the hour when his hands had so often been
stretched in benediction. He died in his boyhood's home. The November
sun was going down behind the solemn round-backed hills, the familiar
sound of the Tweed over its pebbles was in his ears, and though he had to
cross the dark river the waters weren't deep for him. I think, like Mr.
Standfast, he went over 'wellnigh dry shod.' And he was taken before the
storm broke. Three months later the cable came that broke our hearts.
Robbie had died after two days' illness on his way to Bombay to get the
steamer for home."
CHAPTER XXIII
They had been talking of many things, Ann and her mother, and had
fallen silent.
The wind was tearing through the Green Glen, and moaning eerily round
the house of Dreams, throwing at intervals handfuls of hail which struck
against the panes like pistol-shots.
"A wild night," Mrs. Douglas said, looking over her shoulder at the
curtained windows, and drawing her chair nearer the fire. "This is the sort
of night your father liked to sit by the fireside. He would lift his head from
his book to listen to the wind outside, look round the warm, light room and
give a contented sigh."
"I know," said Ann; "it was very difficult doing without Father. He had
always enjoyed the good things of life so frankly there seemed no pleasure
any longer in a good dinner, or a fine morning, or a blazing fire, or an
interesting book, since he wasn't there to say how fine it was. Besides his
very presence had been a sort of benediction, and it was almost as if the
roof of life had been removed—and it was much worse for you, poor
Mother. We were afraid you would go, too."
"Oh, Ann," Mrs. Douglas, clasping Hours of Silence, raised tearful eyes
to her daughter, "I'm sure I didn't want to live. I don't know why I go on
living."
Ann caught her mother's hands in her own. "You funny wee body! You
remind me of the Paisley woman who told me she had lost all her sons in
the war, and was both surprised and annoyed that she hadn't died of grief.
'An' ma neebor juist lost the one an' she de'ed, and folk said she niver liftit
her heid efter her laddie went, and here wis me losin' a' mine and gaun
aboot quite healthy! An' I'm sure I wis as vext as whit she wis. It's no want
o' grievin' for I'm never dune greetin'—I begin early i' the mornin' afore I
get ma cup o' tea.'"
"Oh, the poor body!" said Mrs. Douglas. "I know so well what she
meant. It sounds funny, but it isn't a bit.... Your father's death was sheer
desolation to me. I remember, a long time ago at Kirkcaple, going to see a
widow who had brought up a most creditable family, and, looking round her
cosy kitchen, I said something about how well she had done, and that life
must be pleasant for her with her children all up and doing well. And the
brisk, active little woman looked at me, and I was surprised to see tears in
her rather hard eyes.
"The bairns are a' richt," she said; "but it maks an awfu' difference when
ye lose yer pairtner....' And then I have so many things to regret...."
"Regret?" Ann laughed. "I don't think you have one single thing to
regret. If ever a man was happy in his home it was my father."
"Oh, how Father would have loathed that. Arguing was the breath of life
to him, and he hated to be agreed with."
Mrs. Douglas went on. "And I would never worry him to do things that
went against his judgment. When people took a tirravee and sent for their
lines he always wanted to give them to them at once, but I used to beg him
to go and reason with them and persuade them to remain. They generally
did, for they only wanted to be made a fuss of, but I see now I was quite
wrong; people so senseless deserved no consideration. And I wouldn't
worry him to go and ask popular preachers to come to us for anniversary
services and suchlike occasions! That was the thing he most hated doing."
"I don't wonder," said Ann. "To ask favours is never pleasant, and
popular preachers are apt to get a bit above themselves and condescend a
little to the older, less successful men who are living in a day of small
things. But I don't think any of us, you least of all, need reproach ourselves
with not having appreciated Father. And yet, when he went away it seemed
quite wrong to mourn for him. To have pulled long faces and gone about
plunged in grief would have been like an insult to the happy soul who had
finished his day's work and gone home. It wasn't a case of
"It seemed so unfair," Ann said slowly. "In a shop one day the woman
who was serving me asked so kindly for you, and wanted to know how you
were bearing up. Then she said suddenly: 'When thae awfu' nice folk dee
div ye no juist fair feel that ye could rebel?' Rebel! Poor helpless mortals
that we are!"
Mrs. Douglas shook her head. "If there is one lesson I have learned it is
the folly of kicking against the pricks. To be bitter and resentful multiplies
the grief a thousandfold. There is nothing for it but submission. Shall we
receive good at the hand of the Lord and not receive evil? There is an odd
text that strikes me every time I come to it: 'And David was comforted
concerning Ammon because he was dead.' I don't know what it means,
perhaps that Ammon fought with David so David was glad he was dead, but
it always has a special meaning for me. We had to come to it, Ann, you and
I, when we tramped those long walks by Tweedside rather than sit at home
and face callers and sympathy. It was Robbie himself who helped us most.
The thought of him, so brave and gay and gentle, simply made us believe
that in a short time he had fulfilled a long time, and that God had taken him
against that day when He shall make up His jewels. We could only cling to
the fact that God is Love, and that it was to Himself He had taken the boy
who seemed to us so altogether lovely."
Mrs. Douglas took off her spectacles and rubbed them with her
handkerchief, and Ann said:
"Yes, Mother, at moments we felt all that, and were comforted, but there
are so many days when it seems you can't get above the sense of loss. Those
nights when one dreamed he was with us, and wakened. There's not much
doubt about Death's sting.... But what kept me from going under altogether
was the thought of Davie. I tried never to let him see me with a dull face.
All his life the child had dreaded sadness, and it seemed hard that he should
so early become 'acquainted with grief.' After Robbie's death, when he came
into a room the first thing he did was to glance quickly at our faces to see if
we had been crying, and if we looked at him happily his face cleared. If
anybody mentioned Robbie's name he slipped quietly out of the room. Jim
was the same. I think men are like that. Women can talk and find relief, but
to speak about his grief is the last thing an ordinary man can do. That's why
I was sorrier for the fathers in the war than the mothers.... I was glad Davie
was at college and busy all day. I think he dreaded coming home that
Easter."
"But I don't think he found it bad, Ann. He had his great friend Anthony
with him, and we all tried our best to give him a good time. And at
seventeen it isn't so hard to rise above trouble."
"Oh no," said Ann; "and Davie was so willing to be happy." She laughed.
"I never knew anyone so appreciative of a joke—any sort of joke. When he
was a tiny boy if I said anything which I meant to be funny, and which met
with no response, Davie would say indignantly: 'Nana's made a joke and
nobody laughed.' He always gave a loud laugh himself—'Me hearty laugh,'
he called it."
"Oh, I'd forgotten that," cried Davie's mother; "'me hearty laugh.' We all
treated Davie as a joke, and didn't bother much whether his school reports
were good or only fairly good. He wasn't at all studious naturally, though he
was passionately fond of reading, and I'm afraid we liked to find excuses to
let him play. Only Robbie took him seriously. You remember when he was
home on leave he protested against Davie bounding everywhere and having
no fixed hours of study. 'We've got to think of the chap's future,' he said."
"Robbie and Davie adored each other," Ann said. "They were so funny
together—Davie a little bashful with the big brother. I remember hearing
Davie telling Robbie about some Fabian Society that he belonged to, and
what they discussed at it, and Robbie stood looking at him through his
eyeglass with an amused grin on his face, and said, 'Stout fellow!' That was
always what he said to Davie, 'Stout fellow!' I can hear him now.... But the
odd thing was that Davie seemed to take no interest in his own future. It
was almost as if he realised that this world held no future for him. Mark,
always careful and troubled, used to worry about a profession for him. He
wanted him to go into the Navy, but you vetoed that as too dangerous; it
mustn't be India, because we couldn't part with our baby."
Mrs. Douglas leaned forward to push in a falling log. "I was foolishly
anxious about Davie always; never quite happy if he was away from me. I
worried the boy sometimes, but he was patient with me. 'Poor wee body,' he
always said, and put his arms round me—he learned that expression from
Robbie."
"I have an old exercise book," said Ann, "in which Davie made his first
efforts at keeping accounts—David Douglas in account with self. It is very
much ornamented with funny faces and not very accurate, for sums are
frequently noted as 'lost.' It stops suddenly, and underneath is scrawled, 'The
war here intervened.' We didn't need to worry about his work in the world.
That was decided for him when—
Mrs. Douglas caught her breath with a sob. "At once he clamoured to go,
but he was so young, only eighteen, and I said he must only offer for home
defence; and he said, 'All right, wee body, that'll do to start with,' but in a
very short time he was away to train with Kitchener's first army."
"He was miserable, Mother, until he got away. Jim was refused
permission from the first, and had to settle down to his job, but for most of
us the bottom seemed to have fallen out of the world, and one could settle
to nothing. In the crashing of empires the one stable thing was that fact that
the Scotsman continued its 'Nature Notes.' That amused Davie.... He began
an album of war poetry, cutting out and pasting in verses that appeared in
the Times and Spectator and Punch and other papers. 'Carmina Belli' he
printed on the outside. He charged me to go on with it when he went away,
and I finished it with Mark's poem on himself:
'You left the line with jest and smile
And heart that would not bow to pain—
I'll lay me downe and bleed awhile,
And then I'll rise and fight again.'"
Ann got up and leaned her brow on the mantel-shelf, and looking into
the fire, said:
"D'you know, Mother, I think that first going away was the worst of all,
though he was only going to England to train. Nothing afterwards so broke
me down as seeing the fresh-faced boy in his grey tweed suit going off with
such a high heart. I don't know what you felt about it, but the sword pierced
my heart then. You remember it was the Fair at Priorsford! and the merry-
go-rounds on the Green buzzed round to a tune he had often sung, some
ridiculous words about 'Hold your hand out, you naughty boy.' As I stood in
my little swallow's-nest of a room and looked out over the Green, and saw
the glare of the naphtha lamps reflected in the water, and the swing-boats
passing backwards and forwards, through light into darkness, and from
darkness into light, and realised that Davie had been born for the Great War,
every chord seemed to strike at my heart."
"Oh, Ann," Mrs. Douglas cried, "I never let myself think. It was my only
chance to go on working as hard as ever I was able at whatever came to my
hand. I left him in God's hands. I was helpless."
The tears were running down her face as she spoke, and Ann said, "Poor
Mother, it was hardest for you. Your cry was the old, old cry: 'Joseph is not,
Simeon is not, and ye will take Benjamin away....' But our Benjamin was so
glad to go. And he never found anything to grumble at, not even at
Bramshott, where there was nothing fit to eat, and the huts leaked, and the
mud was unspeakable, and his uniform consisted of a red tunic made for a
very large man, and a pair of exceedingly bad blue breeks. When he came at
Christmas—he made me think of one of Prince Charlie's men with his
shabby uniform and yellow hair—how glad he was to have a real
wallowing hot bath, with bath salts and warm towels, and get into his own
tweeds. He was just beginning to get clean when he had to go again! In a
few weeks he got his commission, and in the autumn of 1915 he went to
France—'as gentle and as jocund as to jest went he to fight.'"
There was a silence in the pleasant room as the two women thought their
own thoughts, and the fire crackled and the winter wind beat upon the
house.
Mrs. Douglas spoke first. "It was a wonderful oasis in that desert of
anxiety when Davie was wounded and at home. Those nights when we had
lain awake thinking of him in the trenches, those days when we were afraid
for every ring at the bell, and hardly dared look when we opened the hall
door after being out, in case the orange envelope should be lying on the
table. To have all that suddenly changed. To know that he was lying safe
and warm and clean in a white bed in a private hospital in London, 'lying
there with a face like a herd,' Mark wrote, with nothing much the matter
with him but a shrapnel wound in his leg—it was almost too much relief.
And we had him at Queensferry all summer. We were greatly blessed, Ann."
"And it wasn't quite so bad letting him go the second time," Ann said.
"He had been there once and had got out alive and he knew the men he was
going to, and was glad to go back; and Mark wasn't far from him, and could
see him sometimes."
"His letters were so cheery. From his accounts you would have thought
that living in the trenches was a sort of jolly picnic. Oh, Ann, do you
remember the letter to me written in the train going up to the line, when he
said he had dreamt he was a small boy again, and 'I thought I had lost you,
wee body, and I woke up shouting "Mother," to the amusement of the other
men in the carriage?'"
"Some people," said Ann, "go through the world afraid all the time that
they are being taken advantage of. Davie never ceased to be amazed at the
kindness shown him. He was one of those happy souls whose path through
life is lined with friends, and whose kind eyes meet only affectionate
glances. His letters were full of the kindness he received—the 'decent lad' in
his platoon who heard him say his dug-out was draughty, and who made a
shutter for the window and stopped up all the cracks; the two corporals
from the Gallowgate who formed his bodyguard, and every time he fell into
a shell-hole or dodged a crump shouted anxiously, 'Are ye hurt, sirr?' You
remember he wrote: 'These last two years have been the happiest in my life,'
and other men who were with him told us he never lost his high spirits."
"That was such a terribly long, hard winter," Mrs. Douglas said. "The
snow was never off the hills for months. And then spring came, but such a
spring! Nothing but wild winds and dreary sleet. We hoped and hoped that
Davie would get leave—he was next on the list for it—but he wrote and
said his leave had gone 'very far West.' We didn't know it, but they were
getting ready for the big spring offensive. Then one day we saw that a battle
had begun at Arras, and Davie's letter that morning read like a farewell.
Things may be happening shortly, but don't worry about me. I've just been
thinking what a good life I've had all round, and what a lot of happiness I've
had. Even the sad parts are a comfort now....'"
"Mother, do you see," said Ann, "there's your text about Ammon. Out
there, waiting for the big battle, Davie didn't feel it sad any more than
Father and Robbie had gone out of the world—he was comforted
concerning them because they were dead. We were thinking of him and
praying for him every hour of the day, but he felt them nearer to him than
we were."
"To think that when that letter came he was dead! To think that I was in
Glasgow with Miss Barbara talking of him nearly all the time, for Miss
Barbara loved the boy, and nothing told us he was no longer in the world.
To think of the child—he was little more—waiting there in the darkness for
the signal to attack. He must have been so anxious about leading the
company, so afraid——"
"Anxious maybe," said Ann, "but not really afraid. Don't you remember
what his great friend Captain Shiels wrote and told us, that while they
waited for the dawn Davie spoke 'words of comfort and encouragement to
his men.' I cry when I think of that...."
"No. No, Mother, never less alone; 'compassed about with a great cloud
of witnesses.' I have a notion that all the great army of men who down
through the centuries have given their lives for our country's bright cause
were with our men in that awful fighting, steeling the courage of those boy-
soldiers.... And Father and Robbie were beside him, I am very sure, and
Father would know then that all his prayers were answered for his boy—the
bad little boy who refused to say his prayers, the timid little boy who was
afraid to go into a dark room—when he saw him stand, with Death tapping
him on the shoulder, speaking 'words of comfort and encouragement to his
men.' I think Robbie would say, 'Stout fellow.' That was the 9th. The
telegram came to us on the afternoon of the 11th. Jim and I were terribly
anxious, and I had been doing all the jobs I hated most with a sort of
lurking, ashamed feeling in my heart that if we worked our hardest and did
our very best Davie might be spared to us."
"Like poor Mrs. Clark, one of my women. She told me how she had
gone out and helped a sick neighbour, and coming home had seen some
children, whose father was fighting and whose mother was ill, playing in
the rain, and she had taken them in and given them a hot meal. As they were
leaving the postman brought her a letter saying her son was dead in
Mesopotamia. She said to me, defiantly, as if she were scoring off
Providence, 'I'm no gaun tae pray nae mair,' and I knew exactly what she
felt."
"I thought," Ann went on, "that if no wire came that day it would mean
that Davie had got through—but at tea-time it came. I went into Glasgow
next morning by the first train to tell you. Phoebe was washing the front
door steps at No. 10, and she told me you and Miss Barbara were in the
dining-room at breakfast. I stood in the doorway and looked at you. You
were laughing and telling Miss Barbara something funny that had been in
one of Davie's letters. I felt like a murderer standing there. When I went
into the room your face lit up for a moment, and then you realised. 'It is the
laddie?' you whispered, and I nodded. You neither spoke nor cried, but
stood looking before you as if you were thinking very deeply about
something, then 'I would like to go home,' you said...."
"And to think," Mrs. Douglas said, breaking a long silence, "that I am
only one of millions of mothers who will go mourning to their graves."
"I know, Mother. I know. But you wouldn't ask him back even if that
were possible. You wouldn't, if you could, take 'the purple of his blood out
of the cross on the breastplate of England.' Don't you love these words of
Ruskin? It's the proudest thing we have to think about, and, honestly—I'm
not just saying this—I believe that the men who lie out there have the best
of it. The men who came back will, most of them, have to fight a grim
struggle, for living is none too pleasant just now, and they will grow old,
and bald, and ill-tempered, and they have all to die in the end. What is
twenty more years of life but twenty more years of fearing death? But our
men whose sacrifice was accepted, and who were allowed to pour out the
sweet, red wine of youth, passed at one bound from glorious life to glorious
life. 'Eld shall not make a mock of that dear head.' They know not age or
weariness or defeat."
CHAPTER XXIV
The December day had run its short and stormy course and the sun was
going down in anger, with streaks of crimson and orange, and great purple
clouds. Only over the top of the far hills was one long line of placid pale
primrose, like some calm landlocked bay amid seas of tumbling waters.
Mrs. Douglas, crossing the room to get a paper from the table, paused at
the wide window and looked out. Desolate the landscape looked, the stretch
of moorland, and the sodden fields, and the empty highroad running like a
ribbon between hills now dark with rain.
Ann was writing at the bureau, had been writing since luncheon,
absorbed, never lifting her head, but now she blotted vigorously the last
sheet, put the pen back in the tray, shut the lid of the ink-bottle, and
announced:
Mrs. Douglas looked at the finished pile of manuscript and sighed again.
Ann got up and went over to the window. "You are sighing like a
furnace, Mother. What's the matter? Does it depress you to think that I've
finished my labours? Oh, look at the sunset! It bodes ill for the Moncrieffs
ever getting over the door, poor lambs! Look at that quiet, shining bit over
the Farawa, how far removed it looks from tempests! D'you know what that
sky reminds me of, Mother? The story of your life that I've just finished.
The clouds and the angry red colour are all you passed through, and that
quiet, serene streak is where you are now, the clear shining after rain. It may
be dull, but you must admit it is peaceful."
"Oh, we are peaceful enough just now, but think of Jim in South Africa,
and Charlotte and Mark in India—who knows what news we may have of
them any day? I just live in dread of what may happen next."
"But, Mother, you've always lived in dread. Mark used to say that the
telegraph boys drew lots among themselves as to who should bring the
telegrams to our house. You used to rush out with the unopened envelope
and implore the boy to tell you if it were bad news, and when you did open
it your frightened eyes read things that never were on the paper. If we
happened to be all at home when you were confronted with a wire you
didn't care a bit—utterly callous. It was only your husband and your
children you cared about—ah, well, you had the richest, fullest, happiest
life for more than thirty years, and that's not so small a thing to boast of."
"Only you're like Davie when we told him to go away and count his
blessings. 'I've done it,' he came back to tell us, 'and I've six things to be
thankful for and nine to be unthankful for.'"
Mrs. Douglas laughed as she went back to her chair by the fire and took
up her knitting. "No, I've nothing to be unthankful for, only I think so much
of me died with your father and Robbie and Davie that I seem to be half
with you and half with them where they are gone."
Ann nodded. "That may be so, but you are more alive than most of us
even now. I don't know anybody who takes so much interest in life, who has
such a capacity for enjoyment, who burdens herself with other people's
burdens as that same Mrs. Douglas who says she is only half-alive and
longs to depart—and here is Mysie with the tea."
Mysie lit the lamp under the kettle and arranged the tea-things. She drew
the curtains across the windows, shutting out the last gleam of the stormy
sunset, and turned on the lights, then she stood by the door and, blushing,
asked if she might go out for the evening, as she had an engagement.
"Now where"—cried Mrs. Douglas as the door closed behind the little
maid—"where in the world can Mysie have an engagement in this out-of-
the-world place on this dark, stormy night?"
Ann smiled. "She's so pretty, Mother, so soft and round and young, and
have you forgotten:
I haven't a doubt but that pretty Mysie has got a 'lawd.' And what for no? I
do hope Marget isn't too discouraging to the child."
Ann sat on the fender-stool with her cup and saucer, and a pot of jam on
the rug beside her, and a plate with a crumpet on her lap, and ate busily.
"Life is still full of pleasant things, Mums, pretty girls and crumpets, and
strawberry jam, and fender-stools, and blazing fires, and little moaning
mothers who laugh even while they cry. Your pessimism is like the bubbles
on a glass of champagne—oh, I know you have been a teetotaller all your
days, but that doesn't harm my metaphor."
"Ann, you amaze me. How you can rattle on as if you hadn't a care in the
world—you who have lost so much!"
Ann looked at her mother in silence for a minute, then she looked into
the dancing flames. "As you say, it is amazing—I who have lost so much.
And when you think of it, I haven't much to laugh at. I've got the sort of
looks that go very fast, so I'll soon be old and ugly—but what about it"?
And I've got work to do, and I've still got brothers, and I've got Charlotte
and the children, and I've more friends than I sometimes know what to do
with. It's an odd thing, but I do believe, Mother, that I'm happier now than
when I was twenty and had all the world before me. Youth isn't really a very
happy time. You want and want and you don't know what you want. As you
get older you realise that you have no right to bliss, and must make the best
of what you have got. Then you begin to enjoy things in a different way.
Out of almost everything that happens there is some pleasure to be got if
you look for it, and people are so funny and human and pitiful you can't be
dull. Middle age brings its compensations, and, anyway, whether it does or
not it is a most miserable business to be obsessed by one's own woes. The
only thing to do is to stand a bit away from oneself and say, 'You miserable
atom, what are you whining about? Do you suppose the eternal scheme of
things is going to be altered because you don't like it?'"
"But I've really no right to preach at all!" Ann said. "I always forget one
thing, the most important of all. I've always been perfectly well, so I've no
right to sit in judgment on people who struggle all their lives against ill-
health. It is no credit to me—I who hardly know what it means to have a
headache—to be equable and gay. When I think of some people we know,
fighting all the time against such uneven odds, asking only for a chance to
work and be happy in working, and knocked down time and again, yet
always undefeated, I could go and bury my head ashamed. Don't ever listen
to me, Mother, when I preach to you; squash me at once."
"Well, I'll try to—but, Ann, there is one thing that worries me.
Remember, I will not have you sacrifice your life to me."
"No fear of that," said Ann airily. "There's nothing of the martyr about
me."
"Oh, him!" said Ann, "or, to be more grammatical, oh, he! I had a letter
from him this morning—did I forget to show it you? He says he is to be at
Birkshaw for Christmas."
Ann stopped.
"Well, Ann?"
"Well, Mother?"
Ann turned serene grey eyes to her mother. "Nothing," she said, "except
a pleasant friend. That's all he wants to be, I'm sure."
Ann caught the Tatler in her arms and sank with it into the depths of an
arm-chair.
"Ye're no' gaun to pit it doon in writin' are ye? Weel, that's a' richt. To tell
the truth I hadna muckle encouragement to be onything else. I wasna juist
a'thegither negleckit, but I never had a richt offer. But lookin' roond I've
often been thankfu' I wasna trachled wi' a man. Ye see, livin' a' ma life wi'
kin o' better folk I wad ha' taken ill wi' a man sittin' in his stockin' feet and
spittin' into the fire. Genteel service spoils ye; but, of course, a'body's no sae
particlar.... Mysie, the monkey, hes gotten a lawd."
"His name's Jim Stoddart, a dacent lawd and no sae gawky as maist o'
them. He was an officer's servant in the war, and learned mainners."
"But, Marget," said Mrs. Douglas, "we're so far away from people here
—how did Mysie meet him?"
"Tuts, Mem, let a lassie alane for that. If there's a 'come hither' in the e'e
the lawd 'll turn up, though he has to tramp miles o' heather and hard road. I
never kent hoo lassies did thon. I used often to watch them and wonder, but
I could niver learn—I was aye a muckle hoose-end even as a lassie, an'
tricks wad hev ill become me."
"It's a wise woman that knows her limitations," said Ann. "I wish we
were all wise enough to avoid being arch—Marget, I've finished Mother's
Life.'"
Marget immediately dropped into a convenient chair. "Let's hear it," she
said.
"What! Now?"
"Long?" said Ann; "like the White Knight's song, but very beautiful!"
"Aw, if ye're gaun to haver." Marget turned to her mistress. "What's it
like, Mem?"
"I don't know, Marget, I've hardly seen a word of it, but it will certainly
have to be censored before you get it typed, Ann."
"Oh yes," said Ann. "You will read it and 'riddle oot the biggest lees frae
ilka page,' and then I'll send it to the typing lady Mark told me about; if she
can make out Mark's handwriting she won't be so aghast at mine. One copy
for each of ourselves and some for very great friends——"
Mrs. Douglas broke in. "If you begin with friends there will be no end to
it."
"Then, perhaps, we had better have it privately printed and get about a
hundred copies. Have we a hundred friends?"
"Liker twa hunner," Marget said gloomily. "To me it seems a queer like
thing to print a body's life when she's still leevin'."
Ann quoted, "That horn is blowen for me," said Balin, "yet I am not
dead," then, laughing at the expression on Marget's face, she said, "It's often
done, Marget, only you call it 'reminiscences.' Mrs. Asquith wrote her
reminiscences, and you can't accuse her of being dead."
"Fortunate!" said Mrs. Douglas. "I'll tell you when I've read it."
"Weel," said Marget, "I hope she made it interestin', Mem, for I'm sure
we hed a rale interestin' time baith in Kirkcaple and Glasgae—an'
Priorsford's no bad aither, though, of course, we're no ministers' folk there
an' that maks a big differ: we havna the same posseetion."
"Marget," said Ann, "I believe you think a minister and his wife are the
very highest in the land, higher even than a Provost and his lady; infinitely
higher than a mere earl."
Marget said "Earls!" and grunted, then she explained, "I yince kent an
earl. When ma faither was leevin' an' we were at Kinloch we kept yin o' the
lodges for the big hoose, and I used to see the young earl playin' cricket. He
minded me o' Joseph wi' his coat o' many colours, but, hech! he was nae
Joseph. I doot Potiphar's wife wad hae got nae rebuke frae him. I dinna hold
wi' thae loose lords mysel' onyway." She turned her back on Ann and
addressed her mistress. "It's a queer thing, Mem, that the folk we have to
dae wi' now are no' near as interestin' as the folk we kent lang syne. I sit by
the fire in the foresuppers—my eyes are no what they were, an' I get tired o'
sewin' and readin'—an' I think awa' back to the auld days in Kirkcaple.
Thae were the days! When the bairns were a' at hame. Eh, puir things, mony
a skelp I hed at them when they cam' fleein' wi' their lang legs ower ma
new-sanded kitchen! Thae simmer's afternunes when I went oot to the Den
wi' Ellie Robbie and them a' and we made a fire and hed oor tea; an' winter
nichts when we sat roond the nursery fire and telt stories. An' the neebors
drappin' in: Mistress Peat as neat as if she hed come oot o' a band-box, and
Mistress Goskirk tellin' us hoo to mak' jeely—we kent fine oorsels—an' hoo
to cut oot breeks for the laddies—we were never guid at cuttin' oot, ye'll
mind, Mem? An' Mistress Dewar sittin' on the lobby chair knittin' like mad
when I got doon the stair to open the door for her, and Mr. Dewar sayin', 'Is
it bakin' day, Marget?' An' in Glasgae there was Mistress Burnett comin' in,
aye wi' a present, an aye wi' something kind to say. Some folk ye wad think
tak' a fair delight in tellin' ye things that chaw ye, they juist canna help bein'
nesty, puir sowls; ye mind Mrs. Lawrie was like that, she couldna gang awa
wi'oot giving ye a bit sting—but Mistress Burnett cheered up the whole day
wi' her veesit. An' Miss Barbara—she aye cam' at the maist daft-like time so
that she wadna bother us for a meal, her that wad hae fed a' the earth! An'
Mistress Lang—a braw wumman thon—she likit to come in efter tea an'
hae a guid crack. An' Dr. Struthers—my! He pit us sair aboot when he cam'
to stay, but I was rale pleased, it was like haein' yin o' thae auld prophets
bidin' wi' us. An' the hoosefu's we had in the holidays when the bairns grew
up, we whiles didna ken whaur to turn.... An' thae times are a' past, an' here
we are sittin' an' a' the folk I've been speakin' aboot are deid, an' the
Moncrieffs are comin' the morn——"
"And if you don't keep the water boiling hot, you'll hear about it," Ann
warned her.
Welcome to our website – the perfect destination for book lovers and
knowledge seekers. We believe that every book holds a new world,
offering opportunities for learning, discovery, and personal growth.
That’s why we are dedicated to bringing you a diverse collection of
books, ranging from classic literature and specialized publications to
self-development guides and children's books.
ebookbell.com