Skip to content
HomeVideos
AllLongsCategoriesPlaylists
BooksBlogsPodcasts
HistoryListsWatch laterLiked videosFollowing

The videos, books, blogs and podcasts Hacker News keeps recommending, all in one place.

VideosBooksBlogsPodcastsAboutPrivacySettings

Data from Hacker News, HackerTube, HackerBooks, HackerBlogs and Open Library. Credits · Not affiliated with Y Combinator.

HomeVideosBooksBlogsPodcasts
Ctrl K

    Gopherfest 2015 | Go Proverbs with Rob Pike

    The Go Programming Language

    1 HN recommender · recommended in 16 months, 2016–2026

    YouTube

    22:29 · 317K views · Dec 1, 2015

    Rob Pike presents Go Proverbs at Gopherfest 2015, a set of pithy aphorisms about Go design such as 'Clear is better than clever' and 'A little copying is better than a little dependency'.

    HN treats it as the canonical source for Go proverbs, quoted in debates about dependencies, concurrency and simplicity.

    Software Engineering & LanguagesC, C++, Rust, Go & systems languagesSoftware architecture & design
    1. 23:12
      dotGo 2015 - Rob Pike - Simplicity is Complicateddotconferences172K views • 10 years ago
    2. 51:27
      Google I/O 2012 - Go Concurrency PatternsGoogle for Developers894K views • 14 years ago
    3. 23:57
      GopherCon 2016: The Design of the Go Assembler - Rob PikeGopher Academy116K views • 10 years ago
    4. 51:18
      Lexical Scanning in Go - Rob PikeGoogleFOSSSydney162K views • 15 years ago
    5. 56:36
      GopherCon 2014 Opening Keynote by Rob PikeConfreaks38K views • 12 years ago
    6. 12:31
      OSCON 2010: Rob Pike, "Public Static Void"O'Reilly119K views • 16 years ago
    7. 31:18
      Gopherfest 2017 | Upspin with Rob PikeThe Go Programming Language50K views • 9 years ago
    8. 31:23
      Concurrency is not Parallelism by Rob Pikegnbitcom191K views • 10 years ago
    9. 59:26
      The Go Programming LanguageGoogle TechTalks406K views • 16 years ago
    10. 1:07:00
      Sydney Golang Meetup - Rob Pike - Go 2 Draft SpecificationsMacquarie Group57K views • 7 years ago
    11. 0:27
      Rob Pike about the target group of the Go programming language (golang)f8C4G86p KbqEFe477K views • 6 years ago
    12. 38:19
      Origins of Go Concurrency style by Rob Pikejasonofthel33t28K views • 14 years ago
    13. 48:19
      GopherCon 2014 Inside the Gophers Studio with Blake MizeranyConfreaks8.1K views • 12 years ago
    14. 1:02:49
      Hacking with Andrew and Brad: tip.golang.orgThe Go Programming Language99K views • 11 years ago
    15. 1:03:31
      Brian Goetz - Stewardship: the Sobering PartsClojureTV39K views • 11 years ago
    16. 51:12
      Google I/O 2011: Writing Web Apps in GoGoogle for Developers135K views • 15 years ago
    17. 1:00:29
      Google I/O 2012 - Meet the Go TeamGoogle for Developers108K views • 14 years ago
    18. 1:01:39
      "Simple Made Easy" - Rich Hickey (2011)Strange Loop Conference220K views • 5 years ago
    19. 1:02:50
      The Language of the System - Rich HickeyClojureTV174K views • 13 years ago
    20. 1:00:40
      Dmitry Vyukov — Go scheduler: Implementing language with lightweight concurrencyHydra47K views • 7 years ago

    16 comments from Hacker News

    1. @Dawny33Apr 2016· in “Go Proverbs: Simple, Poetic, Pithy”

      Just in case you haven't read the footer text: The proverbs are based on this awesome talk by Rob Spike: this video And for new proverb ideas, you can open an issue here: [LINK]

      Strongly recommendsView on HN
    2. @mtalantikiteApr 2020· in “Pulumi – Modern Infrastructure as Code”

      "For comparison, this Amazon VPC example may be worth checking out" It might be better to compare how to use the module/stack: - Terraform: [LINK] - Pulumi: [LINK] So as a user, can I configure this Pulumi VPC stack before it's instantiated? Or do I have to use the defaults first and then use the CLI to change things? Do these CLI changes then get placed into code, or just into state? Does that mean I'm now in a situation where the code doesn't match the state? Personally I find the Terraform configuration much easier to reason about, I see exactly where resources are declared just by scanning the file. (But I've also used Terraform a lot). Edit: Ah, maybe I have to configure it via this config.py file [1]? I appreciate what Pulumi is trying to accomplish, but that is certainly not a config format I'd like to be using. Maybe you could use HCL or YAML for it? ;) Edit 2: Another last thought, I think a lot of the mindset in Terraform comes from Go, where the proverb "A little copying is better than a little dependency" is pretty well adopted. Before I started writing Go as my main language I didn't appreciate that mindset, but after 5 years with Go I've found it more and more appropriate [2]. [1] [LINK] [2] [LINK] -- this video

      CitesView on HN
    3. @shadowgovtFeb 2021· in “Leveraging the Go Type System”

      A constructor is just a function though... If I add a new field to a Java class and fail to add its initialization to the constructor, I have the exact same problem because Java initializes the field to its default value when the constructor is called. You are correct that every situation where the struct in Go is initialized "bare" would need to be addressed if a field is added, but Go considers this a feature, not a bug (and, conversely, considers "bare initialization" of structs at dozens of places in your code to be bad practice if that struct could ever grow new fields). If you're bare-initializing structs, you're comfortable using them in a "loosey-goosey" context where zero-initialized fields are permitted (or, better, useful... this video ). In Go, the issue of required structure is addressed by wrapping the struct in an interface and then providing a function in the package that can create an instance of the interface. Used in that way, you get something very similar to a Java class (though Go doesn't force you into the "everything is a class" paradigm that Java demands).

      CitesView on HN
    4. @thegeekpirateMar 2022· in “Go 1.18”

      You've also opened yourself up to bugs by allowing the map values to be "false". Using a "set's" value in an if statement doesn't make sense either, compared to if _, exists := something[item]; exists { ... } which is explicit regarding what's actually going on. As Rob said, "Clear is better than clever." this video I also don't want to be hunting down whoever creates a map[T]bool and doesn't leave a comment explaining it's a set ;) Hopefully we won't have to worry about it for much longer regardless, since I imagine we'll be using proper sets (with methods) some point in the near future.

      CitesView on HN
    5. @pbohunNov 2025· in “A million ways to die from a data race in Go”

      The first Go proverb Rob Pike listed in his talk "Go Proverbs" was, "Don't communicate by sharing memory, share memory by communicating." Go was designed from the beginning to use Tony Hoare's idea of communicating sequential processes for designing concurrent programs. However, like any professional tool, Go allows you to do the dangerous thing when you absolutely need to, but it's disappointing when people insist on using the dangerous way and then blame it on the language. this video

      CitesView on HN