
Creating the Go Programming Language [audio] - wwarner
https://changelog.com/gotime/100
======
Laremere
HN comments seem to lack focus on the podcast's contents (which isn't too
surprising, as the podcast is nearly as long as the post is old.) Having
already listened, here are some highlights:

* How work started on the language in the beginning, including social factors such as support from their managers.

* The value of starting a language with its spec instead of an implementation. Why it's a good idea and when it's maybe not.

* Learning how to work in on an open source project coming from a closed source world, how to make that project successful.

* Feature rich vs feature parse languages. What Go chose, and the trade-offs it took when choosing so.

* What influences Go has had on other programming languages, with a focus on gofmt and code formatting in general.

------
adamstac
For those wanting to read a transcript...

Transcripts are delayed a few days but there will be a transcript. We have a
human on staff (Alex) to ensure every podcast we produce a highly readable
transcript that can also be contributed to via Github.

~~~
AnimalMuppet
Transcript is now up, at the linked article.

------
haolez
I think I'm the only Go programmer who enjoys the idea behind GOPATH :)

~~~
mholt
\o

I still use GOPATH structure since it's such a nice way to organize my code.

~~~
duncan-donuts
I didn’t like it at first but didn’t have much choice. After a while I liked
the structure. I don’t even write go anymore and I still use gopath structure
for my work

~~~
shanev
This is a common pattern with many of Go’s features. Experienced folk
sometimes tend to make unconventional design decisions. You don’t appreciate
them until you’ve tried out all the alternatives, and arrived at the same
conclusions yourself.

------
gumby
Mods, please add (podcast) warning to title.

There is no transcript.

~~~
adamstac
Transcripts are delayed a few days but there will be a transcript. We have a
human on staff (Alex) to ensure every podcast we produce a highly readable
transcript that can also be contributed to via Github.

------
MassiveOwl
I write primarily in Go, I have to admit that I can't stand the name of it.
When doing a search I constantly have to write "go golang" in my searches to
get relevant results. It's too generically named, like naming something "The"

~~~
forgot-my-pw
Let's make a new language called Lang. We can also call it langlang. I'm sure
there's nothing using that name~

------
gitgud
Slightly off topic: Why was the language named "Go"?

I originally assumed that it was an abbreviation of _Google_ (where it was
developed) but I can't seem to find an information confirming that...

~~~
lmuench
I recall reading that one of the reasons was the fact that "go" sounded good

1\. when used as a keyword to start a "goroutine"

    
    
      go f()
    

2\. when used from the command line for compilation etc.

    
    
      go build ...
      go get ...

------
moocowtruck
are basic languages good though? the amount of go concurrency bugs I've dealt
with has been outstanding and quite brutal over the last few years; I feel
like many times the same sort of c "i dont make mistakes" programmers are
attracted to go and they also don't make mistakes there as well...

~~~
randomdata
_> the amount of go concurrency bugs I've dealt with has been outstanding and
quite brutal over the last few years_

Concurrency is hard. Maybe something like Erlang does it better, but compared
the concurrency options in most popular languages, and the bugs that go along
with those options, I think I would far rather deal with them in Go.

Perhaps the only reason you find concurrency issues in Go so frequently is
because Go is more often used where concurrency is necessary, due to it being
more suitable to writing concurrent code compared to many other popular
languages? I certainly find more DOM bugs in Javascript than other languages,
but I'm not sure that is a reflection of the language, only where the language
is most often used.

~~~
kerkeslager
> Concurrency is hard. Maybe something like Erlang does it better, but
> compared the concurrency options in most popular languages, and the bugs
> that go along with those options, I think I would far rather deal with them
> in Go.

Concurrency isn't really that hard in Erlang, and Erlang isn't the only
language that handles concurrency well. "Concurrency is hard" is usually
paired with an implicit refusal to learn paradigms that make concurrency
easier.

Why are we only comparing Go to popular languages? When I first came across
Go, _before_ it was a popular language, I immediately started criticizing it
because of the weak type system and ineffective concurrency model: I wanted
the attention being given to Go to be given to a better language. Now I'm
seeing the same people saying, "Okay, but the type system and concurrency are
better than other popular languages." At face value, it makes sense to compare
a popular language to other popular languages, but that logic breaks down
because the only reason Go is popular is that a lot of people made the bad
decision of choosing it before it was popular.

------
sneak
first two minutes are ads and fluff, fast forward them

~~~
eddieh
Please consume the ads. Content isn't free.

~~~
rcoveson
What an ironic comment on an article whose subject is a massive, free, open-
source piece of "content."

~~~
eddieh
You know it's "free as in freedom, not beer," right?

~~~
rcoveson
Go is both free as in freedom _and_ free as in beer. Binaries and source are
available for use or modification to anybody, free of charge. No ads either.

~~~
LanceH
Go is free as in freedom and paid for by someone else.

~~~
eddieh
Specifically paid for by Google which, as far as I'm concerned, is the
definition of ad supported.

~~~
rcoveson
Clever, but beside the point. "Content isn't free" is still not a reason to
plead that others "consume the ads." Google doesn't offer Go on the
_condition_ that you consume ads, nor does this podcast or interview offer
itself to the Internet on the condition that you don't skip the first two
minutes of it. If you're somebody who is opposed to the practice of
advertising in general, by all means, skip it. Nobody should tell you not to.

------
kristianov
No progress bar. No fast forward button. No speed-up.

Man this UX is frustrating.

~~~
hu3
There's a clickable progress bar with fast-forward button.

[https://i.imgur.com/TMe45IJ.png](https://i.imgur.com/TMe45IJ.png)

Also a download link for mp3.

------
higherkinded
Don't.

------
arcticbull
Step 1: be rob pike. Step 2: invent a pretty basic programming language using
your old compiler from Plan 9 while at google. Step 3: be rob pike. ^_^

~~~
meddlepal
Pretty much this, the only reason anyone gave Go any attention was:

1\. The pedigree of the creators 2\. Google's developer marketing

And now we are stuck with it thanks to traction.

~~~
Vanclief
Or maybe because it is a useful and productive language?

~~~
takeda
I have feeling the people who praise Go didn't use too many other languages.

In my workplace Go is the preferred language, but I don't enjoy it, its type
system stands in the way on every step.

------
fastbmk
Go is a new Visual Basic. Probably good for business owners, because of the
lowbrow nature of Go language, developers are easily interchangeable, like a
commodity.

------
mrath
While I dislike golang its runtime and compiler are nice. Also lot of its
simplicity aspects are nice.

if vlang can implement what it is trying to implement then probably it will be
a nice contender to golang in all aspects. But that looks too good to be true.

The other language is rust, but the higher learning curve make it a bit harder
for adoption in non systems where go/java like performance is enough.

~~~
minxomat
I mean, Crystal would be my next go-to. If you have never written Ruby (like
me) the appeal isn't the Ruby-like syntax, it's just _a_ reasonable syntax
with a very pragmatic type system and niceties (like classes, which are more
open to hacking / composition than in other languages). It's like Go++ in my
mind.

~~~
Thaxll
Crystal is dead, exactly how can you expect to have a language that compete
with Go with only 2 full time devs?

~~~
ramchip
Does it have to “beat” Go or die?

~~~
pjmlp
No, but it definitely needs a community big enough to keep it alive.

