Your SlideShare is downloading. ×
Golang nuts (by Nii Nai at DevCongress 2013)
Upcoming SlideShare
Loading in...5

Thanks for flagging this SlideShare!

Oops! An error has occurred.


Saving this for later?

Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime - even offline.

Text the download link to your phone

Standard text messaging rates apply

Golang nuts (by Nii Nai at DevCongress 2013)


Published on

A tech talk on Golang nuts, delivered by Nii Nai at DevCongress 2013.

A tech talk on Golang nuts, delivered by Nii Nai at DevCongress 2013.

Published in: Technology

  • Be the first to comment

No Downloads
Total Views
On Slideshare
From Embeds
Number of Embeds
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

No notes for slide


  • 1. Golang-nuts Nii Nai Esoko
  • 2. Introduction
  • 3. Who? Rob Pike Robert Griesemer Ken Thompson
  • 4. What is Go? Unix philosophy + Systems Language = Statically-typed language that feels dynamic, reads simple and is clean
  • 5. Axioms
  • 6. Simple Clean, concise syntax. Lightweight type system makes for fun. Have your cake and eat it. Who says you can't?
  • 7. Orthogonal A few orthogonal features works better than a lot of overlapping ones. No bloat.
  • 8. Readable Source code should make sense with little context.
  • 9. Fast builds Achieves really fast build time by explicitly specifying dependencies.
  • 10. Features
  • 11. ● Statically-typed ● Compiled ● Type-safe and memory-safe ● Garbage collected ● Concurrent from inception ● Built for the web ● Support for functional programming ● Object oriented ● Explicit dependency
  • 12. Demo: hello world
  • 13. I Loves
  • 14. Simple type system Go is statically-typed, but inference saves a lot of repetition.
  • 15. Date Working with dates was a different and awe inspiring experience. Talk about simple All you have to do: ● specify incoming format ● call Parse
  • 16. Multiple returns Used heavily in the go standard library to return error states for error checking.
  • 17. Packaging Go code lives in packages. Packages contain type, function, variable, and constant declarations. Case determines visibility: Foo is exported, foo is not.
  • 18. Duck typing Walks like a duck and swims like a duck and quacks like a duck, I call that a duck.
  • 19. Stuttering ... I don’t miss this, not at all.
  • 20. argsv Working with command line arguments just got easy.
  • 21. Concurrency primitives *nix: find ~/sources/weather | grep loc.go | xargs wc -l Go equivalent: goroutines connected by channels Philosophy: “Don’t communicate by sharing memory. Instead, share memory by communicating.”
  • 22. Killer tools ● gofmt ● godoc ● present ● play ● go get ● gofix
  • 23. Eccentric Simply put idol worshipping on my part.
  • 24. And Go has pointers
  • 25. Esoko & Go
  • 26. Weather Our weather forecast service powered by Go.
  • 27. Check_sms A nagios plugin to check for delivery of Alerts and Price requests powered by Go.
  • 28. Api_benchmark Our Go tool to make requests to the Esoko API checking for status and also providing benchmarking of transactions powered by Go.
  • 29. More information
  • 30. Tour and Tutorials Do not take my word for it, take the tour of Go ● ●
  • 31. Tour and tutorials … continued You may find other talks by the Google Go team interesting ● go get ● go get And more and more youtube videos
  • 32. Tour and tutorials … continued Join the Go community ● golang-nuts google group ● Go+ on Google+ ● @go_nuts at Twitter Check out the Go Blog ●
  • 33. Thank you Nii Nai Esoko @ttousai