Skip to content

Commit 455c134

Browse files
committed
Minor edits
1 parent a027d4f commit 455c134

File tree

1 file changed

+8
-8
lines changed

1 file changed

+8
-8
lines changed

_posts/2017-03-02-lang-ergonomics.md

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -43,11 +43,11 @@ the current design and some streamlining we may want to consider this year.
4343
### Implicit vs explicit
4444

4545
**Information is implicit when it is *implied* but not *expressed*.** The
46-
potential ergonomic wins are pretty easy to see: information that's *implied* is
47-
easy to forget to write down, and writing it down feels like a distraction that
48-
adds unhelpful noise to code; leaving it implicit reduces that friction. Yet
49-
implicitness gets a bad rap, with Python going so far as to state "explicit is
50-
better than implicit" as a core design rule. Why?
46+
potential ergonomic wins are pretty easy to see: forcing you to write down
47+
information that's obvious (because it's already implied) is a pain, because it
48+
adds distracting noise and is easy to forget. Allowing you to leave it implicit
49+
reduces that friction. Yet implicitness gets a bad rap, with Python going so far
50+
as to state "explicit is better than implicit" as a core design rule. Why?
5151

5252
Implicitness can be very powerful. After all, the compiler knows a *lot* about
5353
your code, and it's possible to leverage that to inject behavior in all kinds of
@@ -74,8 +74,8 @@ but relevant or surprising information is kept front and center.
7474

7575
There are basically two dimensions of the reasoning footprint for implicitness:
7676

77-
- **Where can you elide?**. In other words, how do you know when implicitness may be in play?
78-
- **How are the gaps filled in?**. In other words, how do you know what is being implied?
77+
- **Where can you elide?** In other words, how do you know when implicitness may be in play?
78+
- **How are the gaps filled in?** In other words, how do you know what is being implied?
7979

8080
A well-designed feature will tailor both of these dimensions to match (or inform)
8181
the programmer's mental model, and to make the data you have to keep in your
@@ -143,7 +143,7 @@ particular:
143143
- Trade power/precision: type inference happens only for variable bindings; data
144144
types and functions must include complete, explicit signatures. This choice
145145
gives you the bulk of the ergonomic benefits, allowing for very powerful
146-
inference, but insuring that the scope of the inference is kept local.
146+
inference, but ensuring that the scope of the inference is kept local.
147147

148148
- Limit context: similarly, because data types and functions are annotated, it's
149149
easy to determine the information that's influencing the outcome of

0 commit comments

Comments
 (0)