Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Go for Rubyists. August 2018. RUG-B Meetup


Published on

My blog:
Slides from Ruby User Group meetup with WTFs and Gotchas I had after started using Go as more than a play-around language.

Published in: Engineering
  • Login to see the comments

  • Be the first to like this

Go for Rubyists. August 2018. RUG-B Meetup

  1. 1. Go for Rubyists Should I leave my cozy haven?
  2. 2. Kirill Zonov Backend & infrastructure engineer Working mostly with Ruby on a daily basis Got feet wet with Go, Python, Elixir, Clojure, Swift Serverless and modular architecture admirer About me
  3. 3. 600 employees Team members from 50 countries 60 engineers Backend: Ruby and NodeJS widely, Java and Python occur sometimes Frontend: React.js About the company
  4. 4. Berlin loves orange
  5. 5. How many programming languages are there in the world?
  6. 6. Wiki says: 700 ( TIOBE says: 250 ( How many programming languages are there in the world?
  7. 7. If I already know Ruby and JavaScript Are there any reasons to learn one more?
  8. 8. Let’s find out!
  9. 9. 3 AWS Lambda functions in Go Golang CoP Go in Babbel
  10. 10. ● Friends telling how awesome and clean it is ● Conferences talks when people migrated from Ruby (Rails) to Go ● Wanted to experience type safety ● Wanted to write code, which will be faster ● AWS released Go support for Lambdas Why I started looking at Go
  11. 11. Get to the point!
  12. 12. Released in 2009 in Google Created by Robert Griesemer, Rob Pike, Ken Thompson View of history
  13. 13. “One had to choose either efficient compilation, efficient execution, or ease of programming; all three were not available in the same mainstream language. Programmers who could were choosing ease over safety and efficiency by moving to dynamically typed languages such as Python and JavaScript rather than C++ or, to a lesser extent, Java.” The Quote
  14. 14. Go: The Bad Parts
  15. 15. Syntax of Go
  16. 16. No syntactic sugar Go: The Bad Parts
  17. 17. Error handling system Go: The Bad Parts
  18. 18. No OOP No classes, inheritance and polymorphism Go: The Bad Parts
  19. 19. Go: The Good Parts
  20. 20. Go: The Good Parts [source ]
  21. 21. “The problem with object-oriented languages is they’ve got all this implicit environment that they carry around with them. You wanted a banana but what you got was a gorilla holding the banana and the entire jungle.” - Joe Armstrong Go: The Good Parts
  22. 22. No OOP No classes, inheritance and polymorphism [source ] Go: The Good Parts
  23. 23. Still some familiar “objects” Structs and methods. Polymorphism, Inheritance and whatever you love. Go: The Good Parts
  24. 24. Interfaces Go: The Good Parts
  25. 25. Go: The Good Parts
  26. 26. Go: The Good Parts No meta programming
  27. 27. Go: The Good Parts Just no magic Easy to understand
  28. 28. Lightweight concurrency with goroutines and channels Go: The Good Parts
  29. 29. Concurrency model
  30. 30. Ease of provisioning Go: The Good Parts
  31. 31. 1. Statically typed 2. Less magic 3. No meta programming 4. Good concurrency 5. Easier provisioning 6. More difficult to write terrible code Recap of reasons why to Go
  32. 32. My path for learning Go ● Book ● ● Started blogging ● Suggested to have a CoP at work ● Paired with a more Go-experienced colleague on a new Lambda
  33. 33. ● My blog (with enough posts to get started with Golang): ● Go interactive playground: ● Succinct and readable book, “Introducing Go”: ebook/dp/B01AB3G496 ● Good bye, OOP: programming-a59cda4c0e53 ● TIOBE Index: ● Udemy course: Links
  34. 34. ● Josephine Wright ● Gleb Sinyavsky ● Fabian Lindenberg ● And to my wife, Kseniia Antipina, for support ^__^ Special thanks to
  35. 35. Kirill Zonov (, Twitter: @kzonov Thank you