blog: we already have go 2 #5

Merged
cadey merged 7 commits from we-have-go-2 into main 2022-05-18 20:44:41 +00:00
Owner

Signed-off-by: Xe Iaso me@christine.website

Signed-off-by: Xe Iaso <me@christine.website>
cadey added 1 commit 2022-05-06 15:56:15 +00:00
474373f17c blog: we already have go 2
Signed-off-by: Xe Iaso <me@christine.website>
cadey added 1 commit 2022-05-06 18:28:54 +00:00
cadey added 1 commit 2022-05-06 19:06:00 +00:00
cadey added 1 commit 2022-05-06 20:50:57 +00:00
84de1020a7 blog/we-have-go-2: write generics section
Signed-off-by: Xe Iaso <me@christine.website>
Author
Owner
http://100.78.40.86:3030/blog/we-have-go-2
cadey force-pushed we-have-go-2 from 84de1020a7 to 3e61345805 2022-05-07 18:04:43 +00:00 Compare
cadey force-pushed we-have-go-2 from 3e61345805 to c5ff939007 2022-05-13 00:52:08 +00:00 Compare
cadey added 1 commit 2022-05-13 01:39:44 +00:00
c5cbcc47ec more fixes
Signed-off-by: Xe Iaso <me@christine.website>
cadey reviewed 2022-05-14 11:59:49 +00:00
@ -0,0 +615,4 @@
library that uses contexts to store [contextually relevant log
fields](https://pkg.go.dev/within.website/ln) as a way to make logs easier to
correlate between.
Arguably you could make the case that people are misusing the
Author
Owner

delete this, use <br>

delete this, use `<br>`
cadey marked this conversation as resolved
openskies requested changes 2022-05-14 13:15:32 +00:00
openskies left a comment
First-time contributor

First half of first editing pass

First half of first editing pass
@ -0,0 +8,4 @@
- modules
---
I've been using Go since Go 1.4. Since I started using Go so long ago, Ive
First-time contributor

s/I started using Go so long ago/then/

s/I started using Go so long ago/then/
First-time contributor

s/I started using Go so long ago/then/

s/I started using Go so long ago/then/
cadey marked this conversation as resolved
@ -0,0 +12,4 @@
seen the language evolve significantly. The Go I write today is roughly the same
Go as the Go I wrote back when I was still learning the language, but overall
its evolved and changed into something similar yet different feeling in
practice. Thinking back over the years, here are some of the biggest ticket
First-time contributor

This doesn't make sense. Saying that it's rougly the same but has overall changed into something that feels different in practice doesn't mean much to me. This sentence could be removed completely.

Alternatively, it could be replaced with something like "syntactically/stylistically Go today is roughly the same, but the tooling and semantic additions make it feel much nicer to use."

This doesn't make sense. Saying that it's rougly the same but has overall changed into something that feels different in practice doesn't mean much to me. This sentence could be removed completely. Alternatively, it could be replaced with something like "syntactically/stylistically Go today is roughly the same, but the tooling and semantic additions make it feel much nicer to use."
@ -0,0 +27,4 @@
have gotten as lucky as I have as consistently as I have.
Releasing a "Go 2" has become a philosophical and political challenge due to the
forces that be. "Go 2" has kind of gotten the feeling of “this is never going to
First-time contributor

I dare you to make a "Go 2 Considered Harmful" pun.

I dare you to make a "Go 2 Considered Harmful" pun.
@ -0,0 +31,4 @@
happen, is it?” with how the political forces within and without the Go team are
functioning. They seem to have been incrementally releasing new features and
using version gating in `go.mod` to make it easier on people instead of a big
semver-breaking release.
First-time contributor

define "semver-breaking"

According to semver, the only thing you need to increment a major version for is for the removal of public API features. For example, in Go making something that was previously valid code invalid code.

Until that happens, semver doesn't actually require naming it Go 2. In fact, naming it Go 2 would be a misstep in semver unless it has such a breaking change.

define "semver-breaking" According to semver, the only thing you need to increment a major version for is for the removal of public API features. For example, in Go making something that was previously valid code invalid code. Until that happens, semver doesn't actually require naming it Go 2. In fact, naming it Go 2 would be a misstep in semver unless it has such a breaking change.
cadey marked this conversation as resolved
@ -0,0 +42,4 @@
design and I do not pretend to be one on TV. I am also not a member of the Go
team nor do I pretend to be one or see myself becoming one in the
future. <br /><br />If you are on the Go team and think that something I said
here was observably wrong, please [contact me](/contact) so I can correct it. I
First-time contributor

observably, objectively, demonstrably.

This is probably not quite the right word for the connotation you wanted here.

observably, objectively, demonstrably. This is probably not quite the right word for the connotation you wanted here.
cadey marked this conversation as resolved
@ -0,0 +48,4 @@
This is a look back at the huge progress that has been made since Go 1 released
and what I'd consider to be the headline features of Go 2. Most of this is a
whirlwind tour of over a half-decade of improvments to the Go compiler, toolchain
First-time contributor

Combine these two sentences. Example

This is a whirlwind tour of the huge progress in improvement to the Go compiler, toolchain, and standard library, including what I'd consider to be the headline features of Go 2

Combine these two sentences. Example This is a whirlwind tour of the huge progress in improvement to the Go compiler, toolchain, and standard library, including what I'd consider to be the headline features of Go 2
@ -0,0 +59,4 @@
of either it being written in C or the design around all the tools it was
shelling out to, it wasnt easy to cross compile Go programs. If you were
building windows programs on a Mac you needed to do a separate install of Go
from source with other targets enabled. This worked, it wasnt the default
First-time contributor

s/This worked, it wasn’t the default though/This worked, but it wasn't the default/

s/This worked, it wasn’t the default though/This worked, but it wasn't the default/
@ -0,0 +169,4 @@
they changed this to default to `~/go` (with an easy to use command to influence
the defaults without having to set an environment variable). I don't personally
understand the arguments people have for wanting to keep their home directory
"clean", but the arguments are valid regardless.</xeblog-conv>
First-time contributor

perhaps this should be rephrased to "their preferences are valid regardless"

perhaps this should be rephrased to "their preferences are valid regardless"
cadey marked this conversation as resolved
@ -0,0 +198,4 @@
off of GitHub is that when you import from a monorepo with a GOPATH in it, you
need to be sure to import the repository path and not the path used inside the
repository. This sounds weird but this is the difference between importing
`github.com/Xe/x/src/github.com/Xe/x/markov` and `github.com/Xe/x/markov`. This
First-time contributor

for go noobs, you should rephrase just a little bit to make it clear which is which, for example "this means importing X rather than Y"

for go noobs, you should rephrase just a little bit to make it clear which is which, for example "this means importing X rather than Y"
cadey marked this conversation as resolved
@ -0,0 +322,4 @@
Companies could run their own Go module proxy and then use that to provide
offline access to Go code fetched from the internet.
<xeblog-conv name="Mara" mood="hmm">Wait, couldn't this allow Google to see the
First-time contributor

You didn't set up/foreshadow this connection well enough.

cryptographic checksumming alone doesn't mean phoning home, and you don't explain how that avoids shelling out to git, or what the go module proxy is. This shouldn't be a big explanation, just like one missing sentence or a couple transitional phrases.

You didn't set up/foreshadow this connection well enough. cryptographic checksumming alone doesn't mean phoning home, and you don't explain how that avoids shelling out to git, or what the go module proxy is. This shouldn't be a big explanation, just like one missing sentence or a couple transitional phrases.
cadey marked this conversation as resolved
@ -0,0 +404,4 @@
release a version `1.x.x` of a Go project to avoid the “v2 landmine”. The Go
team claims that the right bit of tooling can help ease the pain, but this
tooling never really made it out into the public. I bet it works great inside
google3 though!</xeblog-conv>
First-time contributor

add something to indicate that google3 isn't a typo for people who've never heard of it, like backticks or something.

add something to indicate that google3 isn't a typo for people who've never heard of it, like backticks or something.
@ -0,0 +438,4 @@
Overall though, Go modules has been a net positive for the community and for
people wanting to create reliable software in Go. Its just such a big semantic
break in how the toolchain works that I almost think it would have been easier
for the to accept if _that_ was Go 2. Especially since the semantic of how the
First-time contributor

s/semantic/semantics/

s/semantic/semantics/
cadey added 1 commit 2022-05-14 13:32:14 +00:00
b3bdb9388a oh god i'm going to become poor
Signed-off-by: Xe Iaso <me@christine.website>
cadey merged commit 7a3d64fec1 into main 2022-05-18 20:44:41 +00:00
Sign in to join this conversation.
No reviewers
No Label
No Milestone
No project
No Assignees
2 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: cadey/xesite#5
No description provided.