ato 2014 - so you think you know 'go'? the go programming language
DESCRIPTION
What’s so special about Go? Why do people swear they’ll never develop in any other language again? You’ve probably heard a lot of the stock answers: concurrency, lightweight syntax, speed, blah, blah. What do these things _mean_ to you as an individual developer, to your code and work output, and to your team and company? Much of Go’s real power is hidden in plain sight, overlooked and unappreciated because it’s too simple to appear significant. I know because I have written a variety of Go code for many different domains, from stats to long-running daemons to API servers and clients. Long after I thought I was good with Go, I continued to experience a-ha moments that made me realize I’m still learning a lot of it. That process continues today. I am not the world’s best programmer in any language, but I’m pretty self-aware, and if you’re anything like me, sharing my experience with you can hopefully help you shortcut the process of ignoring Go’s true power. I also hope that you’ll gain perspective about common complaints, and perhaps understand how serious those things would be for you after using Go for a while.TRANSCRIPT
Presented by John Potocny @ATO 2014
So you think you know ‘Go’?The Go Programming Language
About MeBackend Developer at VividCortex, BCE from Kettering UniversityProgramming Experience: Mainly C#/Java, Embedded C/C++, some Python
Twitter: @JohnPotocny1Email: [email protected]
A Brief History● Created in 2007 by Robert Griesemer, Rob Pike, & Ken Thompson● Developed by Google● Open Source - since Nov 10, 2009 (Public Announcement)● Currently v1.3.3 (Stable)
What Kind of Language is Go?
Language Features
Actually, It’s More Like This
Great Tools Built-In
Compiles Quickly - Native Binary
Garbage Collected
Statically Typed
Interfaces and Composition
Concurrency
What Did Go Get Rid Of?
Remember The Goals!
Enough Chat, Let’s See Some Code!
A “Modern” Hello World
A “Modern” Hello World
How About a Real Example?
How About a Web Server?http://play.golang.org/p/r-__BazPxE
How About a Web Server?http://play.golang.org/p/r-__BazPxE
Or Even:
Server With Limited Connections?http://play.golang.org/p/OMian3YwlD
No Language Is Perfect...
Other Things?
No Generics
Go Has Complex Numbers
Static Types - No Implicit Conversion
Strict Compiler Interrupts Flow
Race Conditions Still Exist
Wait, Go Has ‘goto’!?
Questions?
Thank You!