100% found this document useful (9 votes)
45 views

Instant Download Pro TypeScript: Application-Scale JavaScript Development 2nd Edition Steve Fenton PDF All Chapter

JavaScript

Uploaded by

ruslikkrchov
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
100% found this document useful (9 votes)
45 views

Instant Download Pro TypeScript: Application-Scale JavaScript Development 2nd Edition Steve Fenton PDF All Chapter

JavaScript

Uploaded by

ruslikkrchov
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/ 62

Download the full version of the textbook now at textbookfull.

com

Pro TypeScript: Application-Scale JavaScript


Development 2nd Edition Steve Fenton

https://textbookfull.com/product/pro-typescript-
application-scale-javascript-development-2nd-
edition-steve-fenton/

Explore and download more textbook at https://textbookfull.com


Recommended digital products (PDF, EPUB, MOBI) that
you can download immediately if you are interested.

Pro TypeScript: application-scale javascript development


Second Edition Fenton

https://textbookfull.com/product/pro-typescript-application-scale-
javascript-development-second-edition-fenton/

textbookfull.com

Essential TypeScript 4 From Beginner to Pro 2nd Edition


Adam Freeman

https://textbookfull.com/product/essential-typescript-4-from-beginner-
to-pro-2nd-edition-adam-freeman/

textbookfull.com

Essential TypeScript: From Beginner to Pro 1st Edition


Adam Freeman

https://textbookfull.com/product/essential-typescript-from-beginner-
to-pro-1st-edition-adam-freeman/

textbookfull.com

Bontrager s Textbook of Radiographic Positioning and


Related Anatomy John Lampignano

https://textbookfull.com/product/bontrager-s-textbook-of-radiographic-
positioning-and-related-anatomy-john-lampignano/

textbookfull.com
Managing Humans Biting and Humorous Tales of a Software
Engineering Manager 3rd Edition Michael Lopp

https://textbookfull.com/product/managing-humans-biting-and-humorous-
tales-of-a-software-engineering-manager-3rd-edition-michael-lopp/

textbookfull.com

How to restore Volkswagen Beetle your step by step


illustrated guide to body trim mechanical restoration all
models 1953 to 2003 Second Revised Edition Tyler
https://textbookfull.com/product/how-to-restore-volkswagen-beetle-
your-step-by-step-illustrated-guide-to-body-trim-mechanical-
restoration-all-models-1953-to-2003-second-revised-edition-tyler/
textbookfull.com

Electrocatalysts for Low Temperature Fuel Cells


Fundamentals and Recent Trends 1st Edition Thandavarayan
Maiyalagan
https://textbookfull.com/product/electrocatalysts-for-low-temperature-
fuel-cells-fundamentals-and-recent-trends-1st-edition-thandavarayan-
maiyalagan/
textbookfull.com

Computational Autism Human Computer Interaction Series


Galitsky

https://textbookfull.com/product/computational-autism-human-computer-
interaction-series-galitsky/

textbookfull.com

Time and Methods in Environmental Interfaces Modelling


Personal Insights 1st Edition Dragutin T. Mihailovi■

https://textbookfull.com/product/time-and-methods-in-environmental-
interfaces-modelling-personal-insights-1st-edition-dragutin-t-
mihailovic/
textbookfull.com
Surveying instruments and technology 1st Edition Leonid
Nadolinets

https://textbookfull.com/product/surveying-instruments-and-
technology-1st-edition-leonid-nadolinets/

textbookfull.com
Pro TypeScript
Application-Scale JavaScript Development

Second Edition

Steve Fenton
Pro TypeScript
Application-Scale JavaScript
Development

Second Edition

Steve Fenton
Pro TypeScript: Application-Scale JavaScript Development
Steve Fenton
Basingstoke, United Kingdom
ISBN-13 (pbk): 978-1-4842-3248-4 ISBN-13 (electronic): 978-1-4842-3249-1
https://doi.org/10.1007/978-1-4842-3249-1
Library of Congress Control Number: 2017961729
Copyright © 2018 by Steve Fenton
This work is subject to copyright. All rights are reserved by the Publisher, whether the whole or part of the material is
concerned, specifically the rights of translation, reprinting, reuse of illustrations, recitation, broadcasting, reproduction
on microfilms or in any other physical way, and transmission or information storage and retrieval, electronic adaptation,
computer software, or by similar or dissimilar methodology now known or hereafter developed. Exempted from this
legal reservation are brief excerpts in connection with reviews or scholarly analysis or material supplied specifically
for the purpose of being entered and executed on a computer system, for exclusive use by the purchaser of the work.
Duplication of this publication or parts thereof is permitted only under the provisions of the Copyright Law of the
Publisher's location, in its current version, and permission for use must always be obtained from Springer. Permissions
for use may be obtained through RightsLink at the Copyright Clearance Center. Violations are liable to prosecution
under the respective Copyright Law.
Trademarked names, logos, and images may appear in this book. Rather than use a trademark symbol with every
occurrence of a trademarked name, logo, or image we use the names, logos, and images only in an editorial fashion
and to the benefit of the trademark owner, with no intention of infringement of the trademark.
The use in this publication of trade names, trademarks, service marks, and similar terms, even if they are not identified
as such, is not to be taken as an expression of opinion as to whether or not they are subject to proprietary rights.
While the advice and information in this book are believed to be true and accurate at the date of publication, neither
the authors nor the editors nor the publisher can accept any legal responsibility for any errors or omissions that may be
made. The publisher makes no warranty, express or implied, with respect to the material contained herein.
Cover image designed by Freepik
Managing Director: Welmoed Spahr
Editorial Director: Todd Green
Acquisitions Editor: Gwenan Spearing
Development Editor: Laura Berendson
Technical Reviewer: Rich O’Kelly, Martin Milsom, Dan Horrocks-Burgess, Jamie Wright
Coordinating Editor: Nancy Chen
Copy Editor: Karen Jameson
Compositor: SPi Global
Indexer: SPi Global
Artist: SPi Global
Distributed to the book trade worldwide by Springer Science+Business Media New York,
233 Spring Street, 6th Floor, New York, NY 10013. Phone 1-800-SPRINGER, fax (201) 348-4505, e-mail
orders-ny@springer-sbm.com, or visit www.springeronline.com. Apress Media, LLC is a California LLC
and the sole member (owner) is Springer Science + Business Media Finance Inc (SSBM Finance Inc).
SSBM Finance Inc is a Delaware corporation.
For information on translations, please e-mail rights@apress.com, or visit http://www.apress.com/
rights-permissions.
Apress titles may be purchased in bulk for academic, corporate, or promotional use. eBook versions and
licenses are also available for most titles. For more information, reference our Print and eBook Bulk Sales web
page at http://www.apress.com/bulk-sales.
Any source code or other supplementary material referenced by the author in this book is available to readers on
GitHub via the book's product page, located at www.apress.com/9781484232484. For more detailed information,
please visit http://www.apress.com/source-code.
Printed on acid-free paper
For Rebecca, Lily, Deborah, Victoria, and Mum
Contents

About the Author�����������������������������������������������������������������������������������������������������xv


Acknowledgments�������������������������������������������������������������������������������������������������xvii
Introduction������������������������������������������������������������������������������������������������������������xix


■Chapter 1: TypeScript Language Features������������������������������������������������������������� 1
JavaScript Is Valid TypeScript������������������������������������������������������������������������������������������� 2
Variables��������������������������������������������������������������������������������������������������������������������������� 4
Constants������������������������������������������������������������������������������������������������������������������������� 6
Types�������������������������������������������������������������������������������������������������������������������������������� 6
Type Annotations������������������������������������������������������������������������������������������������������������������������������������ 7
Primitive Types��������������������������������������������������������������������������������������������������������������������������������������� 9
Object and Dynamic Types�������������������������������������������������������������������������������������������������������������������� 10
Enumerations��������������������������������������������������������������������������������������������������������������������������������������� 10
Union Types������������������������������������������������������������������������������������������������������������������������������������������ 13
Literal Types������������������������������������������������������������������������������������������������������������������������������������������ 14
Intersection Types��������������������������������������������������������������������������������������������������������������������������������� 15
Arrays��������������������������������������������������������������������������������������������������������������������������������������������������� 15
Tuple Types������������������������������������������������������������������������������������������������������������������������������������������� 17
Dictionary Types����������������������������������������������������������������������������������������������������������������������������������� 18
Mapped Types��������������������������������������������������������������������������������������������������������������������������������������� 19
Type Assertions������������������������������������������������������������������������������������������������������������������������������������� 20
Type Guards������������������������������������������������������������������������������������������������������������������������������������������ 21
Discriminated Unions��������������������������������������������������������������������������������������������������������������������������� 23

v
■ Contents

Operators������������������������������������������������������������������������������������������������������������������������ 24
Increment and Decrement�������������������������������������������������������������������������������������������������������������������� 24
Binary Operators����������������������������������������������������������������������������������������������������������������������������������� 25
Bitwise Operators��������������������������������������������������������������������������������������������������������������������������������� 26
Logical Operators��������������������������������������������������������������������������������������������������������������������������������� 26
Type Operators�������������������������������������������������������������������������������������������������������������������������������������� 30
Destructuring���������������������������������������������������������������������������������������������������������������������������������������� 30
Spread Operator����������������������������������������������������������������������������������������������������������������������������������� 34

Functions������������������������������������������������������������������������������������������������������������������������ 35
Optional Parameters����������������������������������������������������������������������������������������������������������������������������� 36
Default Parameters������������������������������������������������������������������������������������������������������������������������������� 37
Rest Parameters����������������������������������������������������������������������������������������������������������������������������������� 38
Overloads���������������������������������������������������������������������������������������������������������������������������������������������� 38
Specialized Overload Signatures���������������������������������������������������������������������������������������������������������� 39
Arrow Functions����������������������������������������������������������������������������������������������������������������������������������� 41
Function Currying��������������������������������������������������������������������������������������������������������������������������������� 42

Interfaces����������������������������������������������������������������������������������������������������������������������� 44
Classes��������������������������������������������������������������������������������������������������������������������������� 47
Constructors����������������������������������������������������������������������������������������������������������������������������������������� 47
Access Modifiers���������������������������������������������������������������������������������������������������������������������������������� 49
Properties and Methods����������������������������������������������������������������������������������������������������������������������� 49
Class Heritage�������������������������������������������������������������������������������������������������������������������������������������� 51
Abstract Classes����������������������������������������������������������������������������������������������������������������������������������� 53
Scope���������������������������������������������������������������������������������������������������������������������������������������������������� 54
Type Information����������������������������������������������������������������������������������������������������������������������������������� 56

Generics������������������������������������������������������������������������������������������������������������������������� 58
Generic Functions��������������������������������������������������������������������������������������������������������������������������������� 58
Generic Interfaces�������������������������������������������������������������������������������������������������������������������������������� 59
Generic Classes������������������������������������������������������������������������������������������������������������������������������������ 60
Type Constraints����������������������������������������������������������������������������������������������������������������������������������� 61

vi
■ Contents

TypeScript Futures��������������������������������������������������������������������������������������������������������� 61
Summary������������������������������������������������������������������������������������������������������������������������ 62
Key Points���������������������������������������������������������������������������������������������������������������������� 62

■Chapter 2: Code Organization������������������������������������������������������������������������������ 63
Namespaces������������������������������������������������������������������������������������������������������������������� 64
Modules�������������������������������������������������������������������������������������������������������������������������� 68
Module Re-Exporting���������������������������������������������������������������������������������������������������������������������������� 70
Default Exports������������������������������������������������������������������������������������������������������������������������������������� 70
Exports Object�������������������������������������������������������������������������������������������������������������������������������������� 71
Module Loading������������������������������������������������������������������������������������������������������������������������������������ 71

Mixing Namespace and Modules����������������������������������������������������������������������������������� 73


Packaging����������������������������������������������������������������������������������������������������������������������� 74
Decorators���������������������������������������������������������������������������������������������������������������������� 76
Configurable Decorators����������������������������������������������������������������������������������������������������������������������� 78
Class Decorators����������������������������������������������������������������������������������������������������������������������������������� 79
Property Decorators������������������������������������������������������������������������������������������������������������������������������ 80

Summary������������������������������������������������������������������������������������������������������������������������ 81
Key Points���������������������������������������������������������������������������������������������������������������������� 82

■Chapter 3: The Type System�������������������������������������������������������������������������������� 83
Type Systems����������������������������������������������������������������������������������������������������������������� 83
Optional Static Types������������������������������������������������������������������������������������������������������ 84
Structural Typing������������������������������������������������������������������������������������������������������������ 86
Type Erasure������������������������������������������������������������������������������������������������������������������� 88
Type Inference���������������������������������������������������������������������������������������������������������������� 89
Best Common Type������������������������������������������������������������������������������������������������������������������������������� 90
Contextual Types����������������������������������������������������������������������������������������������������������������������������������� 91
Widened Types�������������������������������������������������������������������������������������������������������������������������������������� 91
When to Annotate��������������������������������������������������������������������������������������������������������������������������������� 91

Duplicate Identifiers������������������������������������������������������������������������������������������������������� 92
Type Checking���������������������������������������������������������������������������������������������������������������� 93
vii
■ Contents

Ambient Declarations����������������������������������������������������������������������������������������������������� 95
Declaration Files����������������������������������������������������������������������������������������������������������������������������������� 96
Definitely Typed������������������������������������������������������������������������������������������������������������������������������������ 97

Summary������������������������������������������������������������������������������������������������������������������������ 97
Key Points���������������������������������������������������������������������������������������������������������������������� 97

■Chapter 4: Object Orientation in TypeScript�������������������������������������������������������� 99
Object Orientation in TypeScript����������������������������������������������������������������������������������� 100
Open Recursion���������������������������������������������������������������������������������������������������������������������������������� 100
Encapsulation������������������������������������������������������������������������������������������������������������������������������������� 102
Delegation������������������������������������������������������������������������������������������������������������������������������������������ 104
Polymorphism������������������������������������������������������������������������������������������������������������������������������������� 106

SOLID Principles����������������������������������������������������������������������������������������������������������� 108


The Single Responsibility Principle (SRP)������������������������������������������������������������������������������������������� 109
The Open–Closed Principle (OCP)������������������������������������������������������������������������������������������������������� 110
The Liskov Substitution Principle (LSP)���������������������������������������������������������������������������������������������� 111
The Interface Segregation Principle (ISP) ������������������������������������������������������������������������������������������ 112
The Dependency Inversion Principle (DIP)������������������������������������������������������������������������������������������ 114

Design Patterns������������������������������������������������������������������������������������������������������������ 115


The Strategy Pattern��������������������������������������������������������������������������������������������������������������������������� 116
The Abstract Factory Pattern�������������������������������������������������������������������������������������������������������������� 116
Practical Example������������������������������������������������������������������������������������������������������������������������������� 117

Mixins��������������������������������������������������������������������������������������������������������������������������� 121
TypeScript Mixins������������������������������������������������������������������������������������������������������������������������������� 121
When to Use Mixins���������������������������������������������������������������������������������������������������������������������������� 123
Restrictions����������������������������������������������������������������������������������������������������������������������������������������� 123
Real Mixins����������������������������������������������������������������������������������������������������������������������������������������� 125

Summary���������������������������������������������������������������������������������������������������������������������� 126
Key Points�������������������������������������������������������������������������������������������������������������������� 127

viii
■ Contents


■Chapter 5: Understanding the Runtime������������������������������������������������������������� 129
Runtime Features��������������������������������������������������������������������������������������������������������� 129
Scope��������������������������������������������������������������������������������������������������������������������������� 131
Callbacks�������������������������������������������������������������������������������������������������������������������������������������������� 134
Passing Functions as Arguments������������������������������������������������������������������������������������������������������� 137
Promises��������������������������������������������������������������������������������������������������������������������������������������������� 138

Events��������������������������������������������������������������������������������������������������������������������������� 147
TypeScript’s Custom-Event Mechanism��������������������������������������������������������������������������������������������� 149
Event Phases�������������������������������������������������������������������������������������������������������������������������������������� 151

Extending Objects�������������������������������������������������������������������������������������������������������� 151


Extending the Prototype��������������������������������������������������������������������������������������������������������������������� 152
Sealing Objects����������������������������������������������������������������������������������������������������������������������������������� 154
Alternatives to Extending�������������������������������������������������������������������������������������������������������������������� 155

Summary���������������������������������������������������������������������������������������������������������������������� 156
Key Points�������������������������������������������������������������������������������������������������������������������� 157

■Chapter 6: Running TypeScript in a Browser����������������������������������������������������� 159
The Anatomy of a Web Browser����������������������������������������������������������������������������������� 159
Reflows and Frames Per Second�������������������������������������������������������������������������������������������������������� 160
The Interesting Components��������������������������������������������������������������������������������������������������������������� 162

The Document Object Model���������������������������������������������������������������������������������������� 164


Finding Elements�������������������������������������������������������������������������������������������������������������������������������� 165
Changing Elements����������������������������������������������������������������������������������������������������������������������������� 166
Events������������������������������������������������������������������������������������������������������������������������������������������������� 167
Frameworks and Libraries������������������������������������������������������������������������������������������������������������������ 169

Network������������������������������������������������������������������������������������������������������������������������ 170
AJAX��������������������������������������������������������������������������������������������������������������������������������������������������� 170
WebSockets���������������������������������������������������������������������������������������������������������������������������������������� 173
Real-Time Communications��������������������������������������������������������������������������������������������������������������� 173

ix
■ Contents

Storage������������������������������������������������������������������������������������������������������������������������� 174
Session Storage���������������������������������������������������������������������������������������������������������������������������������� 174
Local Storage�������������������������������������������������������������������������������������������������������������������������������������� 175
Storage Restrictions��������������������������������������������������������������������������������������������������������������������������� 176
IndexedDB������������������������������������������������������������������������������������������������������������������������������������������ 176
Storage Roundup�������������������������������������������������������������������������������������������������������������������������������� 183
Geolocation������������������������������������������������������������������������������������������������������������������ 183
Sensors������������������������������������������������������������������������������������������������������������������������ 185
Battery Status������������������������������������������������������������������������������������������������������������������������������������� 185
Proximity Sensor�������������������������������������������������������������������������������������������������������������������������������� 187
Light Sensor��������������������������������������������������������������������������������������������������������������������������������������� 188
Motion and Orientation����������������������������������������������������������������������������������������������������������������������� 188
Other Device Sensors������������������������������������������������������������������������������������������������������������������������� 189
Sensor Roundup��������������������������������������������������������������������������������������������������������������������������������� 189
Web Workers���������������������������������������������������������������������������������������������������������������� 190
Packaging Your Program���������������������������������������������������������������������������������������������� 192
Summary���������������������������������������������������������������������������������������������������������������������� 192
Key Points�������������������������������������������������������������������������������������������������������������������� 192

■Chapter 7: Running TypeScript on a Server������������������������������������������������������� 195
Install Node������������������������������������������������������������������������������������������������������������������ 195
Creating a New Project������������������������������������������������������������������������������������������������� 196
NPM������������������������������������������������������������������������������������������������������������������������������ 196
Simple Node Program�������������������������������������������������������������������������������������������������� 199
Request Information����������������������������������������������������������������������������������������������������� 200
Using Express to Write Applications����������������������������������������������������������������������������� 201
Simple Express Program�������������������������������������������������������������������������������������������������������������������� 202
Multiple Routes����������������������������������������������������������������������������������������������������������������������������������� 203
Handling Errors����������������������������������������������������������������������������������������������������������������������������������� 203
Express Book Project�������������������������������������������������������������������������������������������������������������������������� 205
Summary���������������������������������������������������������������������������������������������������������������������� 216
Key Points�������������������������������������������������������������������������������������������������������������������� 216
x
Visit https://textbookfull.com
now to explore a rich
collection of eBooks, textbook
and enjoy exciting offers!
■ Contents


■Chapter 8: Exceptions, Memory, and Performance�������������������������������������������� 217
Exceptions�������������������������������������������������������������������������������������������������������������������� 217
Throwing Exceptions�������������������������������������������������������������������������������������������������������������������������� 218
Exception Handling����������������������������������������������������������������������������������������������������������������������������� 219

Memory������������������������������������������������������������������������������������������������������������������������ 224
Releasing Resources�������������������������������������������������������������������������������������������������������������������������� 224
Garbage Collection����������������������������������������������������������������������������������������������������������������������������� 225
Performance����������������������������������������������������������������������������������������������������������������� 228
Summary���������������������������������������������������������������������������������������������������������������������� 232
Key Points�������������������������������������������������������������������������������������������������������������������� 232

■Chapter 9: Using JavaScript Libraries��������������������������������������������������������������� 233
Creating Type Definitions���������������������������������������������������������������������������������������������� 234
Creating a TypeScript Application with Knockout������������������������������������������������������������������������������� 235
Silencing the Compiler����������������������������������������������������������������������������������������������������������������������� 237
Iteratively Improving Type Definitions������������������������������������������������������������������������������������������������� 238

Converting a JavaScript Application����������������������������������������������������������������������������� 241


Summary���������������������������������������������������������������������������������������������������������������������� 243
Key Points�������������������������������������������������������������������������������������������������������������������� 243

■Chapter 10: Automated Testing������������������������������������������������������������������������� 245
Framework Choices����������������������������������������������������������������������������������������������������� 246
Testing with Jest���������������������������������������������������������������������������������������������������������� 246
Installing Jest������������������������������������������������������������������������������������������������������������������������������������� 246
The First Specification������������������������������������������������������������������������������������������������������������������������ 247
Driving the Implementation���������������������������������������������������������������������������������������������������������������� 248
Refactoring����������������������������������������������������������������������������������������������������������������������������������������� 251
Isolating Dependencies���������������������������������������������������������������������������������������������������������������������� 254

Summary���������������������������������������������������������������������������������������������������������������������� 255
Key Points�������������������������������������������������������������������������������������������������������������������� 256

xi
■ Contents


■Appendix 1: JavaScript Quick Reference���������������������������������������������������������� 257
Variables����������������������������������������������������������������������������������������������������������������������� 257
Functions���������������������������������������������������������������������������������������������������������������������� 258
Conditional Statements������������������������������������������������������������������������������������������������ 259
Loops���������������������������������������������������������������������������������������������������������������������������� 260
Strings�������������������������������������������������������������������������������������������������������������������������� 261
Promises���������������������������������������������������������������������������������������������������������������������� 262
Summary���������������������������������������������������������������������������������������������������������������������� 263

■Appendix 2: TypeScript Compiler���������������������������������������������������������������������� 265
Getting Help������������������������������������������������������������������������������������������������������������������ 265
Sample File������������������������������������������������������������������������������������������������������������������ 265
Common Flags������������������������������������������������������������������������������������������������������������� 266
Module Kind���������������������������������������������������������������������������������������������������������������������������������������� 266
ECMAScript Target Version����������������������������������������������������������������������������������������������������������������� 268
Generate Declarations������������������������������������������������������������������������������������������������������������������������ 269
Remove Comments����������������������������������������������������������������������������������������������������������������������������� 269
Combined Output�������������������������������������������������������������������������������������������������������������������������������� 269

Code Quality Flags�������������������������������������������������������������������������������������������������������� 269


Defaults���������������������������������������������������������������������������������������������������������������������������������������������� 270
Strict Switch��������������������������������������������������������������������������������������������������������������������������������������� 270
Catch Accidental Fallthroughs������������������������������������������������������������������������������������������������������������ 270
Catch Missing Return Statements������������������������������������������������������������������������������������������������������ 271
Unused Local Variables����������������������������������������������������������������������������������������������������������������������� 271
Unused Parameters���������������������������������������������������������������������������������������������������������������������������� 272

JavaScript Compilation������������������������������������������������������������������������������������������������ 272


Allow JavaScript��������������������������������������������������������������������������������������������������������������������������������� 272
Check JavaScript�������������������������������������������������������������������������������������������������������������������������������� 272

xii
■ Contents


■Appendix 3: Bitwise Flags��������������������������������������������������������������������������������� 273
Bit Flags Explained������������������������������������������������������������������������������������������������������� 274
Bitwise Operations������������������������������������������������������������������������������������������������������� 274

■Appendix 4: Coding Katas��������������������������������������������������������������������������������� 277
Performing a Kata�������������������������������������������������������������������������������������������������������� 278
Example: The Fizz Buzz Kata���������������������������������������������������������������������������������������� 279
Common Coding Kata Rules����������������������������������������������������������������������������������������� 279
Summary���������������������������������������������������������������������������������������������������������������������� 280

Index��������������������������������������������������������������������������������������������������������������������� 281

xiii
About the Author

Steve Fenton is the Principal Developer at Profound Works. He has been


sharing his passion for TypeScript since October 2012, presenting at
developer meet-ups, running training sessions, and answering questions
on Stack Overflow. He has worked on large-scale JavaScript applications
for over 14 years, and with TypeScript for over 5 years. In his spare time, he
writes unit-testing frameworks, behavior-driven development frameworks,
and web crawlers. He lives in Basingstoke, United Kingdom, with his
wife Rebecca and daughter Lily, and enjoys studying psychology and
philosophy.

xv
Acknowledgments

A book is enjoyable when you work with the right people, and those people are Gwenan Spearing at Apress
and my smart technical reviewers Rich O’Kelly, Martin Milsom, Dan Horrocks-Burgess, and Jamie Wright.
I am incredibly grateful to Nancy Chen for being so patient with my sporadic writing habits, last-minute
changes, and vague estimates.
This second edition would not have been possible without the contributions of all the smart people that
helped create the first book; Mark Jones, Mark Rendle, Basarat Ali Syed, Christine Ricketts, Boris Yankov,
Diullei Gomes, Masahiro Wakame, Jason Jarrett, Bart van der Schoor, John Reilly, Igor Oleinikov, Luke
Hoban, Jonathan Turner, and of course - Ryan Cavanaugh.
I am also grateful to all of my amazing colleagues, past and present, who inspire me to keep learning
and growing.

xvii
Introduction

Atwood’s Law: any application that can be written in JavaScript will eventually be written
in JavaScript.
—Jeff Atwood

TypeScript is a language created and maintained by Microsoft, and released under an open-source Apache
2.0 License (2004). The language is focused on making the development of JavaScript programs scale to
many thousands of lines of code. In fact, Microsoft has written both the Azure Management Portal (1.2
million lines of code) and the Visual Studio Code editor (300,000 lines of code) in TypeScript. The language
attacks the large-scale JavaScript programming problem by offering better design-time tooling, compile-
time checking, and dynamic module loading at runtime.
As you might expect from a language created by Microsoft, there is excellent support for TypeScript
within Visual Studio, but plenty of other development tools have also added support for the language,
including VS Code, WebStorm, Eclipse, Sublime Text, Vi, Atom, IntelliJ, and Emacs among others. The
widespread support from these tools as well as the permissive open-source license makes TypeScript a
viable option outside of the traditional Microsoft ecosystem.
The TypeScript language is a typed superset of JavaScript, which is compiled to plain JavaScript in
the flavor of your choosing. This makes programs written in TypeScript highly portable as they can run
on almost any machine — in web browsers, on web servers, and even in native applications on operating
systems that expose a JavaScript API, such as WinJS.
The language features found in TypeScript can be divided into three categories based on their
relationship to JavaScript (see Figure 1). The first two sets are related to versions of the ECMA-262
ECMAScript Language Specification, which is the official specification for JavaScript. The ECMAScript 5
specification forms the basis of TypeScript and supplies the largest number of features in the language.
Subsequent versions of the ECMAScript specification are rolled into TypeScript releases, often as early
previews that feature down-level compilation to older versions of the specication. The third and final set of
language features includes items that are not planned to become part of the ECMAScript standard, such as
generics and type annotations. All the additional features of TypeScript can be output to a number of widely
supported versions of JavaScript.
TypeScript has several native frameworks, including Angular, Ionic, RxJs 5, and Dojo 2. Additionally,
because TypeScript is such a close relative of JavaScript, you can consume the myriad of existing libraries
and frameworks written in JavaScript; Aurelia, Backbone, Bootstrap, Durandal, jQuery, Knockout,
Modernizr, PhoneGap, Prototype, Raphael, React, Underscore, Vue, and many more are all usable in
TypeScript programs. Correspondingly, once your TypeScript program has been compiled it can be
consumed from any JavaScript program too.
TypeScript's similarity to JavaScript is beneficial if you already have experience with JavaScript or other
C-like languages. The similarity also aids the debugging process as the generated JavaScript correlates
closely to the original TypeScript code. Source maps can also be generated to aid debugging, with browser
developer tools displaying your TypeScript code during in-browser debugging.

xix
■ Introduction

Figure 1. TypeScript language feature sources

If you still need to be convinced about using TypeScript or need help convincing others, I summarize
the benefits of the language as well as the problems it can solve in the following sections. I also include an
introduction to the components of TypeScript and some of the alternatives. If you would rather get started
with the language straight away, you can skip straight to Chapter 1.

Who This Book Is For


This book is for programmers and architects working on large-scale JavaScript programs, either running in
a browser, on a server, or on an operating system that exposes a JavaScript API. Previous experience with
JavaScript or another C-like language is useful when reading this book, as well as a working knowledge of
object orientation and design patterns, although I'll cover some aspects of this in detail later.

Structure
This book is organized into ten chapters and four appendices.
Chapter 1: TypeScript Language Features: describes the language features in
detail, from simple type annotations to important structural elements, with
stand-alone examples of how to use each one.
Chapter 2: Code Organization: clarifies how code can be organized, loaded, and
packaged with a view to growing your program to millions of lines of code.
Chapter 3: The Type System: explains the details of working within TypeScript's
structural type system and describes the details on type erasure, type inference,
and ambient declarations.

xx
■ Introduction

Chapter 4: Object Orientation in TypeScript: introduces the important elements


of object orientation and contains examples of design patterns and SOLID
principles in TypeScript. This chapter also introduces the concept of mixins with
practical examples.
Chapter 5: Understanding the Runtime: describes the impact of scope, callbacks,
events, and extensions on your program.
Chapter 6: Running TypeScript in a Browser: a thorough walkthrough including
working with the Document Object Model, AJAX, session and local storage,
IndexedDB, geolocation, hardware sensors, and web workers as well as
information on packaging your program for the Web.
Chapter 7: Running TypeScript on a Server: an explanation of running programs
on a JavaScript server with examples for Node and a basic end-to-end example
application written in Express and Mongoose.
Chapter 8: Exceptions, Memory, and Performance: describes exceptions and
exception handling with information on memory management and garbage
collection. It includes a simple performance testing utility to exercise and
measure your program.
Chapter 9: Using JavaScript Libraries: explains how to consume any of the
millions of JavaScript libraries from within your TypeScript program, including
information on how to create your own type definitions and how to migrate your
JavaScript program to TypeScript.
Chapter 10: Automated Testing: a walkthrough of automated testing in your
TypeScript program with examples written using the Jest framework.
Appendix 1: JavaScript Quick Reference: an introduction to the essential
JavaScript features for anyone who needs to brush up on their JavaScript before
diving into TypeScript.
Appendix 2: TypeScript Compiler: explains how to use the compiler on the
command line and describes many of the flags you can pass to customize your
build.
Appendix 3: Bitwise Flags: dives into the details of bitwise flags including
the low-level details of how they work as well as examples using TypeScript
enumerations.
Appendix 4: Coding Katas: introduces the concept of coding katas and provides
an example for you to try, along with techniques you can use to make katas more
effective.

The TypeScript Components


TypeScript is made up of three distinct but complementary parts, which are shown in Figure 2.

xxi
■ Introduction

Figure 2. The TypeScript components

The language consists of the new syntax, keywords, and type annotations. As a programmer, the
language will be the component you will become most familiar with. Understanding how to supply type
information is an important foundation for the other components because the compiler and language
service are most effective when they understand the complex structures you use within your program.
The compiler performs the type erasure and code transformations that convert your TypeScript code
into JavaScript. It will emit warnings and errors if it detects problems and can perform additional tasks such
as combining the output into a single file, generating source maps, and more.
The language service provides type information that can be used by development tools to supply
autocompletion, type hinting, refactoring options, and other creative features based on the type information
that has been gathered from your program.

Compile or Transpile?
The term transpiling has been around since the last century, but there is some confusion about its meaning.
In particular, there has been some confusion between the terms compilation and transpilation. Compilation
describes the process of taking source code written in one language and converting it into another language.
Transpilation is a specific kind of compilation and describes the process of taking source code written in one
language and transforming it into another language with a similar level of abstraction. So, you might compile
a high-level language into an assembly language, but you would transpile TypeScript to JavaScript as they
are similarly abstracted.
Other common examples of transpilation include C++ to C, CoffeeScript to JavaScript, Dart to
JavaScript, and PHP to C++.

Which Problems Does TypeScript Solve?


Since its first beta release in 1995, JavaScript (or LiveScript as it was known at the time it was released) has
spread like wildfire. Nearly every computer in the world has a JavaScript interpreter installed. Although it
is perceived as a browser-based scripting language, JavaScript has been running on web servers since its
inception, supported on Netscape Enterprise Server, IIS (since 1996), and on Node since 2011. JavaScript can
even be used to write native applications on operating systems such as Windows.

xxii
■ Introduction

Despite its popularity, it hasn't received much respect from developers — possibly because it contains
many snares and traps that can entangle a large program much like the tar pit pulling the mammoth to
its death, as described by Fred Brooks (1975). If you are a professional programmer working with large
applications written in JavaScript, you will almost certainly have rubbed up against problems once your
program chalked up a few thousand lines. You may have experienced naming conflicts, substandard
programming tools, complex modularization, unfamiliar prototypal inheritance that makes it hard to reuse
common design patterns easily, and difficulty keeping a readable and maintainable code base. TypeScript
solves problems such as these.
Because JavaScript has a C-like syntax, it looks familiar to most programmers. This is one of JavaScript's
key strengths, but it is also the cause of many surprises, especially in the following areas:
• Prototypal inheritance
• Equality and type juggling
• Management of modules
• Scope
• Lack of types
Typescript solves or eases these problems in several ways. Each of these topics is discussed in this
introduction.

Prototypal Inheritance
Prototype-based programming is a style of object-oriented programming that is mainly found in interpreted
dynamic languages. It was first used in a language called Self, created by David Ungar and Randall Smith in
1986, but it has been used in a selection of languages since then. Of these prototypal languages, JavaScript
is by far the most widely known, although this has done little to bring prototypal inheritance into the
mainstream. Despite its validity, prototype-based programming is somewhat esoteric; class-based object
orientation is far more commonplace and will be familiar to most programmers.
TypeScript solves this problem by adding classes, namespaces, modules, and interfaces. This allows
programmers to transfer their existing knowledge of objects and code structure from other languages,
including implementing interfaces, inheritance, and code organization. Classes and modules are an early
preview of JavaScript proposals and because TypeScript can compile to earlier versions of JavaScript, it
allows you to use these features independent of support for the newer ECMAScript specifications. All these
features are described in detail in Chapter 1.

Equality and Type Juggling


JavaScript has always supported dynamically typed variables, and as a result it expends effort at runtime
working out types and coercing them into other types on the fly to make statements work that in a statically
typed language would cause an error.
The most common type coercions involve strings, numbers, and Boolean target types. Whenever
you attempt to concatenate a value with a string, the value will be converted to a string, if you perform a
mathematical operation an attempt will be made to turn the value into a number, and if you use any value
in a logical operation there are special rules that determine whether the result will be true or false. When an
automatic type conversion occurs, it is commonly referred to as type juggling.
In some cases, type juggling can be a useful feature, in particular in creating shorthand logical
expressions. In other cases, type juggling hides an accidental use of different types and causes unintended
behavior as discussed in Chapter 1. A common JavaScript example is shown in Listing 1.

xxiii
Visit https://textbookfull.com
now to explore a rich
collection of eBooks, textbook
and enjoy exciting offers!
■ Introduction

Listing 1. Type juggling


const num = 1;
const str = '0';

// result is '10' not 1


const strTen = num + str;

// result is 20
const result = strTen * 2;

TypeScript gracefully solves this problem by introducing type checking, which can provide warnings
at design and compile time to pick up potential unintended juggling. Even in cases where it allows implicit
type coercion, the result will be assigned the correct type. This prevents dangerous assumptions from going
undetected. This feature is covered in detail in Chapter 3.
The introduction of types in TypeScript does not preclude the use of dynamic types. You can choose
when to use types, and when to go without them. TypeScript does not force you to do anything, it is just
there to help.

Management of Modules
If you have worked with JavaScript, it is likely that you will have come across a dependency problem. Some
of the common problems include the following:
• Forgetting to add a script tag to a web page
• Adding scripts to a web page in the wrong order
• Finding out you have added scripts that aren't used
There is also a series of issues you may have come across if you are using tools to combine your scripts
into a single file to reduce network requests or if you minify your scripts to lower bandwidth usage.
• Combining scripts into a single script in the wrong order
• Finding out that your chosen minification tool doesn't understand single-line
comments
• Trying to debug combined and minified scripts
You may have already solved some of these issues using module loading, as the pattern is gaining
traction in the JavaScript community. However, TypeScript makes module loaders the default way of
working and allows your modules to be compiled to suit the most prevalent module loading styles without
requiring changes to your code. The details of module loading in web browsers are covered in Chapter 6 and
on the server in Chapter 7.

Scope
In most modern C-like languages, the curly braces create a new context for scope. A variable declared inside a
set of curly braces cannot be seen outside of that block. JavaScript has bucked this trend traditionally by being
functionally scoped, which means blocks defined by curly braces have no effect on scope. Instead, variables are
scoped to the function they are declared in, or the global scope if they are not declared within a function. There
can be further complications caused by the accidental omission of the var keyword within a function, thus
promoting the variable into the global scope. More complications are caused by variable hoisting, resulting in
all variables within a function behaving as if they were declared at the top of the function.
xxiv
■ Introduction

The introduction of the const and let variable declarations have gone some way to solving this
problem, and if you are starting from a clean sheet you can avoid the older var variable declaration
altogether.
Despite some tricky surprises with scope, JavaScript does provide a powerful mechanism that wraps
the current lexical scope around a function declaration to keep values to hand when the function is later
executed. These closures are one of the most powerful features in JavaScript.
TypeScript eases scope problems by warning you about implicit global variables, provided you avoid
adding variables to the global scope. This safety net is demonstrated in Listing 2.

Listing 2. Accidental global scope error


function process() {
    // Error! Cannot find name 'accidentalGlobal;
    accidentalGlobal = 5;
}

Lack of Types
The problem with JavaScript isn't that it has no types, because each variable does have a type; it is just that
the type can be changed by each assignment. A variable may start off as a string, but an assignment can
change it to a number, an object, or even a function. The real problem here is that the development tools
cannot be improved beyond a reasonable guess about the type of a variable. If the development tools don’t
know the types, the autocompletion and type hinting is often too general to be useful.
By formalizing type information, TypeScript allows development tools to supply specific contextual
help that otherwise would not be possible.

Which Problems Are Not Solved?

TypeScript is not a crutch any more than JSLint is a crutch. It doesn’t hide JavaScript (as
CoffeeScript tends to do).
—Ward Bell

TypeScript remains largely faithful to JavaScript. The TypeScript specification adds many language features,
but it doesn't attempt to change the ultimate style and behavior of the JavaScript language. It is just as
important for TypeScript programmers to embrace the idiosyncrasies of the runtime as it is for JavaScript
programmers. The aim of the TypeScript language is to make large-scale JavaScript programs manageable
and maintainable. No attempt has been made to twist JavaScript development into the style of C#, Java,
Ruby, Python, or any other language (although it has taken inspiration from many languages).

Prerequisites
To benefit from the features of TypeScript, you'll need access to an integrated development environment that
supports the syntax and compiler. The examples in this book were written using Visual Studio 2017, but you
can use VS Code, WebStorm/PHPStorm, Eclipse, Sublime Text, Vi, Emacs, or any other development tools
that support the language; you can even try many of the simpler examples on the TypeScript Playground
provided by Microsoft. I often use the TypeScript Playground when answering questions on the language.

xxv
■ Introduction

From the Visual Studio 2013 Spring Update (Update 2), TypeScript is a first-class language in Visual
Studio. Prior to this, an additional extension needed to be installed. Although the examples in this book are
shown in Visual Studio, you can use any of the development tools that were listed above. In particular, Visual
Studio Code is a free cross-platform editor with native TypeScript support - so you can write your TypeScript
code on any machine you have on hand, regardless of the operating system.
It is also worth downloading and installing Node (which is required to follow many of the examples) as
it will allow you to access the Node Package Manager and the thousands of modules and utilities available
through it. For example, you can use task runners such as Grunt and Gulp to watch your TypeScript files and
compile them automatically each time you change them if your development tools don't do this for you.
Node is free and can be downloaded for multiple platforms from the official Node website.
https://nodejs.org/
To avoid being greatly sidetracked, I have avoided using any task runners to perform additional
operations outside of Visual Studio, but once you have mastered TypeScript you will almost certainly want
to add a task runner, such as Gulp or Grunt, to your development workflow. I have referenced some web
dependencies from the node_modules folder in the examples in this book; but on a real-world project I
would use a task runner to lift and shift the website dependencies into a different folder that I would be
happy to deploy to a web server. The node_modules folder often contains a great deal of files that I would not
deploy to a web server.

TypeScript Alternatives
TypeScript is not the only alternative to writing to plain JavaScript.
The strongest TypeScript alternative is Babel, a compiler that exposes the latest ECMAScript features
with plugins for down-level compilation and polyfills to make your program work in current browsers. The
aim of the Babel project is to make the latest features available much sooner than they otherwise would be,
but Babel doesn't introduce compile-time type checking. Babel also features in many TypeScript workflows,
where Babel is executed after the TypeScript compiler, rather than using TypeScript to perform the down-
level compilation. You can read about Babel on the official website:
https://babeljs.io/
For a number of years, CoffeeScript was a popular alternative with a terse syntax that compiles to
sensible JavaScript code. CoffeeScript doesn't offer many of the additional features that TypeScript offers,
such as static type checking. It is also a very different language to JavaScript, which means you need to
translate snippets of code you find online into CoffeeScript to use them. In 2017, however, CoffeeScript
reached the top three "most dreaded languages" in the Stack Overflow developer survey (next to VBA, and
Visual Basic 6). In the same survey, TypeScript landed in the top three most loved languages. You can find
out more about CoffeeScript on the official website:
http://coffeescript.org/
Another alternative is Google's Dart language. Dart has much in common with TypeScript. It is class-
based, object oriented, and offers optional types that can be checked by a static checker. Dart was originally
conceived as a replacement for JavaScript, and was only intended to be compiled to JavaScript to provide
wide support in the short term while native support for Dart was added to browsers.
It seems unlikely at this stage that Dart will get the kind of browser support that JavaScript has won,
so the compile-to-JavaScript mechanism will likely remain core to Dart's future in the web browser. The
decision by Google to adopt TypeScript for the Angular project may be indicative of their commitment to
Dart, although it is still described as a long-term project. You can read about Dart on the official website for
the language:
https://www.dartlang.org/

xxvi
■ Introduction

There are also converters that will compile from most languages to JavaScript, including C#, Ruby, Java,
and Haskell. These may appeal to programmers who are uncomfortable stepping outside of their primary
programming language.
It is also worth bearing in mind that for small applications and web page widgets, you can defer the
decision and write the code in plain JavaScript. With TypeScript in particular, there is no penalty for starting
in JavaScript as you can simply paste your JavaScript code into a TypeScript file later on to make the switch.
Equally, there is little penalty for writing small programs in TypeScript, especially if you already have a
workflow in place to generate combined or minified files each time you save your application.

Summary
TypeScript is an application-scale programming language that provides early access to proposed new
JavaScript features and powerful additional features like static type checking. You can write TypeScript
programs to run in web browsers or on servers and you can reuse code between browser and server
applications.
TypeScript solves many problems in JavaScript, but it respects the patterns and implementation of the
underlying JavaScript language, for example, the ability to have dynamic types.
You can use many integrated development environments with TypeScript, with several providing first-
class support including type checking and autocompletion that will improve your productivity and help
eliminate mistakes at design time.

Key Points
• TypeScript is a language, a compiler, and a language service.
• You can paste existing JavaScript into your TypeScript program.
• Compiling from TypeScript to JavaScript is known specifically as transpiling.
• TypeScript is not the only alternative way of writing JavaScript, but it has gained
incredible traction in its first five years.

xxvii
CHAPTER 1

TypeScript Language Features

What if we could strengthen JavaScript with the things that are missing for large scale
application development, like static typing, classes [and] modules... that’s what TypeScript
is about.
—Anders Hejlsberg

TypeScript is a superset of JavaScript. That means that the TypeScript language includes the entire JavaScript
language plus a collection of useful additional features. This contrasts with the various subsets of JavaScript
and the various linting tools that seek to reduce the available features to create a smaller language with
fewer surprises. This chapter will introduce you to the extra language features, starting with simple type
annotations and progressing to more advanced features and structural elements of TypeScript. This chapter
doesn’t cover every feature included in the ECMAScript language specification, so if you need a refresher on
JavaScript, take a look at Appendix 1.
One important thing to remember is that all the standard control structures found in JavaScript are
immediately available within a TypeScript program. This includes the following:
• Control flows
• Data types
• Operators
• Subroutines
The basic building blocks of your program will come from JavaScript, including if statements, switch
statements, loops, arithmetic, logical tests, and functions. This is one of the key strengths of TypeScript — it
is based on a language (and a family of languages) that is already familiar to a vast and varied collection
of programmers. JavaScript is thoroughly documented not only in the ECMA-262 specification, but also in
books, on developer network portals, forums, and question-and-answer websites. When features are added
to JavaScript, they will also appear in TypeScript.
The TypeScript compiler is typically updated with new JavaScript features early in their specification.
Most of the features are available before browsers support them. In many cases, you can use the features in
your TypeScript program as the compiler will convert them into code that targets the older versions of the
ECMAScript standard.
Each of the language features discussed in this chapter has short, self-contained code examples that put
the feature in context. For the purposes of introducing and explaining features, the examples are short and
to the point; this allows the chapter to be read end to end. However, this also means you can refer back to the
chapter as a reference later on. Once you have read this chapter, you should know everything you will need
to understand the more complex examples described throughout the rest of the book.

© Steve Fenton 2018 1


S. Fenton, Pro TypeScript, https://doi.org/10.1007/978-1-4842-3249-1_1
Random documents with unrelated
content Scribd suggests to you:
Je n’aurais pu expliquer comment il se fit que tout à coup je crus
sentir battre l’almanach dans ma poitrine.
Je le portais toujours sur moi, l’ouvrant quelquefois et, un doigt
sur les lettres, m’efforçant d’aller jusqu’au bout des lignes. Il
semblait me dire : Fais-le ! Fais-le ! Mais le Père nous appela ; les
autres hommes déjà dormaient.
— Demain, petite Iule ! Demain…
Elle se coucha sur la botte de paille : la porte fut refermée ; et
par-dessus le ronflement de la chambrée, sa voix doucement monta.
— Bonsoir, Petit Vieux… Demain, demain…
A l’aube la maison se vida et moi, à pas prudents, écoutant au
loin les voix dans le camp, j’allai vers le coffre. Il était fermé, la Mère
en avait enlevé la clef ; et la boucle entre mes doigts, je regardais à
présent le coffre avec un grand serrement de cœur. Iule, venue sur
mes talons, me dit bravement :
— Puisque aussi bien cela est, mets-la sur le lit. Nous n’avons
plus rien à cacher à présent. Elle la trouvera là en rentrant et elle
comprendra pourquoi nous sommes partis.
Je jetai la boucle sur le lit. Aussitôt nos pieds coururent ; la forêt
s’ouvrit : nous ne cessâmes de courir que lorsque le souffle nous
manqua.
Nous roulâmes au lit tiède de la terre et Iule cachait quelque
chose derrière elle. Nous fûmes là tout un temps comme évanouis à
la vie, avec le halètement de nos poitrines. Aucune rumeur ne
s’éveillait du camp ; le silence, la grande paix fraîche des feuillages
nous enveloppait. J’étais heureux, je n’avais pas de rancune contre
Iule. Elle avait fait le mal : je ne m’étais pas séparé d’elle dans les
conséquences de la mauvaise action : j’avais pris fraternellement ma
part de la faute. Si elle avait dû être menée en prison, j’aurais voulu
y être mené avec elle. C’étaient là des pensées bien subtiles pour un
jeune garçon. Et pourtant cela fut profondément en moi, dans
l’inexprimé de ma vie, comme un éveil de mon intime beauté encore
obscure.
O ma chère Iule, j’avais porté ta faute comme une peine lourde
et maintenant, ayant accepté d’être séparé des autres hommes à
cause d’elle, je sentais au-dessus de moi une chose très douce,
confusément montée du fond de ma vie, et qui se mêlait à la bonté
de la nature. J’ai pris alors tes mains dans les miennes ; je t’ai
regardée dans les yeux et je ne pouvais rien te dire. Jamais je ne
m’étais senti plus près de toi qu’à travers la faute partagée qui si
intimement confondait nos deux destinées. Toi non plus tu ne me
parlais pas, mais une clarté passa dans tes yeux, ta poitrine fut
secouée, et à présent peut-être tu te rendais compte que je t’avais
donné ma vie.
Les mouches vibrèrent vermeilles ; l’ondée d’or du midi filtra sous
les feuillages ; et l’ancienne faim des pauvres recommença. Iule
disparut un peu de temps derrière les arbres et ensuite je la vis
revenir, chargée d’un vieux sac. Je compris que c’était cela qu’elle
avait tenu caché derrière elle.
Maintenant, sans rien dire, d’une activité nerveuse de fourmi, elle
ouvrait le sac et en retirait du pain, des pruneaux, des noix, des
quartiers de pommes séchées, une bouteille, une assiette ébréchée.
A chaque objet qu’elle étalait devant moi, elle me regardait en riant
avec son petit ouah joyeux. Elle avait emporté aussi les souliers et
les vêtements qu’elle et moi nous portions là-bas le dimanche. Ah !
ceux-là, nous les avions mérités par notre travail de l’autre été ; ils
avaient été le salaire de la peine prise en commun. Mon Dieu ! c’était
une chose vraiment amusante qu’elle eût pensé à tout cela ! Nous
avions une assiette comme si nous devions manger encore
l’appétissante garbure que préparait la vieille femme.
Moi aussi je poussais des cris de plaisir. Cependant je ne pouvais
comprendre comment elle s’était procuré les pruneaux et les
quartiers de pommes : depuis la fin de l’hiver la réserve en était
épuisée. Toute sa merveilleuse dissimulation se révéla : elle me dit
qu’en prévision de notre retour à la forêt, elle les avait épargnés sur
ses repas, les cachant à mesure dans le vieux sac.
Elle s’éleva ainsi très haut au-dessus des autres filles, de celles
qui à la ville couraient pieds nus dans le ruisseau, de celles aussi qui,
avec de petites mines sages, allaient écouter la messe au village.
Elle fut devant mes yeux comme une Iule que je ne connaissais pas
encore. O Iule ! moi là-bas j’avais oublié l’heureuse vie sous les
arbres, content d’être bien nourri ; mais toi, tu avais gardé tes
énergies sauvages ; tu étais toujours la petite bête libre qui aspirait
au giron velu de la forêt.
Avec ma tête plus haute et mon couteau dans ma poche, il me
vint une honte de me sentir inférieur à cette petite fille qui
résolument avait arrangé dans sa tête le plan de notre évasion. Elle
prit huit pruneaux, n’en garda que deux pour elle ; et puis elle cassa
le pain et m’en donna la plus forte part. Elle faisait là ce qu’eût fait
une sœur aînée. Nous étions riches et libres ; nous ne songions pas
que les pommes et les pruneaux prendraient fin un jour. Nous avions
la vie devant nous.
Une fraîcheur monta : c’était l’heure où l’or des derniers rayons
là-bas enveloppait le camp ; nos ombres longues la veille encore
avaient couru sur le désert d’argile, dans la hâte du labeur final. Je
n’éprouvai plus que du mépris pour ces hommes qui avaient été ma
famille. La folie sauvage du bois me grisait. Si l’un d’eux était venu
pour nous reprendre, j’aurais tiré mon couteau. Après tout, nous
étions les maîtres de nos peaux. Le bien volé avait été restitué :
nous ne devions plus rien à personne.
— Petit Vieux ! fit-elle comme la première fois qu’elle vint avec
moi sous les arbres, je n’en peux plus. Mets-toi là, je coucherai ma
tête sur ton épaule.
Il y avait si longtemps que nous n’avions plus dormi ainsi. Iule,
avec sa vie contre ma vie, redevint la petite enfant confiante qui
avait laissé derrière elle la ville pour me suivre. Nous ne fûmes plus
qu’une même destinée dans la molle nuit claire du bois, comme si
jamais aucun homme encore ne nous avait dit : « Toi tu es un
garçon et toi une fille. » Je tenais sa tête lourde dans mon bras.
Nous nous éveillâmes avec du ciel bleu dans les yeux, et comme
la veille elle tira le pain du sac, elle en fit deux parts ; et la plus
grande fut pour moi. Et puis, la main dans la main, nous partîmes à
la découverte de la hutte. Mais les branches s’étaient emmêlées sur
nos anciens sentiers ; les foulées de nos pas avaient disparu,
perdues sous les hautes pousses vertes. Quand midi tomba, Iule
comme au matin me donna six pruneaux et elle en prit deux pour
elle. Nous ne finissions pas d’écouter le bourdonnement des
mouches autour de nous. Parfois elle en attrapait une au vol et
doucement elle lui arrachait les ailes. Encore une fois les arbres
recommencèrent de palpiter dans le soir ; j’eus sa vie fraîche dans
ma poitrine.
— Est-ce que jamais nous ne retrouverons la petite maison
verte ? disait-elle.
Et elle s’endormit. Mais le lendemain, ayant marché devant nous,
un cri nous vint en même temps. La hutte !
Les brins de frêne que j’avais entremêlés aux branches de chêne
maintenant remuaient d’une vie de petites feuilles autour du bois
mort. Petite maison primitive, tu avais continué de vivre là comme
une part de nous, nous laissant le mal doux de quelque chose qui
était comme nos fibres arrachées, demeurées accrochées à une
autre vie perdue. Elle avait été faite d’une de nos pensées et elle
avait grandi toute seule ; elle s’était, au mystère du bois profond,
fleurie de jeune printemps. Quelle surprise inouïe ! Nous faisions le
tour de l’humble abri, Iule poussant ses petits cris de bête, moi muet
et grave, comme le Petit Vieux dont je portais le nom.
J’étais fier et étonné de l’avoir bâti. Oui, j’étais là, devant la
hutte, comme une créature humaine qui, après une longue absence,
revoit sa maison. Il ne faut qu’un peu de bonne volonté à l’homme
pour s’assurer une demeure et ensuite la nature travaille à la lui
conserver. Des mousses duvetaient l’abri, les feuilles s’ombrageaient
d’une vie mobile ; le toit seulement, sous le poids des neiges, avait
fléchi.
Mon cœur doucement levait, remué par des choses profondes
que je n’aurais pu dire. Peut-être c’était la silencieuse action de
grâces pour la beauté de la vie et toute l’éternité de la vie qu’il y a
dans une branche qui à chaque printemps reverdit. On ne sait pas ce
qui se passe au fond d’une âme qui n’a rien appris et qui vit de ses
propres puissances. Et Iule non plus n’aurait pu dire pour quelle
cause tout à coup, après m’avoir regardé avec sa main dans la
mienne, elle la retira et se mit à sangloter, se cachant de moi pour
pleurer entre ses doigts.
Un chêne non loin avait une large fissure : il devint notre grenier
d’abondance. En sage ménagère, elle y mit nos réserves de pommes
et de pruneaux ; et il nous restait un peu de pain. Elle me dit
tranquillement :
— C’est encore une fois le temps des nids. Quand nous aurons
mangé tout le pain, tu monteras aux arbres et tu prendras les œufs.
Elle parlait là comme une enfant qui a confiance dans la vie.
Je repassai mon couteau sur une pierre et, ayant gagné le cœur
du bois, j’en revins avec de grosses branches. Je les assemblai et les
liai au moyen de flexibles rameaux. Elles recouvrirent la hutte d’une
voûte légère et solide. Tandis que j’achevais ce travail, Iule vint à
moi et, appuyant sa main sur mon bras, me dit doucement :
— Entends-tu là-bas chanter l’oiseau ?
Sa voix avait un autre son que chez les hommes. Je ne savais pas
de quel oiseau elle me parlait. Mais, étant sorti de la hutte, à mon
tour je prêtai l’oreille et alors très loin j’entendis le coucou. Il chanta
trois fois et de nouveau ensuite, après un peu de temps, il
recommença à chanter. Il sembla nous souhaiter la bienvenue
comme au premier jour. Celui-là, parmi les autres oiseaux, était la
petite âme bienveillante et solitaire de la forêt. Iule et moi,
l’écoutant chanter, nous ne parlions plus ; c’était comme si en nous
quelque chose avait remué qui nous était encore inconnu. Et puis il
se tut et alors nous nous mîmes à crier coucou ! avec folie.
Mon Dieu ! Cette nuit-là, sous l’abri vert ! Cette nuit où pour la
première fois, avec la chaleur de sa vie innocente contre la mienne,
il me vint l’angoisse de la savoir autrement faite que moi ! Un feu
inconnu me consuma. Je brûlais et mes membres étaient glacés ; je
me sentais affreusement triste comme pour une chose survenue qui
allait nous changer l’un devers l’autre. Ma main timidement essaya le
contour de sa poitrine. Mes doigts avaient des caresses qui auraient
voulu lui faire tendrement mal. J’étais comme quelqu’un qui est
entré dans un jardin plein de fruits d’or et qui, avec ces beaux fruits
dans la main, est dévoré d’une soif qu’il ne peut apaiser. J’aurais fui
de peur si subitement elle ne s’était éveillée et ne m’avait regardé
dans la nuit. Non, je n’avais pas encore éprouvé une peine aussi
âcre. L’aube commença de filtrer à travers les branchages du toit et
alors seulement je trouvai le sommeil. Quand j’ouvris les yeux, Iule
était penchée sur moi et me lissait les cheveux.
— Tu as crié cette nuit, me dit-elle. Je dormais encore et tes cris
m’ont réveillée. Je croyais que tu avais de la peine : tu ne m’as pas
répondu. Alors doucement j’ai pris ta tête contre moi.
— Voilà, oui, j’ai rêvé, Iule.
— Oh ! fit-elle, moi aussi j’ai fait un rêve. J’étais près de toi et tu
me mordais avec ta bouche. C’était très bon. Tu avais des yeux
comme je ne t’en ai jamais vus. Tes mains ne me lâchaient pas : je
pleurais et j’avais du bonheur.
En sanglotant, je me mis à crier Iule ! Iule ! et ensuite je ne
trouvai plus rien à lui dire. Toute ma peine était revenue et
cependant j’étais heureux qu’elle eût souffert à cause de moi. C’était
une chose profonde et obscure au fond de ma vie comme si, dans la
même minute, nous avions délicieusement saigné d’une pareille
blessure fraternelle. Et tendrement Iule, avec des paroles
chuchoteuses, me consolait.
— Qu’est-ce que tu as, Petit Vieux ? Je ne t’ai rien fait pourtant.
Mais si tu es triste à cause de cette autre chose, tu aurais bien tort,
je t’assure. C’était doux comme quand Mama me faisait boire un
petit coup de trop. Elle buvait toujours une chose sucrée dont j’ai
oublié le nom. Les jours où il était venu des hommes, elle en buvait
une bouteille entière ; et cependant il y avait toujours trois ou quatre
verres pour moi. Alors tout tournait et j’étais contente. Crois-moi, je
voudrais recommencer tout de suite à dormir pour sentir encore
cela.
Mais voilà ! j’avais mis les mains sur sa chair comme un voleur. Il
me resta un grand trouble. J’allai dans le bois, j’éprouvais le besoin
d’être un peu de temps seul avec moi-même. Je marchai donc
devant moi en sifflant. Je lui avais dit : « Je monterai aux arbres s’il y
a des nids. » Mais à présent je ne pensais plus aux nids. Je me
laissai tomber, mon cœur battait entre mes mains et je ne savais pas
de quel mal je souffrais ; je savais seulement que Iule était une
femme comme cette Mama qui rentrait dans son misérable galetas
avec des hommes. Je n’avais jamais songé que je la détesterais un
jour à cause de cela. O Iule ! tu n’étais plus la petite sœur sauvage
qui courait avec un lambeau de jupe sur les cuisses et dont le sein
n’avait pas encore levé. C’était un étrange mélange de peur et
d’aversion que tu m’inspirais. Et j’étais là criant et jurant, me roulant
sur la mousse avec une chaleur d’entrailles. Si tu étais venue dans
ce moment, je t’aurais prise par les cheveux, je t’aurais traînée à
terre. Tes pleurs m’auraient fait plaisir.
Et puis tout à coup je cessai de la haïr ; je n’aspirai plus qu’à me
retrouver auprès d’elle. Mes fibres se détendirent ; la sèche fureur
s’amollit. D’un élan je courus, je fendis les rameaux verts et de loin,
avec la bonne fraternité revenue, je l’appelais.
— Iule ! Iule !
La hutte était vide. Mon appel se perdit dans les hautes branches
et je n’avais plus de colère. J’étais triste, avec une grande peine
lâche, comme si une moitié de ma vie n’était plus là. L’absence se
prolongea. Je redoutai une ruse, la mobilité de son cœur furtif et
clandestin. Je crois bien que si elle n’était plus revenue, je me serais
cassé la tête contre un tronc d’arbre. Je restai longtemps l’oreille
tendue, écoutant les rumeurs du bois. Le vent s’était levé, une onde
large et sonore qui froissait les cimes et faisait le bruit continu d’un
fleuve : il y avait un fleuve qui traversait la ville. Elle fut soudain près
de moi dans cette houle verte, sans que je l’eusse entendue venir, et
les yeux bas, elle riait. Moi non plus, je n’osais la regarder
franchement.
— As-tu trouvé des nids ? dit-elle.
— Il n’y avait pas de nids où j’ai passé.
Elle battit joyeusement des mains.
— Oh ! Petit Vieux, ne dis pas cela. Le bois est plein de nids. Mais
voilà, tu t’es couché sous un arbre.
— Eh bien, oui. Il faisait chaud, répondis-je. Toi aussi, Iule, tu as
de la mousse dans les cheveux.
Elle regardait par-dessus son épaule vers les arbres, très loin.
— Si tu crois que moi aussi j’ai dormi, fit-elle, ce n’est pas vrai.
Ah ! Petit Vieux !
Elle soupira : elle aurait voulu me dire quelque chose et elle se
tut. Peut-être elle ne savait pas elle-même ce qu’elle voulait me dire.
Et maintenant elle tordait doucement ses mains l’une dans l’autre,
d’un geste las d’ennui.
— Je t’assure, dit-elle, je ne sais pas ce que tu as contre moi. Tu
n’es plus le même garçon qu’autrefois.
Mon cœur monta ; cependant je ne trouvais rien à lui dire. Elle
prit ses cheveux dans ses mains, les déploya et elle riait au travers,
disant par moquerie :
— Toi, tu cries la nuit ; et le jour, tu tiens tes dents serrées.
Encore une fois je l’aurais battue, je n’aurais pu dire pourquoi.
Ce soir-là, elle ne me donna que trois pruneaux ; et nous
entamâmes la réserve des pommes. Nous avions mangé au matin le
dernier morceau de pain. Aucun de nous n’avait d’inquiétudes pour
l’avenir. Quelque chose était survenu qui nous tourmentait plus que
la faim. L’ombre s’étendit, la nuit remuée des feuilles. Les arbres
balançaient comme les navires dans le port. Elle me prit la main et
me dit :
— Viens dans la maison. Le vent me fait peur. Je ne l’entendrai
plus quand tu m’auras pris la tête dans tes bras.
Elle avait coupé des fougères fraîches ; leur épaisseur mollement
recouvrait le sol ; et maintenant, blottie dans ma poitrine, elle riait.
— Oh ! comme ce vent est bon ! Toute la terre tremble et je n’ai
plus peur.
Les genoux au menton, tenant les mains en croix entre ses petits
seins, presque aussitôt elle s’endormit de son grand sommeil
d’enfant. Mais moi, dans la secousse terrible des rafales, je restai
longtemps à veiller. Des chocs brusques battaient le toit léger. Une
grosse branche craqua, fracassa de petits arbres près de nous. Toute
la forêt ronflait comme une meule. Avec la palpitation chaude de
cette petite vie de Iule dans mon épaule, j’éprouvais une grande
douceur. Le bruit du vent, l’odeur assoupissante des fougères à la fin
m’endormirent. Et puis au matin la pluie tomba. Nous nous
réveillâmes au tintinement de l’eau ruisselant des hauts feuillages.
Le bois était jonché de débris.
Des jours passèrent : le temps cessa d’exister. Je montais aux
arbres ; je dérobais des nids. Iule aimait voir l’agonie des petites
bêtes sous ses doigts ; il y avait dans sa nature un fond de cruauté
tranquille et moi non plus je n’avais pas encore appris à respecter la
vie.
C’était la saison d’amour : il volait de petites plumes grises dans
l’air et les mères elles-mêmes avec leurs cris nous signalaient la
place des couvées. Elle apprit à grimper aux branches ; quelquefois
elle m’apportait des œufs frais au goût sauvage. Nous mettions rôtir
les petits à des feux de bois que j’allumais en battant le silex. L’eau
de la source près de la mare ensuite nous désaltérait. Il nous vint de
petites industries : je taillai au couteau des disques ; ils nous
servirent d’assiettes. A la pointe de la lame, j’avais gravé des formes
de bêtes sur le houx noueux que je brandissais comme un sceptre.
J’avais aussi creusé une racine de buis : elle prit le dessin d’une
pipe. J’y fumais des feuilles sèches de châtaignier. Iule de son côté
tressait des nattes qui recouvrirent le toit et arrêtaient la pluie. Avec
des ronces pelées elle façonna des corbeilles pour ses cueillettes.
Il nous arrivait de marcher pendant des jours entiers, poussant
devant nous à l’aventure et cassant des branches aux taillis pour
retrouver notre chemin. Quand le soir tombait, Iule étendait une
couche de fougères et puis au matin nous nous remettions en
marche : il nous semblait découvrir le monde. Des essences
nouvelles nous furent révélées ; des arbres se pommelaient de fruits
inconnus au jus vert délicieux. Nous laissions fondre lentement sur la
langue le suc rose des premières fraises. A chaque trouvaille, elle
avait son cri. Ouah ! Ouah ! Nous étions les jeunes rois de la silve ; il
nous paraissait que jamais nous n’aurions fini d’en faire le tour. Ainsi
nous allions, portant sagement nos souliers sur le dos pour en
ménager les semelles. Au retour, la petite maison verte vivant au
soleil sa vie frémissante de claires feuilles nous causait une joie. Oui,
c’était un grand bonheur pour deux rebuts d’humanité comme nous,
n’avoir point de maîtres et vivre librement au cœur de la nature.
Un jour, rentrant d’avoir fait ma chasse aux nids, je cherchai en
vain Iule. Le midi lourd brûlait. Je pensai qu’elle avait pris le chemin
frais de la mare. Et, comme à mon tour je m’approchais, je l’aperçus
se baignant derrière les feuillages. Autrefois, avec de l’eau jusqu’au-
dessus des genoux, nous étions entrés dans cette grande flaque
verte : je n’avais point encore ressenti la peur de son corps. Et à
présent elle était là dans sa nudité, comme une petite Eve. Sa chair
claire avait la beauté d’une fleur de vie dans le paysage innocent.
Elle puisait l’eau au creux de ses mains et la laissait ruisseler entre
les pointes de sa gorge ; ou bien elle plongeait sous les lentilles qui
duvetaient la mare, demeurait tout un temps perdue au frisson froid
du bain.
Dans l’ardent silence, le feuillage s’agita : elle leva la tête, poussa
un cri et moi déjà j’avais fui. Avec le mystère de sa vie dans les
yeux, je m’enfonçai sous bois. Si elle m’avait appelé, je ne serais pas
revenu : j’étais malade d’une peine très douce et farouche, comme
si moi-même devant elle j’avais été tout à coup nu. J’aurais voulu
vivre longtemps seul au plus profond de l’ombre, regardant bouger
toujours la petite tache lumineuse qu’elle faisait dans l’eau. Je ne
l’aimais ni ne la détestais ; mais maintenant je savais qu’une chose
en moi m’était encore inconnue, une chose terrible et délicieuse qui
demandait à vivre du reste de ma vie. L’être nubile et originel
tressaillit de se désirer avant de désirer la substance
complémentaire. Je me roulai sur le sol, je mordis la terre ; à la
douleur de la blessure, je me sentis devenir un homme. Et comme
j’étais là, me déchirant avec mes mains, tout à coup le vieil
almanach, la leçon du bon maître roula. Je le portais toujours sur
moi, comme une petite relique, comme un talisman ; il battait près
de mon cœur ; je n’avais passé aucun jour sans épeler ses fables
naïves. O monsieur Jean ! monsieur Jean !
Il y avait une histoire surtout, un vieil homme vivant dans un
désert, parmi les pierres et les bêtes malfaisantes. Il était venu en
ces lieux redoutés à l’âge trouble du sang. Il avait tué, il avait volé, il
avait fait le mal de toutes les manières. La bonne conscience tardive
enfin avait paru et alors le désert s’était changé en un jardin
d’abondance et de joie. Les pierres, arrosées de ses larmes
repentantes, avaient fleuri : les tigres et les lions furent d’innocentes
ouailles ; et parce que lui-même était revenu à la bonté, toutes
choses autour de lui devinrent bonnes à son image. Je l’avais lu cent
fois, cet aimable conte, et il me semblait toujours nouveau, avec un
sens parabolique et universel. Un petit pauvre contemplatif entend la
chanson des oiseaux et il saisit les rapports secrets des choses : il
est plus près de la nature et de lui-même. Le doux maître m’avait
dit :
— Ne cesse pas de réfléchir à cette histoire du méchant homme
au désert. Penses-y surtout quand tu seras sur le point de manquer
à ta conscience. Tu verras qu’elle s’applique à tous les hommes et il
ne faut que de la bonne volonté pour changer les cailloux en
froment et les pires animaux en douces brebis. Un petit livre comme
celui-là contient tout le savoir humain : mais le meilleur savoir est
encore celui qui nous vient de regarder au fond de nous.
Oui, un simple cordonnier de hameau, avec ses lunettes sur le
nez, ainsi me dit la vraie parole. Et à présent, l’écoutant dans ma
vie, je savais que moi aussi j’étais un homme vivant au désert parmi
les bêtes sauvages.
Cette nuit et les nuits qui suivirent, je pris sa tête dans mes bras,
comme elle aimait s’endormir ; et ensuite doucement, quand le
sommeil était venu, je la couchais sur les fougères et j’allais dormir
dans le bois. Il y avait là pour moi un âcre plaisir comme si, en
faisant cela, j’étais un homme qui déjà tient au creux de sa main ses
puissances de volonté. Si le vieux au désert ne les avait pas eues, il
n’eût pas changé les tigres en brebis. Mais la dixième nuit, le
tonnerre gronda, l’horreur fut sur la forêt et Iule me dit :
— Vois un peu, si maintenant j’étais tuée qu’est-ce que tu
deviendrais ?
Elle aurait pu dire tout aussi bien le contraire et alors elle n’aurait
songé qu’à sa propre vie ; mais avec son cœur tendre, elle prit la
mort pour elle et me vit à jamais malheureux. Ce fut une si douce
chose de l’entendre ainsi me parler. Oui, pensai-je, cela vaut mieux
comme elle dit. Qu’est-ce que je deviendrais tout seul dans la forêt ?
Mais aussitôt je criai :
— Ne dis pas cela, petite Iule. Vois, je me mets au-dessus de toi,
je te cache avec mon corps. Je t’assure, c’est moi qui mourrai le
premier.
Elle s’endormit et moi je veillai tendrement sur cette vie qu’elle
m’avait abandonnée en pensée. Elle était comme une petite enfant
craintive entre mes mains et j’avais oublié qu’elle avait été nue
devant mes yeux. Au matin, tous les oiseaux chantèrent.
Maintenant, quand le vent s’élevait, nous montions aux arbres, je
grimpais aux plus hautes ramures. Nous aimions nous balancer au
roulis des cimes : il nous en restait la sensation d’une vie d’écureuils
et d’oiseaux mêlée aux forces et à l’espace. La tourmente sous nous
tournoyait en remous verts. Accrochés étroitement au craquement
des branches, nous plongions dans le vide, de la hauteur d’un ciel,
et puis de nouveau nous volions, nous étions emportés aux
courants. Une horreur délicieuse nous pinçait les nerfs. Elle poussait
ses ouah sauvages et moi je riais, dans une folie d’héroïsme. Le vent
nous secouait, nous jetait l’un vers l’autre. Quelquefois je guettais le
passage de la rafale, je lâchais prise tout à coup, je me lançais les
mains en avant dans l’énorme vague furieuse : elle me portait
jusqu’à Iule. Et cette musique de la tempête, comme là-bas le
ronflement des eaux sous les grands ponts de fer, nous charmait,
tous deux soudain immobiles, arcboutés aux nervures du tronc, un
peu épouvantés tout de même.
Il nous vint l’idée de passer là nos nuits. Un antique hêtre, d’une
sève tourmentée, se bifurquait à mi-hauteur, comme fendu d’un
coup de hache. Un chêneau tout près nous aidait à nous hisser
jusqu’au fourchon. Je la tirais par les poignets et d’une petite
secousse des reins à son tour elle s’enlevait. La vaste nuit onduleuse
de la forêt faisait sur nous sa rumeur : nous nous endormions dans
des clartés d’étoiles, bercés de souffles légers, comme sur un
radeau. Quelle chose profonde montée des races, nous donna le
goût de cette vie ailée où à la fois nous goûtions la joie de l’aventure
et la sécurité dans le péril ? La substance primaire à notre insu
s’agitait dans notre sang revenu à la sauvagerie de l’homme des
bois.
Nos provisions depuis longtemps s’étaient épuisées : nous étions
forcés constamment de varier nos plans. Il n’y eut plus d’œufs dans
les nids : les oisillons avaient pris leur vol. Pour apaiser notre faim,
quelquefois, après des guets infinis au bord d’une clairière, j’abattais
un lapin, d’une pierre sûrement lancée. Nous devions marcher
pendant des heures avant de gagner la région des fraises et des
myrtilles. Cependant nous étions bien plus heureux que chez les
hommes. Ils nous avaient été secourables et bons ; ils m’avaient
appris la vertu du pain honnêtement gagné ; nous avions connu sous
leur toit une trêve à la dure existence. Et voilà, la folle sève de
nature avait été plus forte.
Une fois je reparlais à Iule de notre ancienne vie au camp : elle
se mit à ronger ses ongles et ensuite aigrement elle regretta la
boucle d’or. Elle jurait comme une païenne, comme à la ville cette
Mama quand les hommes l’avaient mal payée. Petit Vieux ! pensai-je,
il vaut mieux désormais garder tes idées pour toi seul. Il n’est pas
bon de tout dire aux filles. Cette fois-là donc, comme toutes les fois
où il valait mieux pour moi être seul, j’allai fumer ma pipe à une
petite distance de la hutte comme un vieil homme ; j’ouvris le vieil
almanach et il me sembla que le bonhomme Jean était là, penché
sur mon épaule et faisant glisser son gros doigt noir de poils le long
des lignes. C’était très doux, un peu émoussé déjà par le temps.
J’aurais voulu un soir aller frapper à sa porte.
Notre vie était plutôt une vie de petites bêtes sauvages. Nous
passions des heures sans parler. Il m’était poussé des cheveux si
longs qu’ils me tombaient en crinière dans le dos. Elle torsait les
siens et les piquait d’une épine pour les maintenir à sa nuque. Elle
aimait s’attacher des pendeloques de petites fraises aux oreilles. Elle
se parait aussi de feuillages : ils l’enveloppaient comme une tunique.
Moi, sous mes hardes fil à fil effrangées, j’avais la maigreur d’un
loup. Nous aurions fait peur aux petits riches si nous avions été
ramenés à la ville. Mais j’avais un couteau et il n’y avait personne
pour nous dire que le bois après tout était à quelqu’un.
D’anciens petits mendigots comme nous ont une autre notion de
la vie que les enfants qui ont été à l’école. Il nous semblait que nous
aurions toujours pu vivre comme cela. Ton père peut-être, Iule, et le
mien avaient fait comme nous, ou bien ils étaient morts dans un
pays lointain, marchant devant eux, farouches et libres. Ou bien ils
avaient fini sur un échafaud. Qui encore aurait pu nous dire de quoi
toi et moi étions sortis ? Le vent là-dessus était muet : les petites
essences de la forêt poussent à la lumière et ne savent pas non plus
de quel arbre elles sont tombées. Notre confiance dans la vie était
courageuse et ingénue. Personne ne nous l’avait apprise que la force
même de la vie en nous. Je sens bien que s’il fallait recommencer le
monde, c’est avec de la graine de misère comme nous qu’on le
recommencerait.
Il y avait dans le livre une figure du Zodiaque qui étrangement
représentait un homme à cheval, appuyant une flèche à la courbe de
son arc. Jamais nous n’avions vu un pareil homme : il nous eût
épouvantés s’il avait apparu entre les arbres, rué comme une bête
aux pieds cornés. De son bras musclé, il tendait l’arc, cabré en
arrière : il faisait ainsi une chose qu’à la ville j’avais vu faire à ceux
qui, moyennant un petit denier, pouvaient s’acheter un arc aux
boutiques. La forme de l’arme aussitôt s’appropria à la pensée de
nos chasses. Je choisis un rameau flexible et dur, et en ayant pelé
l’écorce, je fixai aux deux bouts une corde tressée avec les fils de
chanvre que j’avais pris au tissu du sac. Ensuite je taillai des flèches ;
et maintenant j’étais comme cet archer terrible, avec le destin dans
mes mains. Iule poussa sa clameur : tout le bois retentit de ses ouah
forcenés. Elle voulut porter les traits, je tenais l’arc dans mes
poings ; et nous descendîmes au cœur de la forêt.
Iule dans l’ombre avait des yeux effrayants : elle marchait près
de moi à la pointe des orteils avec un rire bas. Nos oreilles étaient
subtiles et recueillaient les moindres rumeurs. Tout à coup elle fit un
signe : un écureuil, accroupi sur une branche, croquait des pommes
de pin. Je bandai l’arc ; la minute fut anxieuse ; et enfin la flèche
partait, culbutait le gentil animal qui un instant essayait de se
raccrocher aux rameaux et puis s’abattait, la pointe droit au gésier.
Iule eut son cri sauvage. La petite agonie à nos pieds se crispait
dans un battement de la belle queue rouge. Elle le crut mort, mais
comme elle avançait la main, d’un spasme dernier l’écureuil lui
mordit le doigt. Et ensuite la vie s’en alla. Moi qui par ma volonté
avais tué cette bête, je ne prenais pas attention à la colère de Iule :
je demeurais penché sur cette petite chose qui fut la vie et avait
joué dans les arbres. Mais elle dansait à l’entour, cherchant à lui
écraser la tête avec ses talons.
Je lui dis :
— Pourquoi fais-tu du mal à cette bête puisqu’elle est morte ?
Les dents à peine étaient entrées dans sa chair et cependant elle
criait comme si elle aussi allait mourir. Je retirai la flèche et ce jour-là
avec l’arc je tuai encore deux oiseaux. Nous fûmes assurés ainsi de
ne jamais manquer de nourriture. Iule cessa de se lamenter ; elle
portait fièrement le trophée comme la femme d’un chef de tribu
guerrière après un combat.
— Si seulement, dit-elle, tu avais une casquette avec un cordon
d’argent comme les hommes du tram à la ville, il n’y aurait personne
de plus beau que toi.
Elle me parlait comme à un héros ; mon sang courait
joyeusement.
Je pris goût au carnage ; je devins le petit tueur des bois.
Quelquefois aussi, en jetant le couteau, je pouvais abattre un rat ou
un lapin. Je m’étais fait longtemps la main en m’exerçant sur les
arbres. A la fin je trouvai la bonne manière : je tenais le manche
dans ma paume et d’un coup de bras je lançais le couteau : la lame
entrait profondément. Nous mettions ensuite sécher les peaux sur
les branches. C’était une idée qui nous était venue en pensant à
l’hiver. Et un jour elle me dit :
— Vois cependant, si tu pouvais tuer une des grandes bêtes qui
descendent boire à la mare, je t’en ferais un bel habit de peau
comme on en voit là-bas chez les marchands.
Mais celles-là étaient pour moi comme les hôtes sacrés de la
forêt. Chaque fois que de loin je les voyais s’élancer par petits bonds
gracieux, j’éprouvais la sensation religieuse d’une vie associée au
mystère des solitudes. Après tant de temps, je ne puis encore
exprimer cela. Ils vivaient en troupeau avec des femelles aux yeux
de vie profonde, avec d’aimables faons joueurs. Et Iule avec son rire
dangereux, à voix basse toujours me reparlait de leur fourrure.
Je m’étais taillé une nouvelle pipe dans un nœud de merisier. Je
l’emportais avec moi dans mes chasses. Je fumais là dedans des
feuilles séchées, j’en savourais le goût d’amadou. A la ville, de
puants déchets de tabac faisaient les délices des petits miséreux.
C’était pour moi une joie de tirer de grosses bouffées, assis au pied
d’un arbre comme un vrai chasseur. J’usais le temps du guet à
dessiner, à la pointe du couteau, des figures sur mon arc. Cela aussi,
les premiers hommes l’avaient fait comme moi. Un hérisson, aux
heures fraîches, doucement passait, comme un léger esprit de la
terre. Il y avait beaucoup de pies et de geais. Les petites corneilles
étaient tendres à manger. Je tuai une fois un coq des bois : jamais
nous n’avions fait pareil festin et elle garda les plumes qu’elle porta
sur sa tête.
Iule quelquefois allait seule dans le bois. Je la suivis, je la vis se
mirer dans la mare. Appuyée sur les poings, elle avançait son buste
par-dessus l’eau et avec ses lèvres tâchait de baiser son image. Elle
m’entendit rire, bondit vers moi et elle avait des yeux de fièvre.
— Sens comme mon cœur bat, fit-elle.
Elle avait pris ma main et l’appuyait entre ses petits seins. Je ne
savais pas ce qu’elle voulait dire. Et tout à coup, sous la chaleur de
mes doigts, elle se mit à trembler : la nature tourmentait son jeune
sang sauvage.
En luttant, nous roulions sur la mousse et elle me mordait le cou.
Il m’arrivait alors de la serrer un peu trop rudement : elle fuyait aux
taillis d’un cri blessé. Un jour je l’appelai vainement : elle ne rentra
pas à la hutte. Elle aimait rouler sa tête dans ma poitrine et écouter
longuement battre ma vie. C’était pour nous un si profond mystère,
la petite source qui goutte à goutte stillait avec son bruit d’éternité.
Nous ne savions plus depuis combien de temps nous avions
quitté les hommes. Nous avions à présent d’autres visages et
d’autres gestes. Nous recommencions l’humanité selon nos humbles
forces. Notre vie était violente et contemplative. Je connus les
heures du jour où la sève travaillait : c’était le temps du déclin
solaire. Alors les odeurs montaient ; la terre tressaillait ; tous les
arbres palpitaient comme des cœurs gonflés, et au matin il venait
des pousses nouvelles.
Je vis croître le rameau et monter l’herbe. Le vieil almanach
m’annonça les lunes et les saisons ; il m’initia aux pronostics qui
avertissent l’homme de la nature. J’étais le petit solitaire attentif et
émerveillé qui écoute chanter les oiseaux. J’appris à imiter en sifflant
leur chant ; et avec les jours d’autres oiseaux arrivaient avec d’autres
voix inconnues.
Iule près de moi m’écoutait : elle trouvait mes sons bien plus
beaux que leur chanson. Et je n’avais point encore taillé les pipeaux
où plus tard je devins un musicien habile. Elle me disait :
— Chante comme celui qui fait fouit fouit ou comme celui-là qui
fait di di di.
Nous leur donnions des noms naïfs qui correspondaient à leur
chant.
Il nous vint des sensations subtiles. Nous ouvrions nos bras au
vent ; il fut comme une chose amie que nous pressions
amoureusement contre nous. J’ignorais pourquoi si tendrement
j’étreignais les arbres. Je croyais respirer tout le ciel en aspirant
fortement l’air. Et à terre avec nos mains nous tâchions de saisir l’or
mobile des clartés : elles étaient pareilles à de grands lézards
vermeils, aux bêtes rapides et furtives qui glissaient sous bois.
Quelquefois Iule défaisait ses cheveux couleur de lin roui ; à pleins
poings elle les tordait au soleil et disait :
— Vois, n’est-ce pas du soleil que je tords avec mes cheveux ?
J’aimais tant regarder la vie verte de l’ombre sur sa peau quand
elle dansait, tenant son bout de jupe dans ses doigts. C’était une fille
déjà rusée et lascive qui semblait connaître son empire. Sa jupe se
levait toujours plus haut et elle avait un rire muet. Moi aussi je riais,
d’un autre rire, car je me souvenais qu’elle avait été nue dans la
mare. Je croyais qu’elle avait une idée qu’elle ne me disait pas.
Un jour, assis près de la maison, je lisais dans le livre. Le chemin
craqua sous ses pas, je levai les yeux ; elle était là devant moi,
tournant en rond, sa jupe dans ses mains, avec des grâces
maniérées. Qui donc lui avait appris cela ? A travers ses paupières
plissées, elle me jetait un regard pointu.
— Vois un peu comme je danse, fit-elle.
Je pensai à une autre petite qui, dans un faubourg de la ville,
une fois dansait au son d’une clarinette et d’un tambour. Celle-là
aussi avait une belle robe, oh ! une robe très courte, plutôt une jupe
de vieille gaze sale et défraîchie, mais passequillée de fils d’or. Tandis
qu’elle pivotait sur ses escarpins éculés avec son maillot d’un rouge
violet, sa noire petite main crispée prenait à sa bouche des baisers
qu’elle jetait à l’assistance, des gens du peuple, de grands et de
petits voyous comme moi. Je n’oublierai jamais l’émerveillement que
me laissa cette pitoyable marionnette humaine. Je dis à Iule :
— Il y avait une fois une petite fille qui dansait. Je n’en avais pas
encore vue de plus belle.
J’éprouvais un singulier plaisir à lui parler ainsi. Iule s’arrêta tout
à coup de tourner ; elle vint sur moi, ses poings levés, et me
demanda si j’avais aussi aimé celle-là. Moi alors, par défi à cause de
la colère de ses yeux, je dis en riant que je serais volontiers venu à
la forêt avec elle. Je m’amusais de sa peine jalouse par un sentiment
d’indépendance, exprimant ainsi qu’après tout j’étais maître de
suivre mon goût. Aussitôt elle tira ses cheveux et cria que si jamais
j’amenais une autre fille au bois, elle la tuerait.
— Oui, voilà, je l’écraserai à coups de talons. Je lui arracherai le
cœur avec les dents.
Ensuite elle se jeta à mon cou et maintenant elle pleurait, d’un
petit cœur farouche et tendre.
— Non, vois-tu, il ne faut pas faire cela. Dis, Petit Vieux, ferais-tu
vraiment cela un jour ? Je t’assure, moi aussi tu me tuerais.
J’éprouvai une fierté mauvaise qu’elle fût à moi soudain si
humblement comme une proie, comme une petite bête à bec et à
ongles que ma valeur eût domptée. Je me sentis le maître de sa vie.
Je n’aurais eu qu’à la prendre sous les aisselles et à la jeter sur
l’herbe.
Un feu me mangea les entrailles ; je la regardai si furieusement
qu’elle prit peur et s’écria :
— Petit Vieux ! comme tu as l’air terrible !
Est-ce qu’elle tremblait véritablement ? Elle cacha sa tête dans
ses mains et me dit gentiment :
— Fais de moi ce que tu voudras.
Et moi, la voyant douce et soumise, je haussai les épaules sans
lui répondre comme si à présent je ne savais plus ce qu’elle me
voulait. Je tirai mon almanach ; j’épelai, avec mon doigt sur les
lettres, la parabole du vieil homme au désert. J’étais heureux d’une
joie triste, sentant sa petite main à mon épaule tandis que je lisais.
Chaque fois que j’ouvrais les pages, il me venait la sensation que le
livre aussi était une force comme le vent et le tonnerre, mais une
force bienfaisante. Quelque chose de bon et de divin en émanait
comme lorsque, à l’école du bon maître, je croyais voir Dieu se lever
du geste dont il faisait tourner la boule devant la chandelle en nous
disant : Ceci est la terre et cela le soleil. Je ne songeais pas à me
demander par quel miracle les idées étaient descendues se figer là
en lettres. J’aurais été bien étonné si quelqu’un m’avait parlé de
l’homme qui avec une petite pince les prenait dans un casier et les
mettait l’une à la suite de l’autre comme les pièces d’un jeu de
patience. Peut-être en moi j’avais un peu le sentiment que c’était là
une chose de vie naturelle comme il nous vient des ongles aux
doigts et des poils à la peau.
La forêt fut rouge : il passa un froid à travers les arbres éclaircis.
Iule ne descendait plus au cœur de la forêt avec moi. Je partais seul
en chasse, tuant çà et là un écureuil à coups de flèches. Je rentrais
mouillé, ma chair mi-nue toute froide sous mes haillons. Même aux
jours de soleil, l’ombre restait humide. Alors elle imagina de coudre
ensemble les peaux de bêtes qu’à mesure nous mettions sécher sur
des branches. Avec la pointe du couteau je les perçais de petits
trous ; elle y passait des cordes enlevées à la trame du sac et qu’elle
tressait solidement. Nous ne cessâmes pas de rire la première fois
que nous endossâmes cet étrange vêtement. Nous nous
apparaissions à nous-mêmes comme des bêtes sorties du hallier et à
présent, sous la chaude pelisse sauvage, nous ne redoutions plus ni
le froid ni la pluie.
Patiemment je me mis à tailler dans de grosses branches des
sabots pour Iule ; nous en avions porté de pareils au hameau. Mais
tandis que j’achevais de creuser le second des sabots, la lame de
mon couteau s’épointa : j’aurais préféré me couper un doigt. Toute
notre vie était dans ce couteau : il était l’outil essentiel sans lequel je
n’aurais pu ni reconstruire la hutte ni me refaire un arc. Et, avec la
lame éclatée entre mes doigts, j’étais là tout pâle, songeant à ce
qu’il adviendrait de nous si une nouvelle ébréchure devait l’entamer.
Je ne m’en servis plus qu’avec une prudence extrême.
Etant descendus ce jour-là vers la mare, nous perçûmes un bruit
qui ne nous était pas encore connu. Des coups sonores à intervalles
réguliers battaient dans le grand silence de la forêt. Iule me dit :
— C’est comme quand je mets ma tête sur ta poitrine et que
j’entends battre ton cœur.
Le cœur de la forêt aussi semblait bondir dans ces secousses
profondes. C’était effrayant et lointain comme si, à une grande
distance, des hommes se battaient avec la forêt. Dans l’air humide
et lourd, le son s’émoussait et par moment semblait monter de
dessous la terre. Il ne se prolongeait pas, il était étouffé comme les
pulsations d’un cœur sous un drap épais et cependant il était
terrible.
Il nous remplit d’effroi ; nous ne pouvions douter que des
hommes étaient venus dans la forêt et faisaient là une chose
mystérieuse et redoutable. Les coups durèrent jusqu’à la nuit et
ensuite ils recommencèrent dans le matin brumeux. Il nous
paraissait que tout le bois tremblait. Je dis à Iule :
— S’ils viennent pour nous prendre, j’ai mon couteau.
Pourtant c’était là plutôt une bravoure affectée. Maintenant que
l’homme encore une fois se rapprochait de nous, d’autant plus
dangereux qu’il nous restait caché, j’avais moins confiance. Iule,
elle, dans son simple courage, fut admirable.
— Tu les tueras avec ton couteau, me dit-elle farouchement, et
moi je tirerai des flèches. Et puis avec mes pieds nus je danserai sur
leur cœur comme après que l’écureuil m’a mordue.
Elle parlait comme une vraie guerrière, comme une fille des
tribus sauvages. Nous descendîmes ensemble dans la forêt ; j’allais
devant, tenant mon couteau dans mes mains ; elle me suivait,
portant l’arc. Les coups dans le jour pluvieux s’étaient assourdis :
parfois nous cessions tout à fait de les entendre ; et ils étaient très
loin, de l’autre côté de la forêt. Nous cherchions vainement à nous
orienter quand ils reprenaient. Nous marchions avec une grande
prudence comme si à présent c’était nous le gibier.
Un jour de l’autre année, allant à petit pas, nous avions
découvert le campement : il y avait derrière les paillotes des
hommes velus et qui se mouvaient avec des rythmes subtils qu’avant
ce temps nous avions ignorés. Ceux-là après tout étaient des êtres
bienveillants sous leurs grands visages muets. Et nous nous
demandions quel autre ouvrier inconnu si furieusement faisait gémir
le cœur de la forêt. Tout à coup Iule eut des yeux pâles dans l’ombre
du taillis :
— Dis, Petit Vieux. Si ce n’étaient pas des hommes ? Si c’était une
bête comme celle qui une fois est passée dans la rue et qui était
haute comme une maison ?
Elle m’avait parlé souvent d’une bête qu’on menait jouer comme
un acteur dans un cirque. Je crois bien que c’était un éléphant ; mais
alors ni elle ni moi n’en connaissions encore le nom. L’idée qu’un
animal aussi terrible vécût dans la forêt nous fit, ce soir-là, déserter
la hutte : nous grimpâmes au hêtre et nous tenant enlacés au chaud
de nos peaux d’écureuils, nous dormîmes dans l’abri où nos nuits
avaient été si souvent bercées au vent de l’été.
A l’aube, la forêt de nouveau tressaillit, et maintenant il semblait
que les coups s’étaient rapprochés. Notre vie resta troublée de la
crainte d’un ennemi secret qui toujours sûrement avançait et
attaquait le bois par tous les côtés. Vers le midi du jour, les
profondeurs mugirent ; l’air fut déchiré d’un fracas horrible après
lequel il régna un grand silence ; et à présent je ne croyais plus que
c’était une bête qui fît un tel bruit.
— Je t’assure, Iule, ce sont bien les hommes et ils abattent la
forêt. Quand la grosse branche une nuit est tombée, c’était aussi
comme un coup de tonnerre.
Elle me regarda en riant :
— Oh ! fit-elle, il y a peut-être parmi eux des garçons comme toi,
Petit Vieux.
Pourquoi me dit-elle cela ainsi ? Ses narines battaient. Elle ne
parlait plus de danser sur leur cœur avec ses talons nus. J’aurais
voulu lui mordre le cou. Je dis :
— S’il y a là un garçon comme moi…
Et voilà, je demeurai muet ensuite, avec une chose en moi que je
n’aurais pu exprimer ; et peut-être aussi Iule avait pensé à cette
chose.
Le lendemain elle me dit tranquillement :
— Nous irons devant nous tant que nous aurons vu.
Elle a raison, songeais-je ; tu sauras alors ce qu’il te reste à faire.
Nous étions venus avec l’arc et le couteau dans les mains :
cependant si dans ce moment une forme humaine avait apparu,
j’aurais jeté mon couteau à terre.
Nous marchâmes longtemps : les coups retentirent plus
distinctement et à chaque coup la forêt gémissait. Nous étions
légers, confiants ; nous chantions, nous tenant par la main. Mais un
coq des bois, au plumage de cuivre et de feu, avec un cri
bruyamment s’éleva d’un fourré. Je tirai une flèche ; elle s’égara, et
presque aussitôt un lapin piqua dans sa rabouillère. Nous oubliâmes
les hommes.
Le souffle court, nous guettions si le lapin n’allait pas sortir par
un autre passage à une petite distance. Il ne vint qu’un écureuil qui
pour nous regarder s’avança jusqu’au bout d’une branche. Encore
une fois je brandis l’arc et visai. La bestiole rusée tournait autour du
tronc et moi aussi, avec mon arc tendu, je me mis à tourner,
attendant le moment. Enfin la flèche partit, l’écureuil roula. Dans
notre joie, nous dansâmes autour de sa mort. Avec nos peaux de
bête, nous avions l’air vraiment terrible ; elle poussait ses ouah
ouah ; mes cris faisaient envoler les oiseaux. Notre folie remua tout
le bois. Il nous parut que des voix au loin répondaient à nos
clameurs.
— Crois-moi, dit-elle, c’est par là qu’il faut aller.
Elle me montrait l’occident.
Nous écoutâmes : les voix s’étaient tues et encore une fois le
cœur des arbres sonnait sous les coups.
Il y avait des mois que nous vivions dans la solitude de cette
forêt ; je ne savais plus comment était fait le visage d’un homme.
Mes yeux regardaient ardemment devant moi. Nos sabots dans les
mains, nous courûmes dans la direction des voix. J’avais mis le petit
corps tiède de l’écureuil sous un lit de feuilles ; j’avais planté une
branche à côté afin de reconnaître l’endroit quand nous reviendrions
pour le reprendre. Et maintenant une force secrète nous attirait,
détendait sous nous les ressorts de la course. Je pensais : il y a là
peut-être des filles comme Iule ; mais je ne le disais pas à Iule. Une
odeur de bois brûlé efflua ; les fonds se vaporisèrent de spirales
bleues que doucement le vent portait. C’était une fumée comme
celle qui un jour nous avait attirés vers les paillotes de la tribu. Elle
sentait l’abri, le repas familial après la journée de travail ; elle nous
caressait si mollement le cœur quand, à la tombée du soir, elle
venait vers nous, aux limites du désert d’argile où toute une journée
pleine, sous l’ardent soleil, nous avions peiné ! Nous l’aspirions
comme après une longue faim on mange le pain. Ni l’un ni l’autre ne
pensions plus à notre petite hutte au cœur de la forêt.
Une jeune voix d’homme chanta et j’avais pris les mains de Iule ;
elle serrait les miennes ; nous avions envie de pleurer. Un vaste
découvert ajoura la forêt vers les fonds. Nous avions peur qu’un
chien aboyât. Nous rampions sous les arbres, moi tenant le couteau
dans les mains. J’aurais tué le chien. Et puis tout à coup à une petite
distance, le chant recommença. Des hommes sous les arbres
parlaient : leurs voix, dans le silence lourd, avec le poids de la forêt
sur elles, étaient inouïes, comme si elles montaient de la profondeur
d’un puits. Elles nous faisaient mal délicieusement.
Couchés dans les végétations basses, nous nous dressâmes sur
nos poings, regardant fumer des huttes dans la clairière. Il y en avait
deux, moitié faites de planches aboutées, moitié hourdées avec des
mottes de terre ; et elles n’avaient d’autre ouverture que la porte.
Elles étaient bien plus primitives que la maison des briquetiers.
Mon Dieu ! comme soudain ma sympathie s’éveilla pour ces
hommes qui s’étaient fait un toit semblable à notre toit ! Sans doute
eux aussi vivaient de proies libres et sauvages comme nous.
Combien étaient-ils ? Avaient-ils leurs femmes avec eux ? Mon cœur
battait contre la terre. Quelque chose parfois bougeait dans l’une
des huttes, une forme vague que nous ne pouvions reconnaître. Un
vieux, très grand, avec la cognée frappait le pied d’un hêtre. A
chaque coup, il se baissait, lançait de toute sa taille le fer dans
l’entaille déjà profonde ; et ensuite d’un effort de bras il la retirait et
recommençait à frapper. On n’entendait pas tout de suite le han.
J’enviais la force tranquille de cet homme. Sans doute les autres
étaient plus loin : on entendait les coups de leurs cognées et on ne
les voyait pas.
Encore une fois la voix joyeuse s’éleva. Elle venait du fond de la
hutte et puis elle s’avança jusqu’au seuil. Et maintenant un jeune
homme était là, les bras croisés, dans l’attitude du repos entre deux
besognes, regardant avec ses prunelles claires vers la forêt. Il portait
des guêtres de cuir aux jambes ; sa tête bouclée s’attachait
fortement à ses larges épaules. Iule, droite sur ses poings, le
considérait avec des yeux de petite louve.
— Celui-là est plus beau que toi ! souffla-t-elle dans mon cou.
— Eh bien ! va avec lui. Je retournerai seul au bois.
Si elle l’eût fait, peut-être j’aurais levé sur elle mon couteau.
J’étais très doux et triste. Moi aussi j’admirais ce jeune garçon :
j’aurais aimé l’avoir pour frère.
Sans doute il entendit nos voix. Il eut le regard fixe et dur des
hommes habitués à regarder dans la nuit du bois ; et il tendait un
peu le cou, curieux, étonné. Nous nous vîmes découverts :
cependant nous n’avions pas la force de fuir, cloués sur place par ces
yeux qui ne nous quittaient pas.
Un autre, après tout, eût éprouvé la même surprise en voyant
surgir de terre deux créatures vêtues de peaux saigneuses et dont
les visages seuls avaient gardé une apparence humaine. D’un bond il
s’élança, fendit la clairière ; son rire sonnait comme un aboi ; et nos
sabots dans les mains, maintenant aussi nous courions comme des
bêtes traquées. Nous avions de l’avance ; nos pieds nus nous
donnaient plus d’agilité. Il perdit notre piste.
La lune monta. Ni Iule ni moi ne parlions plus : peut-être elle
songeait à ce jeune homme magnifique. Dans la nuit pâle, des soies
d’argent glissaient en longues traînées mouillées. Toute la forêt
sembla un rêve dans une paix de sommeil immense. Enfin l’abri
s’aperçut : nous fûmes là au cœur même du silence. Et Iule, avec sa
tête contre mon épaule, était une petite chose doucement évanouie
et palpitante. Les heures n’existèrent plus.
Des voix. Des rires. Un tumulte étouffé. Nos yeux se rouvrirent et
c’était le matin venu à petits pas avec une troupe d’hommes qui
étrangement se penchaient et nous regardaient nous éveiller. Il y en
avait trois, déjà vieux, très droits sous les ans, et le quatrième était
ce garçon qui, du fond de la clairière, s’était élancé vers nous. Iule,
avec un cri, se ramassa sous les feuilles. J’étais debout, je tâtai mon
couteau dans ma poche.
Les vieux nous considéraient d’un air peu rassurant. Mais le jeune
homme riait en leur montrant nos peaux de bêtes.
— Voilà. Ils étaient assis au bord de la clairière quand je leur ai
donné la chasse. J’ai pensé qu’il était venu des singes dans la forêt.
Iule s’agita sous les feuilles, amusée de l’idée. Elle se mit à rire et
me dit :
— Oh ! Petit Vieux, tu entends ? Ils nous ont pris pour des singes.
Quelquefois des hommes s’installaient aux carrefours : ils
possédaient de petits ouistitis aux yeux malades, affublés
d’épaulettes de troupier ou de falbalas de marquise. Elle et moi
souvent avions pris plaisir à les voir danser à la corde ou manœuvrer
un fusil. Je dis fièrement à ce garçon :
— Nous sommes des hommes comme toi.
— Oui, ma foi ! s’écria-t-il. Ils ont des bras et des visages comme
nous.
Et il ne cessait pas de regarder Iule. Un des vieux aperçut nos
réserves de bois, les peaux séchant aux branches, les pierres sur
lesquelles nous mettions cuire nos proies. Il montra la forêt d’un
large geste et dit rudement :
— C’est eux qui cassent les jeunes arbres. Ils tuent les bêtes.
J’appuyai sur lui des yeux résolus et répondis tranquillement :
— La forêt est à nous. Il n’y avait personne ici quand nous
sommes venus.
Alors ce vieil homme se mit à rire aussi.
— Ils disent que la forêt est à eux !… Il y a cent ans que les
miens et moi abattons les arbres et pas même une feuille ne nous
appartient.
Le jeune homme se penchait sur moi et me demandait avec
douceur qui était cette fille aux cheveux rouges. Je crus qu’elle allait
lui répondre comme aux briquetiers :
— Celui-là est Petit Vieux et moi je suis sa femme.
Elle me dit seulement :
— Parle-lui, toi, comme tu croiras devoir parler.
La ruse, la défiance s’éveillèrent. Après tout, de quel droit nous
interrogeaient ces gens ?
— C’est Iule, dis-je, et moi, on m’appelle Petit Vieux. Je n’en dirai
pas davantage.
Ils échangèrent encore quelques mots entre eux ; puis le plus
vieux fit un pas.
— Voilà. Il y a du pain chez nous. Si tu as du cœur, tu viendras
travailler. On s’arrangera pour le reste.
Du pain ! La tentation encore une fois monta. Celui-là avait parlé
comme le vieil homme chez les briquetiers. Je me tournai vers Iule
et ensuite toute la vie libre de la forêt fut devant moi : je n’osai plus
la regarder. Elle palpita contre ma poitrine. Elle me chuchota dans
l’oreille : « Du pain, Petit Vieux ! Pense à cela ! »
Je lui dis :
— Ce sera comme tu voudras. Dis, toi.
J’aurais voulu qu’elle me montrât la forêt en secouant la tête ;
mais elle se leva, elle mit la main sur le bras du jeune garçon en
riant.
— J’irai avec toi, puisqu’il le veut, fit-elle.
Ce cœur de Iule était plein de détours. Elle parla comme si j’avais
décidé que nous suivrions ces hommes inconnus. Quand j’étais un
petit pauvre des villes, je lançais en l’air un caillou. Selon qu’il
tombait, je faisais une chose ou l’autre. Et à présent c’était elle qui
était ma destinée.
Nous quittâmes donc la hutte. Des palombes amoureusement
sanglotaient. Un brouillard bleu fumait sur la forêt. Toutes les herbes
scintillaient. Jamais le matin ne m’avait paru plus beau. Et j’avais fixé
mes souliers par une liane à mon cou, Iule portait sa belle robe
roulée dans le sac. C’est ainsi que nous gagnâmes le campement
des bûcherons.
Le jeune homme poussa la porte de la maison de planches. Il dit
joyeusement à Iule :
— Il n’y a que toi de femme ici. Les autres sont dans la forêt plus
loin.
Ensuite il nous coupa du pain. Mon Dieu ! le goût nous en était
toujours resté aux dents ; cependant nous croyions, elle et moi, en
manger pour la première fois.
Ce fut le recommencement de notre ancienne vie chez les
hommes. L’instinct d’humanité encore une fois prévalut, nous fit
accepter le vague lien social dont demeurait unie cette tribu au fond
des bois. Elle se composait d’âmes simples et rudes qui avaient les
silences, la vie dormante des petites mares de soleil au creux des
ravines. Ils vivaient parmi les arbres, ligneux et indestructibles, avec
une sève sauvage et de tendres moelles. Un durable
compagnonnage au cœur vert des solitudes les unissait d’une
affection tenace sans paroles. Ils n’éprouvaient pas le besoin de se
rien dire, ayant tous les mêmes idées et dépourvus de mots pour les
exprimer. Lequel d’entre eux le premier était venu à la forêt avec sa
hache, ils l’ignoraient : c’était une ancienne tradition qui se perdait
dans l’âge même de la silve. Leurs générations s’étaient épuisées à
toujours frapper au cœur les grands chênes : là où ils passaient, des
fleuves de sèves coulaient et ne diminuaient pas les intarissables
fontaines de la vie. Comme les briquetiers, ils marchaient devant
eux, faisant une œuvre obscure, frappant en tous sens des coups
qui retentissaient aux matrices de la terre. Ils ne raisonnaient pas la
destinée qui les poussait à travailler sans trêve pour les villes.
La plupart n’avaient pas dépassé la limite des hameaux.
Quelquefois ils allaient y chercher des femmes et s’y mariaient. Les
noces étaient brèves et s’achevaient sous les arches bleues de la
forêt, dans la nuit des huttes. Quand l’un des leurs mourait, on le
clouait entre des planches fraîchement sciées et ensemble, en se
relayant, on le portait au cimetière, très loin. C’étaient les seules
corvées qui les rattachaient à la vie des autres hommes. Ils étaient
doux et dissimulés, un peu tristes.
Iacq était le nom du garçon. Il m’apprit à manier la cognée.
Après que l’arbre était tombé, il fallait abattre les branches ; les
grosses passaient à la scie ; on bottelait les moyennes en falourdes ;
les brindilles formaient des fagots et des balais. Les maîtres
bûcherons seulement frappaient l’arbre au pied.
Iacq me dit :
— Je t’apprendrai à abattre les chênes.
Ce jeune homme était une grande force de vie. Quand celui-là
riait, les oiseaux se taisaient, tout le silence de la forêt était rompu.
C’était un vrai fils des bois, et pourtant il n’avait pas la taciturnité
des autres enfants de la tribu. Sa gaîté d’homme sain et robuste
tranchait sur leur vie sourde et renfermée. J’admirais sa vigueur
calme tandis qu’il jetait la cognée, cambré sur les reins, le torse
tordu de côté. Le fer s’abattait, faisait une large blessure, mousse et
mouillé d’avoir frappé dans le sang vert. Iacq semblait cogner dans
l’ivresse joyeuse de sa force, les muscles câblés à l’égal des nervures
puissantes du hêtre. Sa cognée vibrait, avec un ronflement de
grosse mouche quand on l’entendait de loin. Quelquefois il coupait
son rude labeur d’une chanson chantée à tue-tête, ou bien il sifflait,
imitant les oiseaux.
Je ne connaissais pas encore la souffrance des arbres : les coups
de la cognée me donnaient envie de frapper à mon tour. Un jour,
comme il me défiait en plaisantant, je ramassai la lourde masse ; je
la lançai à la volée ; elle s’abattit à côté de l’entaille, s’enraîna aux
moelles profondes. J’eus le vertige d’avoir entré le fer dans un torse
humain, dans une vie d’or et de sang. L’arbre frémit de tout son
feuillage : un fracas sourd se perdit aux silences de la forêt. Et à
présent je n’ignorais plus ma force. Iacq cessa de rire et dit :
— Toi, tu seras un bûcheron.
Nous étions là, dans la coupe, huit hommes et Iule. Le reste de
la tribu s’éparsait de clairière en clairière. Ils avaient des huttes
comme les nôtres : ils étaient plus nombreux et des femmes
préparaient leurs repas. Ce fut Iule qui fut chargée du ménage dans
notre camp. Elle allumait le feu, passait l’eau ensuite sur la cafetière.
Une décoction de chicorée trempait notre pain bis pendant le jour. La
fumée montait sous les arbres, se ouatait en légers flocons bleus qui
ne se dissipaient que lentement, roulaient au vent jusque dans les
combes. Le soir, la flamme dardait plus haute : Iule alors mettait
cuire les pommes de terre. C’était, avec de la couenne de porc,
notre habituelle nourriture. Ces gens de forêt n’en connaissaient pas
d’autre. Iule et moi demeurions surpris qu’ayant les fruits et les
bêtes du bois, ils se contentassent de ces simples aliments. Leur
probité était farouche : ils vivaient d’une pauvreté volontaire, dans la
large abondance de la terre. Aucun d’eux ne pensait qu’après tout
celle-ci est aux hommes qui peinent et ahannent à son flanc. Ils
respectaient les antiques défenses, soumis à leur destin, vaillants et
nus. Une fois je tuai d’un coup de bâton un jeune lapin et le
rapportai à la hutte. Iacq à grandes dents en mangea. Les vieux,
eux, n’étaient pas contents. Je compris que nous seuls, Iule et moi,
avions connu la vie libre.
Dès l’aube, le travail commençait. Le premier frisson du jour
glissait aux cimes, une vapeur glauque duvetait l’ombre humide. Et
puis la clarté descendait, fraîche, trouble encore comme une grande
onde après les vannes levées. Les profondeurs restaient longtemps
brumeuses ; un brouillard violet de proche en proche s’irisait aux
filtrées du soleil, obliques et mobiles comme des colonnes
oscillantes. La cognée bondissait comme un palet d’or. Les coups
faisaient trembler le ciel au-dessus des arbres.
Midi amenait une trêve : un lourd sommeil pesait ; le
bourdonnement des grosses mouches planait ; et les hommes,
couchés au frais des mousses, avec leurs larges torses écroulés, eux-

You might also like