ato 2014 - so you think you know 'go'? the go programming language

Post on 27-Jun-2015

299 Views

Category:

Software

1 Downloads

Preview:

Click to see full reader

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: johnp@vividcortex.com

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...

A Fun Example

http://play.golang.org/p/kPFCYuNTTG

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’!?

Other Fun Keywords

Proof: http://play.golang.org/p/dFBcMMHq0a

Questions?

Thank You!

top related