For me, attending GopherCon 2019 recently in San Diego was tremendous fun (The Gopher community is so amazing!)
This is what I saw, the following being *the coordinates* to my (incredibly unofficial) writeup: *What I Saw at GopherCon 2019* <https://programming-digressions.com/2019/08/what-i-saw-at-gophercon-2019.html> You'll be able to tell—a whole minute and a half into the writeup above—that I’m taking inspiration from the inimitable Irish playwright and polemicist George Bernard Shaw when he spilled his beans and said that, *My method is to take the utmost trouble to find the right thing to say, and then to say it with the utmost levity* 👻 Oh, and the following—it happens to be *Section 4*—will probably qualify as the single most serious section in this GopherCon 2019 roundup: 4. Woohoo, Speaker Highlights [image: 📣] In full candor, I was oh-so pleased by the high quality of the talks. I sure learned a ton of Go programming tactics, techniques, and strategies to bring back and apply to my own work <https://github.com/akramtexas>. For the past one year—and this is to establish some context so we’re on the same page—yours truly, an industry veteran in the area of architecting and implementing distributed computing software systems, and used to extensively wielding tools from the Java <https://programming-digressions.com/2017/08/when-object-orientation-met-functional-programming.html> and Scala <https://programming-digressions.com/2015/07/best-scala-books.html> ecosystems, has been swimming full-time in the ocean that has arisen from the amazing language that is Go. Relax, I’m not about to go meta; to drive the marine metaphors home, though, let’s just say that the beaches of San Diego were an especially appropriate venue for hosting the conference. Back to the GopherCon 2019 talks now. These are the ones that stand out, and here I present merely a snapshot impression each. So in no particular order, other than this being the order in which I recall them, they were by the following speakers: - *Elena Morozova:* I appreciated a lot how Elena’s talk (*How Uber “Go”es <https://www.gophercon.com/agenda/speakers/442432>*) was delightfully replete with helpful, thoughtful, and often times humorous illustrations which shone a new light on an indispensable subject: How does one go about maintaining a large codebase for maximum readability and minimal overhead? In addition to being really well done, the talk was candid. Elena shared the challenges Uber faced in that process—including places where they ran into the occasional failure or two—yet emerged with successful solutions. Referring back to my notes, I remember now that Elena had also talked about actually introducing a software tool to actually *enforce* consistent code structure (“Glue” was that project name, and I’ll definitely be visiting that soon). All in all, excellent talk. Neat stuff. - *Marwan Sulaiman:* The terrific thing about Marwan’s talk (*Handling Go Errors <https://www.gophercon.com/agenda/speakers/435201>*) was the incredibly deftness with which he walked us through an actual use case of going about solving a complex problem by *thinking* in the unique paradigms of Go (Anyone remember the excellent *Thinking in Java* book from way back when? Hint: I want its counterpart for Go!) Anyhow, I can attest to the wisdom of resisting the urge to go your own way; instead, the way to go is to lean on the philosophy with which Go has been designed to solve programming problems. And hey, even if error-handling is not your heartthrob topic—I honestly can’t claim it has ever been mine—the way Marwan brought programmable errors to life (in how you can design your own architecture in this area, enabling you to get a solid grip on system failures) was cool. I was wowed. Frankly, an outstanding talk. - *Mat Ryer:* If I were asked to point to (only) one talk which did an outstanding job of stripping away all *accidental* complexity, leading me and others in the audience to keep a laser sharp focus instead on the *essential* complexity of problem-solving in the domain at hand—adhering to the elegance of the Go way of doing things—it would be Mat’s talk (*How I Write HTTP Web Services After Eight Years <https://www.gophercon.com/agenda/speakers/441795>*). So I’ve done this sort of thing at least 17 different ways in the past—using assorted tools from libraries that have evolved around more mature languages such as Java and Scala—Mat demonstrated just how elegantly (and simply!) it all can be done with Go. A talk (whose recording now) is not to be missed. - *Katie Hockman:* What made Katie’s talk (*Go Module Proxy: Life of a Query* <https://www.gophercon.com/agenda/speakers/438767>) so compelling was the command with which she had masterfully assembled a whole boatload of hardcore tech subtopics into a unified whole and the conviction with which she presented her stuff. Trust me, delving into the intricacies of how her team built a module mirror and checksum database is not for the faint of heart. But Katie somehow managed to pull it off, never for a moment shying from the guts of what makes authenticated module proxies tick (Merkle Trees and all!) The delightfully humorous (running) backdrop of “the dog people” versus “the cat people” was well done and genuinely engaging. And hey, from now on I will remember her advice to “Trust on *your* first use”! (At least that’s what my scribbled notes say; more on that later.) - *Russ Cox:* I was expecting nothing less than exceptional quality from the talk (*On the Road to Go 2* <https://www.gophercon.com/agenda/speakers/441803>) by Russ and came away really pleased. Let me remind you that this list of speakers that I’ve assembled here is in no particular order, other than this being the order in which I recall some of the stellar talks. For those not familiar with his name—is there anyone, really?—Russ leads the development of the Go programming language. His talk was methodical, precise, and enlightening. I got a really good feel for how the Go language (itself) is being shepherded and evolved (Simplify by reshaping, by redefining, etc. Abandoning failed experiments, growing stronger from the learnings. Etc.). Given that we’re on the road to Go 2, the talk answered the questions of (1) Where exactly are we? and (2) Where are we headed? I sure am glad I came to the fantastic talk by Russ to get the answers to exactly those burning questions. - *Ian Lance Taylor:* The subject of Ian’s talk (*Generics in Go* <https://www.gophercon.com/agenda/speakers/441804>) is incredibly dear to me, making it virtually a guaranteed success even before I heard a word of his splendid talk. I was pleased. Very pleased. Coming from a heavy background in Java and Scala—where generics rule the day—I’ve been hankering for generics since the day I immersed myself in Go programming over a year ago. Fast-forward one year to today, and Ian’s team continues to work hard to make genetics a reality for us gophers. He rightly pointed out that when it happens (i.e. when generics become a part of Go), programming should feel no different—become no more esoteric—than when working with the usual constructs: Yep, while there are clear advantages to introducing generics into Go, there also happen to be associated a bunch of requirements. Keep up the good work, Ian and team. Oh, and FWIW, I took copious notes. I felt *compelled* to; yes, to be sure, the awesome conference organizers do make the slide decks available, yet this inveterate note-taking engineer continues to find that the best way to internalize complex subject matter is by way of pen and paper. (Physical) action does shape thought <https://www.amazon.com/Mind-Motion-Action-Shapes-Thought/dp/046509306X>, methinks. (Hey, if it isn’t you again, in your naysayer splendor, kind of! Looks like you want to see for yourself my *Good Housekeeping *seal-of-approval of sorts… Let me tell you, I’ll prove myself trustworthy. Should you *still* need to see my seal-of-approval, I’ve got that, too. You stay tuned.) Speaking of the sections such as the above (to be found in the writeup), they are: - 0. Welcome to the Show, Gophers! 🐭 - 1. First Impressions 🍎 - 2. So Is This Where Lemmings Jump Off? 🐹 - 3. Thou Shalt Register 📒 - 4. Woohoo, Speaker Highlights 📣 - 5. There Is No Middleware 📬 - 6. Gophers, Too, Get Hungry 🍩 - 7. We Do ML & AI With Go! 📺 - 8. Inside The Wizards’ Room 🚧 - 9. Go Code Even Powers Bike Logistics 🚴 - 10. I Took Notes (Lots Of Them!) 📕 - 11. When Nighttime Falls 🌒 - 12. Breakfast Is Served ☕ - 13. Your Lips Move, But… 👏 - 14. I Inventoried (The Cover Of) My Mac’s Lid… 📈 - 15. The GopherCon Floor 🏄 - 16. We Dive Right Back Into More Awesomeness 🏊 - 17. How Does One Stop A Rhino From Charging? 💳 - 18. Your Blogger Comes To His Senses 😴 - 19. Gulp. The Swallows, Akram, The Swallows 🐝 - 20. Afterword 🎬 Did I say that you all—aka the Gopher community—are amazing? My Best Wishes, Akram <https://programming-digressions.com/> -- You received this message because you are subscribed to the Google Groups "golang-nuts" group. To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/golang-nuts/4072c911-616a-47f4-8af6-a609433a65e8%40googlegroups.com.