13. “For an event that occurs weekly from 7-9pm
on Wednesdays, Fridays (except 3 weeks...) are
five out of ten chairs available along with
three tables to go in the Green room and
make sure Bill approves?”
–Our Customers
23. Free Week - 2013
•
Had been reading up in the intervening year
•
Watched every video I could
•
and then it made sense…
24. RUSH is Born
•
Resource Utilization Service Handler
•
Day 1 - Working Service
•
Day 2 - Accurate Service
•
Week 1 - Production Ready
•
Launched Post Holidays
•
Rock solid.
•
(word play on my favorite band)
25. RUSH Performance
•
100x faster than the heavily cached Ruby
option
•
1,000x faster than Ruby without caching
•
1% of the memory footprint
26.
27. Go turns out to be the best at JSON
…a perfect complement, huzzah :)
29. Why Learn Go?
•
Crazy fast
•
Awesome complement to JS MVC
•
Great service carveout to help an
interpreted language web framework like
Ruby on Rails
32. What is Go?
Go is a new, general-purpose programming language.
33. What is Go?
•
Compiled: compiler makes
runnable binary
•
Statically typed: compiler
checks for a category of
mistakes
•
Concurrent: easy composition
of processes, (may be
simultaneously executed)
•
Garbage Collected: runtime
release of no longer used
memory
•
Simple: as classically defined :)
35. Rob Pike
Bell Labs
Unix team
created Plan 9/Inferno os
co-author with Kernighan
(Unix Programming
Environment)
co-creator of UTF-8 (with
Ken)
image cc by-sa 3.0 chlor at en.wikipedia.org
54. Multicore/Concurrency
•
Concurrency through CSPstyle processes called go
routines
•
1978 CSP by Sir Tony Hoare
•
M:N runtime mapping of
green threads to system
threads
•
“Do not communicate by
sharing memory, instead
share memory by
communicating” - Pike
image by Rama cc by-sa 2.0-fr at en.wikipedia.org
57. The Internet Age
•
Go ships with a “batteries included”
standard library
•
For instance, net/http
•
Instead of frameworks to pick up the slack,
the std-lib has most of what you need