Let's Go(Lang) !
by @yrezgui
![](https://s3.amazonaws.com/media-p.slid.es/uploads/46223/images/2745936/riviera-dev.png)
Who am I ?
Yacine Rezgui — @yrezgui
French-Tunisian
Developer Evangelist
IBM Watson
#TrollMoment
![](https://s3.amazonaws.com/media-p.slid.es/uploads/46223/images/2753422/Screen_Shot_2016-06-05_at_08.58.18.png)
#TrollMoment
![](https://s3.amazonaws.com/media-p.slid.es/uploads/46223/images/2753423/Screen_Shot_2016-06-05_at_08.43.31.png)
Which one?
![](https://s3.amazonaws.com/media-p.slid.es/uploads/46223/images/2753575/languages.png)
PHP
- Huge community
- All CMS are using it
- Big pool of talents
- Hosting
- Lot of security issues
- Apache is a black box
- Language design
Node.JS
- Everyone knows JavaScript
- Big hype
- Fast and simple
- Lot of tools
- Callback hell
- Instability with community packages
- Not typed (need TypeScript or Flow)
Java
- Performant
- Good for heavy tasks
- Verbose
- Resource consumption
- Good standard library
Python
- Simple to start
- Native support on Unix system
- Good for scripting and analytics
- Python 2/3 problem
Current languages are not good...Solution ?
![](https://s3.amazonaws.com/media-p.slid.es/uploads/46223/images/2754807/damn.png)
What about Go ?
Golang feels like a scripting language, but with the elegance and speed of C.
Golang
- Designed at Google in 2007
- Open Sourced in 2009
- Stable since 2012
- Designed to scale to 10⁶⁺ machines
- Statically typed
- Scalable to large systems
Simplified language
- No classes
- No inheritance
- No constructors
- No final
- No exceptions
- No annotations
![](http://i.giphy.com/ToMjGpx9F5ktZw8qPUQ.gif)
You can choose between Script or binary
![](https://s3.amazonaws.com/media-p.slid.es/uploads/46223/images/2754770/mind_blown.gif)
Projects created with Go
- Docker
- Kubernetes
- Etcd
- Fleet
- InfluxDB
- CockroachDB
- Cayley
- Ngrok
- Websocketd
- Git-lfs
- Tile38
- Parse CLI
- Heroku CLI
Who use it ?
- Aerospike
- BBC Worldwide
- Bitbucket
- Booking.com
- Cloudflare
- Datadog
- Digital Ocean
- Dropbox
- Getty Images
- GitHub
- Shutterfly
- SmugMug
- SoundCloud
- SpaceX
- Square
- Stack Exchange
- Tumblr
- Twitch
- Uber
- VMWare
- GOV.UK
- Heroku
- IBM
- Intel
- Iron.io
- Medium
- Mozilla services
- Netflix
- New York Times
- pool.ntp.org
- Rackspace
Our first script
package main
import "fmt"
const g string = "constant"
func main() {
var a string = "initial"
fmt.Println(a)
var b, c int = 1, 2
fmt.Println(b, c)
var d = true
fmt.Println(d)
var e int
fmt.Println(e)
f := "short"
fmt.Println(f + " " + g)
}
Time for serious business...
![](https://s3.amazonaws.com/media-p.slid.es/uploads/46223/images/2755574/J7jsbfcJ2O5eo.gif)
IBM Watson
![](https://s3.amazonaws.com/media-p.slid.es/uploads/46223/images/2375364/IBM_Watson_avatar_simple_2color.png)
Cognitive APIs
Live coding time!
![](https://s3.amazonaws.com/media-p.slid.es/uploads/yacinerezgui/images/237950/Shut-up-and-take-my-money.jpg)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/46223/images/2499537/download__4_.jpeg)
Read more
@yrezgui
Follow me on Twitter
Hands on with Golang
By Yacine Rezgui
Hands on with Golang
- 1,786