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. 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
7. Wiki says: 700 (https://en.wikipedia.org/wiki/List_of_programming_languages)
TIOBE says: 250 (https://en.wikipedia.org/wiki/List_of_programming_languages)
How many programming languages are there in the world?
8. If I already know Ruby and JavaScript
Are there any reasons to learn one more?
10. 3 AWS Lambda functions in Go
Golang CoP
Go in Babbel
11. ● 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
13. Released in 2009 in Google
Created by Robert Griesemer, Rob Pike, Ken Thompson
View of history
14. “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
22. Go: The Good Parts
[source https://www.reddit.com/r/ProgrammerHumor/comments/418x95/theory_vs_reality/ ]
23. “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
24. No OOP
No classes, inheritance and polymorphism
[source https://www.reddit.com/r/ProgrammerHumor/comments/418x95/theory_vs_reality/ ]
Go: The Good Parts
25. Still some familiar “objects”
Structs and methods. Polymorphism, Inheritance and whatever you love.
Go: The Good Parts
33. 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
34. My path for learning Go
● Book
● https://play.golang.org/
● Started blogging
● Suggested to have a CoP at work
● Paired with a more Go-experienced colleague on a new Lambda
35. ● My blog (with enough posts to get started with Golang): http://zonov.me/
● Go interactive playground: https://play.golang.org/
● Succinct and readable book, “Introducing Go”:
https://www.amazon.com/Introducing-Go-Reliable-Scalable-Programs-
ebook/dp/B01AB3G496
● Good bye, OOP: https://medium.com/@cscalfani/goodbye-object-oriented-
programming-a59cda4c0e53
● TIOBE Index: https://www.tiobe.com/tiobe-index/
● Udemy course: https://www.udemy.com/go-the-complete-developers-guide/
Links
36. ● Josephine Wright
● Gleb Sinyavsky
● Fabian Lindenberg
● And to my wife, Kseniia Antipina, for support ^__^
Special thanks to
It is my second time here and the community is very welcoming and warm. Probably any community is warm these days, just because the weather, but the benevolence is really important, especially when you’re presenting such topic. Go for Rubyists.
Everything is terrible,especially the quality of this gif.
No meta programming. You will never have to argue with your colleagues anymore, explaining them, why not to use metaprogramming in the code