

Introducing Go by Example - mmcgrana
http://mmcgrana.github.com/2012/10/introducing-go-by-example.html

======
aaronblohowiak
This is an old media presentation of something inherently interactive -- Alan
Kay complains about how the wikipedia pages' code examples aren't executable.
There is already the well-developed <http://tour.golang.org/>, which can be
used freely.

~~~
hntester123
I really liked the Go Tour, which I checked out 3 weeks ago. Then I was a bit
disappointed to see that the UI changed some, making it less user-friendly.
(Everything used to fit on one page, except for longer examples, for
instance.) Still like it overall, though.

------
pedoh
I've never experimented with go, until now. I just ran all of the examples
(found the mt=>fmt typo which I believe has been fixed). I think this is a
great way to start, thank you for building it.

I have a few suggestions.

Make the code easily copyable. Under Chrome, at any rate, if you select the
code you can't help but select your comments to the left of the code. I think
that people running through the examples should type everything in line by
line, but some people will prefer to copy and paste.

Also, it would be great to have some "where to go from here" links. I've run
the examples, now I want to write some useful code. Where should I go next?

~~~
mmcgrana
I totally agree re: copy-paste. I wasn't clever enough with CSS to do this
straight away but it's high on my list:
<https://github.com/mmcgrana/gobyexample/issues/12>.

Also agree that a learn more section could be good - I'll noodle on it.

------
icey
Mark, I'm curious to know if you find yourself using Go or Clojure more these
days.

They're quite different languages, so I was surprised to see a bunch of Go
libraries in your Github after using a bunch of Clojure gear you'd written
over the years.

~~~
mmcgrana
I'm exploring Go most actively right now. Go solves some problems that I care
a lot about - systems access and process composition - for which Clojure isn't
as directly designed. Clojure still has the best data/function composition I
think, and I do miss that in Go.

------
Stratoscope
I really like the way this is set up with lengthy examples next to the
explanatory text. I look forward to reading through it. Thanks!

In the meantime, mind a quick comment on the typography? The Palatino Linotype
body text renders poorly on Windows. Italics are particularly hard to read.

I tried changing it to Georgia and it made a world of difference:

<http://mg.to/images/go-by-example-palatino.png>

<http://mg.to/images/go-by-example-georgia.png>

~~~
mmcgrana
Great feedback - thanks. Georgia also works well on Mac, so I just shipped
this as the default.

~~~
sauerbraten
May I throw a word in? Copying the example source doesn't work properly; I
can't select source code without the descriptive text on the left. Would be
nice to have that ability.

~~~
mmcgrana
Yep it's a bummer - this is discussed in a comment below.

------
bryanlarsen
That's a great format for short examples. I'm kind of proud of this hobo
tutorial[1], which I put together a few years ago. It uses the git commit
comment for the article text, giving a clear explanation on how to evolve a
larger program. This format will make it very easy for me to update it to Hobo
2.0 without introducing the inevitable mistakes you'd get just updating a text
document.

1: <http://cookbook.hobocentral.net/tutorials/agility>

------
mseepgood
<https://gobyexample.com/slices> gives the impression that arrays and slices
are independent things, which is not true. A slice cannot exist without an
underlying array. A slice is a window view on an array, a reference to a part
of an array. Multiple slices can provide different views on the same array.
When you create a completely new slice you also create a new underlying array
and the window size is initially the same as the size of the array.

~~~
mmcgrana
Yeah there is more work to do on explaining slices for sure. I'll probably
create a separate example to explain underlying arrays + capacity and perhaps
break out the slicing operation into its own example. Thanks for the feedback.

------
dsl
If you just want the good stuff, it is at <https://gobyexample.com/>

------
trung_pham
Very cool. Maybe Go will win some people back to the strongly typed language
realm. Having the compiler acts as a safety net is pretty awesome. Much better
than having your code blow up at run time with dynamic languages.

~~~
daragh
I think many (if not the majority of) programmers are still using strongly
typed programming languages.

~~~
BHSPitMonkey
Perhaps this is just a selection bias wherein you're not considering web
developers as "programmers"?

~~~
jlgreco
I think there is selection bias, but in the other way. Web programmers, as
your typical HN goer sees them, probably tend to underestimate just how many
other programmers there are out there, particularly doing Java work.

Beneath the bleeding edge of "what is cool" and "what cool companies use"
there is a _very_ large iceberg of people and companies doing/using things
that stopped being cool a decade ago.

------
nixarn
Quick Go question. I haven't done much go coding at all, but play around with
the language. I've been reading a lot about it (thanks to HN). So I was now
looking at the Slices section and noticed a slice being initalize as:

t := []int{1, 2, 3, 4, 5}

What makes that a slice and not an array?

EDIT: Ok, found that answer on google go's blog. Apparently leaving out the
length makes it one.

~~~
jesstaa
Arrays are a fixed size. eg. t:=[5]int{1,2,3,4,5}

Go can also do the counting for you. eg. t:=[...]int{1,2,3,4,5}

~~~
nixarn
Oh, nice, thanks!

------
kolektiv
Looks like an excellent project, with a really clear and simple approach. I'd
love to see more of these approaches for other languages, but I'm looking
forward to working through this one.

------
jcurbo
Looks very nice, I am gearing up to really dive into Go soon (waiting to
finish up a class, to free up the time) and this looks like it will be a good
resource.

------
jamesmiller5
These are the kinds of guides that I think the budding gopher needs.
Golang.org has some beautiful examples but they are a bit terse.

------
RivieraKid
This is a really good format. One of the best language tutorials I've seen.

------
Myrmornis
This is great. Much better speed than <http://tour.golang.org> for people who
already know other languages. Thanks!

------
ragsagar
Nice, I was looking for something like this.

------
hntester123
Congrats on the site and thanks. As a guy interested in Go, I plan to check it
out over time.

