@@ -18,25 +18,27 @@ appeal to our sense of the physical world, and build interfaces that
1818mimic that world, and allow us to manipulate shapes on a screen with
1919our fingers. This works very well for casual machine interaction.
2020
21- (((programming language)))But we have not yet found a good way to use
22- the point-and-click approach to communicate things to the computer
23- that the designer of the interface did not anticipate. For open-ended
24- interfaces, such as instructing the computer to perform arbitrary
25- tasks, we've had more luck with an approach that makes use of our
26- talent for language: teaching the machine a language.
27-
28- (((human language)))Human languages allow words and subsentences to be
29- combined in many, many ways, allowing us to say many, many different
30- things. Computer languages, though typically less grammatically
31- flexible, follow a similar principle.
32-
33- (((JavaScript,availability of)))(((browser)))Casual computing has
34- become become much more widespread in the past twenty years, and
21+ (((programming language)))(((machine language)))But we have not yet
22+ found a good way to use the point-and-click approach to communicate
23+ things to the computer that the designer of the interface did not
24+ anticipate. For open-ended interfaces, such as instructing the
25+ computer to perform arbitrary tasks, we've had more luck with an
26+ approach that makes use of our talent for language: teaching the
27+ machine a language.
28+
29+ (((human language)))(((expressivity)))Human languages allow words and
30+ subsentences to be combined in many, many ways, allowing us to say
31+ many, many different things. Computer languages, though typically less
32+ grammatically flexible, follow a similar principle.
33+
34+ (((JavaScript,availability of)))(((casual computing)))Casual computing
35+ has become become much more widespread in the past twenty years, and
3536language-based interfaces, which once were the default way in which
3637people interacted with computers, have largely been replaced with
3738graphical interfaces. But they are still there, if you know where to
3839look. One such language, _JavaScript_, is built into just about every
39- web browser, and thus available on just about every consumer device.
40+ web ((browser)), and thus available on just about every consumer
41+ device.
4042
4143indexsee:[web browser,browser]
4244
@@ -61,7 +63,7 @@ clear. But programs, built on top of these basic rules, tend to become
6163complex enough to introduce their own rules and complexity. You're
6264building your own maze, in a way, and might just get lost in it.
6365
64- There will be times at which reading this book feels terribly
66+ (((learning))) There will be times at which reading this book feels terribly
6567frustrating. If you are new to programming, there will be a lot of new
6668material to digest. Much of this material will then be _combine_ in
6769ways that require you to make additional connections.
@@ -117,16 +119,17 @@ strict rules (_“best practices”_) prescribing the form programs should
117119have, and the more zealous among them will consider those that go
118120outside of this little safe zone to be _bad_ programmers.
119121
120- What hostility to the richness of programming—to try to reduce it to
121- something straightforward and predictable, to place a taboo on all the
122- weird and beautiful programs! The landscape of programming techniques
123- is enormous, fascinating in its diversity, and still largely
124- unexplored. It is certainly dangerous going, luring the inexperienced
125- programmer into all kinds of confusion, but that only means you should
126- proceed with caution and keep your wits about you. As you learn, there
127- will always be new challenges and new territory to explore.
128- Programmers who refuse to keep exploring will stagnate, forget their
129- joy, and get bored with their craft.
122+ (((experiment)))(((learning)))What hostility to the richness of
123+ programming—to try to reduce it to something straightforward and
124+ predictable, to place a taboo on all the weird and beautiful programs!
125+ The landscape of programming techniques is enormous, fascinating in
126+ its diversity, and still largely unexplored. It is certainly dangerous
127+ going, luring the inexperienced programmer into all kinds of
128+ confusion, but that only means you should proceed with caution and
129+ keep your wits about you. As you learn, there will always be new
130+ challenges and new territory to explore. Programmers who refuse to
131+ keep exploring will stagnate, forget their joy, and get bored with
132+ their craft.
130133
131134== Why language matters ==
132135
@@ -317,22 +320,23 @@ has its advantages, though. It leaves space for a lot of techniques
317320that are impossible in more rigid languages, and, as we will see, for
318321example, in the link:10_modules.html#modules[chapter on modules], it
319322can be used to overcome some of JavaScript's shortcomings. After
320- learning the language properly and working with it for a while, I have
323+ (( learning)) the language properly and working with it for a while, I have
321324learned to actually _like_ JavaScript.
322325
323- (((JavaScript,versions of)))(((ECMAScript)))(((ECMAScript 6)))There
324- have been several _versions_ of JavaScript. ECMAScript version 3 was
325- the dominant, widely supported version in the time of JavaScript's
326- ascent to dominance, roughly between 2000 and 2010. During this time,
327- work was underway on an ambitious version 4, which planned a number of
328- radical improvements and extensions to the language. Changing a
329- living, widely used language in such a radical way turned out to be
330- politically difficult, and work on the 4th edition was abandoned in
331- 2008, leading to the much less ambitious 5th edition coming out in
332- 2009. We're now at the point where all major browsers support this 5th
333- edition, which is the language version that this book will be focusing
334- on. A 6th edition is in the process of being finalized, and some
335- browsers are starting to support new features from this edition.
326+ (((future)))(((JavaScript,versions of)))(((ECMAScript)))(((ECMAScript
327+ 6)))There have been several _versions_ of JavaScript. ECMAScript
328+ version 3 was the dominant, widely supported version in the time of
329+ JavaScript's ascent to dominance, roughly between 2000 and 2010.
330+ During this time, work was underway on an ambitious version 4, which
331+ planned a number of radical improvements and extensions to the
332+ language. Changing a living, widely used language in such a radical
333+ way turned out to be politically difficult, and work on the 4th
334+ edition was abandoned in 2008, leading to the much less ambitious 5th
335+ edition coming out in 2009. We're now at the point where all major
336+ browsers support this 5th edition, which is the language version that
337+ this book will be focusing on. A 6th edition is in the process of
338+ being finalized, and some browsers are starting to support new
339+ features from this edition.
336340
337341(((JavaScript,uses of)))Web browsers are not the only platforms on
338342which JavaScript is used. Some databases, such as MongoDB and CouchDB,
@@ -347,7 +351,7 @@ outside of the browser.
347351(((reading code)))(((writing code)))Code is the text that makes up
348352programs. Most chapters in this book contain quite a lot of it. In my
349353experience, reading and writing ((code)) is an indispensable part of
350- learning to program. Try to not just glance over the examples, read
354+ (( learning)) to program. Try to not just glance over the examples, read
351355them attentively and understand them. This will be slow and confusing
352356at first, but I promise that you will quickly get the hang of it. The
353357same goes for the ((exercises)). Don't assume you understand them
0 commit comments