34
Presented by John Potocny @ATO 2014 So you think you know ‘Go’? The Go Programming Language

So You Think You Know 'Go'? The Go Programming Language

Embed Size (px)

Citation preview

Page 1: So You Think You Know 'Go'? The Go Programming Language

Presented by John Potocny @ATO 2014

So you think you know ‘Go’?

The Go Programming Language

Page 2: So You Think You Know 'Go'? The Go Programming Language

About Me

Backend Developer at VividCortex, BCE from Kettering University

Programming Experience: Mainly C#/Java, Embedded C/C++, some Python

Twitter: @JohnPotocny1

Email: [email protected]

Page 3: So You Think You Know 'Go'? The Go Programming Language

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)

Page 4: So You Think You Know 'Go'? The Go Programming Language

What Kind of Language is Go?

Page 5: So You Think You Know 'Go'? The Go Programming Language

Language Features

Page 6: So You Think You Know 'Go'? The Go Programming Language

Actually, It’s More Like This

Page 7: So You Think You Know 'Go'? The Go Programming Language

Great Tools Built-In

Page 8: So You Think You Know 'Go'? The Go Programming Language

Compiles Quickly - Native Binary

Page 9: So You Think You Know 'Go'? The Go Programming Language

Garbage Collected

Page 10: So You Think You Know 'Go'? The Go Programming Language

Statically Typed

Page 11: So You Think You Know 'Go'? The Go Programming Language

Interfaces and Composition

Page 12: So You Think You Know 'Go'? The Go Programming Language

Concurrency

Page 13: So You Think You Know 'Go'? The Go Programming Language

What Did Go Get Rid Of?

Page 14: So You Think You Know 'Go'? The Go Programming Language

Remember The Goals!

Page 15: So You Think You Know 'Go'? The Go Programming Language

Enough Chat, Let’s See Some Code!

Page 16: So You Think You Know 'Go'? The Go Programming Language

A “Modern” Hello World

Page 17: So You Think You Know 'Go'? The Go Programming Language

A “Modern” Hello World

Page 18: So You Think You Know 'Go'? The Go Programming Language

How About a Real Example?

Page 19: So You Think You Know 'Go'? The Go Programming Language

How About a Web Server?

http://play.golang.org/p/r-__BazPxE

Page 20: So You Think You Know 'Go'? The Go Programming Language

How About a Web Server?

http://play.golang.org/p/r-__BazPxE

Or Even:

Page 21: So You Think You Know 'Go'? The Go Programming Language

Server With Limited Connections?

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

Page 22: So You Think You Know 'Go'? The Go Programming Language

No Language Is Perfect...

Page 23: So You Think You Know 'Go'? The Go Programming Language

A Fun Example

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

Page 24: So You Think You Know 'Go'? The Go Programming Language

Other Things?

Page 25: So You Think You Know 'Go'? The Go Programming Language

No Generics

Page 26: So You Think You Know 'Go'? The Go Programming Language

Go Has Complex Numbers

Page 27: So You Think You Know 'Go'? The Go Programming Language

Static Types - No Implicit Conversion

Page 28: So You Think You Know 'Go'? The Go Programming Language
Page 29: So You Think You Know 'Go'? The Go Programming Language

Strict Compiler Interrupts Flow

Page 30: So You Think You Know 'Go'? The Go Programming Language

Race Conditions Still Exist

Page 31: So You Think You Know 'Go'? The Go Programming Language

Wait, Go Has ‘goto’!?

Page 32: So You Think You Know 'Go'? The Go Programming Language

Other Fun Keywords

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

Page 33: So You Think You Know 'Go'? The Go Programming Language

Questions?

Page 34: So You Think You Know 'Go'? The Go Programming Language

Thank You!