Goisanoptionallanguagereleasedin2012(ItdoesnotforceyoutouseitlikeJavaforAndroidorObj-CforiOS)
Whyisitpopulartoday?
WhoareusingGo?
Google,Facebook,Microsoft,Amazon,Mozilla,Yahoo,eBay,GitHub,Twitter,Dropbox,Docker,MongoDB,Couchbase,Disqus,Basecamp,
CoreOS,CloudFlare,…
https://github.com/golang/go/wiki/GoUsers
Thehardwareisbig andthesoftwareisbig.Therearemanymillionsoflinesofsoftware,withserversmostlyinC++andlotsofJavaandPythonfortheotherpieces.Thousandsofengineersworkonthecode,atthe"head"ofasingletreecomprisingallthesoftware.
https://talks.golang.org/2012/splash.article
2012
ThegoalsoftheGoprojectweretoeliminatetheslownessandclumsiness ofsoftwaredevelopmentatGoogle,andtherebytomaketheprocessmoreproductiveandscalable.Thelanguagewasdesignedbyandforpeoplewhowrite—andreadanddebugandmaintain—largesoftwaresystems.
https://talks.golang.org/2012/splash.article
2012
2011WestartedwithRubyonRails,quicklybuildfirstversion.Attheendof2012,wehad200APIserverswhichserve3000requestspersecondfor60,000mobileapps.
WhenourAPItrafficstartedgrowingfaster,westartedhavingtorapidlyspinupmoredatabasemachines.The“oneprocessperrequest”startedtofallapart.
http://blog.parse.com/learn/how-we-moved-our-api-from-ruby-to-go-and-saved-our-sanity/
2015
AfterrewritingtheEventMachine pushbackendtoGowewentfrom250kconnectionspernodeto1.5millionconnectionspernode.Thetimeittakestorunourfullintegrationtestsuitedroppedfrom25minutesto2minutes.ThetimetodoafullAPIserverdeploywithrollingrestartsdroppedfrom30minutesto3minutes.
http://blog.parse.com/learn/how-we-moved-our-api-from-ruby-to-go-and-saved-our-sanity/
2015
“ThehardestpartoftherewritewasdealingwithalltheundocumentedbehaviorsandmagicalmysterybitsthatyougetwithRailsmiddleware.”
http://blog.parse.com/learn/how-we-moved-our-api-from-ruby-to-go-and-saved-our-sanity/
2015
“WeloveGo.We'vefounditreallyfasttodeploy,reallyeasytoinstrument,reallylightweightandinexpensiveintermsofresources.”
http://blog.parse.com/learn/how-we-moved-our-api-from-ruby-to-go-and-saved-our-sanity/
2015
Weneedtoscaleacompanyfromtheearlydaysof5engineers
to200+engineersasthe businessgrows.
http://jimplush.com/talk/2015/12/19/moving-a-team-from-scala-to-golang/
2015
[ScalaatGravity]Severalofusstartedinvestigatingandwereabletotrackthesourceoftheissue.Theonlyproblemwaswehadnoideawhatthecodewasdoingatfirst.Wecameacrossastrangesymbolwehadn’tseeninourprojectsbefore.Thespaceshipoperator<|*|> .Someonesaidoutloud“whatthehellisthat?”.
http://jimplush.com/talk/2015/12/19/moving-a-team-from-scala-to-golang/
2015
WhileyoucanhaveveryhighperformingsmallteamsgoingwithScala,tryingtogrowandengineeringorganization>50 isanuphillbattle.
OneofGo’sreasonsforexistenceistomakedevelopersmoreproductive.[…] Newdeveloperswe’vehiredarerampedupinweeksvsmonths.
http://jimplush.com/talk/2015/12/19/moving-a-team-from-scala-to-golang/
2015
“Wow,Ireadthroughthat[Go]library onceandIknewexactlywhatitwasdoing,I’vereadtheScala versionofthatlibraryfourtimesandIstillhavenoideawhatitdoes,Icanseewhyyouguyslikeitsomuch”
http://jimplush.com/talk/2015/12/19/moving-a-team-from-scala-to-golang/
2015
Aboutayearago,wedecidedtomigrateourperformance-criticalbackends fromPythontoGotoleveragebetterconcurrencysupportandfasterexecutionspeed.Thiswasamassiveeffort–around200,000linesofGocode–undertakenbyasmallteamofengineers.Atthispoint,wehavesuccessfullymovedmajorpartsofourinfrastructuretoGo.
https://blogs.dropbox.com/tech/2014/07/open-sourcing-our-go-libraries/
2014
Go'slibraryisextensive andeasy toworkwith.
Gogeneratesasingleexecutablethatcanbedistributedtoourclients.There'snocomplexdependencychainorlayoutofsharedlibrariestoworryabout.
https://blog.cloudflare.com/go-at-cloudflare/
2012
1. Staticcompilation2. It’snotC++,notPython,notRuby,notJava3. It’shasgoodasync,low-levelinterface,
extensivelibrary4. “godoc”,“goget”,“gofmt”,“gotest”,“gorun”5. Multi-archbuild
http://www.slideshare.net/jpetazzo/docker-and-go-why-did-we-decide-to-write-docker-in-go
2013
“GofeelsperfectforOpswork.TheerrorhandlingseemstofitsonaturallyintothewayIwanttowritesystemssoftware.Deploymentisreallysimpletoo,whereI’dhavetothinkabouthowtopackageupdeps andconfigureRubyversionsIcannowjustpushanupdatedbinary.”
https://signalvnoise.com/posts/3897-go-at-basecamp
2015
WhenwelaunchedtheCoreOS projectweknewfromtheverybeginningthateverythingwebuiltwouldbewritteninGo.Thiswasnottomakeafashionstatement,butratherGohappenedtobetheperfectplatformforreachingourgoals– tobuildproductsthatmakedistributedcomputingaseasyasinstallingaLinuxdistro.
https://blog.gopheracademy.com/birthday-bash-2014/go-at-coreos/
2014
Goisamazinglystableandawesome.Ican'tbegintolistwhyeverythingaboutitisjustgreat.
https://www.quora.com/Why-did-Koding-switch-from-Node-js-to-Go
2012