SlideShare ist ein Scribd-Unternehmen logo
1 von 37
Downloaden Sie, um offline zu lesen
5/14/2015 Go
http://127.0.0.1:3999/go-why-care/pres.slide#1 1/37
Go
Where it's going and why you should pay attention
14 May 2015
Aaron Schlesinger
Sr. Engineer, Iron.io
5/14/2015 Go
http://127.0.0.1:3999/go-why-care/pres.slide#1 2/37
About Me
Currently a database & backend systems engineer at Iron.io
Writing Go for 1.5 years
Worked on server side and distributed systems for 5 years
Go is my favorite language. I'm most productive and happiest here
5/14/2015 Go
http://127.0.0.1:3999/go-why-care/pres.slide#1 3/37
Today
Why Go is powerful
Why it's important
Why it's worth your attention
5/14/2015 Go
http://127.0.0.1:3999/go-why-care/pres.slide#1 4/37
About Go
A programming language that started at Google. From golang.org(http://golang.org):
Goisanopensourceprogramminglanguagethatmakesiteasytobuildsimple,
reliable,andefficientsoftware.
Very good choice for:
Cloud & microservices
Web servers
Systems utilities
Databases
Monitoring tools
5/14/2015 Go
http://127.0.0.1:3999/go-why-care/pres.slide#1 5/37
Why Go?
Efficient runtime
Simple & powerful primitives
Extremely productive
Great tools
Fun
5/14/2015 Go
http://127.0.0.1:3999/go-why-care/pres.slide#1 6/37
Simple program
packagemain
import"fmt"
constnumIters=10
funcmain(){
fori:=0;i<numIters;i++{
fmt.Printf("HiGophers!(#%d)n",i+1)
}
} Run
5/14/2015 Go
http://127.0.0.1:3999/go-why-care/pres.slide#1 7/37
Simple (concurrent) program
packagemain
import(
"fmt"
"sync"
)
constnumIters=10
funcprintHello(iterNumint,wg*sync.WaitGroup){
deferwg.Done()
fmt.Printf("HiGophers!(#%d)n",iterNum+1)
}
funcmain(){
varwgsync.WaitGroup
fori:=0;i<numIters;i++{
wg.Add(1)
goprintHello(i,&wg)
}
wg.Wait()
} Run
5/14/2015 Go
http://127.0.0.1:3999/go-why-care/pres.slide#1 8/37
Concurrency
It's built into the language. I believe this is the #1 most powerful feature of Go.
You define concurrent units of execution inside goroutines (concurrently executing
functions)
Goroutines can communicate & synchronize using channels
You write your programs as if they do blocking I/O
Applications use all cores
5/14/2015 Go
http://127.0.0.1:3999/go-why-care/pres.slide#1 9/37
Concurrency details
Goroutines have dynamically sized stacks
Runtime multiplexes your Goroutines onto threads
Runtime automatically context switches for you on I/O, etc...
5/14/2015 Go
http://127.0.0.1:3999/go-why-care/pres.slide#1 10/37
The current state of Go
Real Go programs are in production at Google, Square, The New York Times, Github,
Digital Ocean, Iron.io and many more.
Active & growing community
Core team focuses mostly on perf & tools
Very few new lang features
"The Go Way"
5/14/2015 Go
http://127.0.0.1:3999/go-why-care/pres.slide#1 11/37
My predictions
Go's usage will steadily grow
More high profile open source projects will be written in Go
Go will be the best language for cloud computing environments
Go will be the default stack for many new software businesses
Other programing languages will need to improve to:
Keep pace with growing cloud computing requirements
Compete with Go
5/14/2015 Go
http://127.0.0.1:3999/go-why-care/pres.slide#1 12/37
Evidence
I will present evidence for the following:
Why Go's adoption will grow
Why Go is the right choice for large scale applications today
5/14/2015 Go
http://127.0.0.1:3999/go-why-care/pres.slide#1 13/37
Adoption
Why the Go developer base will grow.
5/14/2015 Go
http://127.0.0.1:3999/go-why-care/pres.slide#1 14/37
1. Buzz
Before a programmer chooses Go, he/she will probably hear about it primarily via blog
posts, articles or word-of-mouth (conferences, meetups, friends).
Many developers of all experience levels are writing and reading about Go today.
5/14/2015 Go
http://127.0.0.1:3999/go-why-care/pres.slide#1 15/37
1.1. Example
Travis Reeder, co-founder of Iron.io posted about his experience replacing existing
software with Go.
blog.iron.io/2013/03/how-we-went-from-30-servers-to-2-go.html(http://blog.iron.io/2013/03/how-we-went-
from-30-servers-to-2-go.html)
To date, it is one of Iron's most popular blog posts. It generated a large discussion on
Hacker News.
news.ycombinator.com/item?id=5365096(https://news.ycombinator.com/item?id=5365096)
Similarly, there is significant, growing interest (and debate) around Go in the
community at large.
5/14/2015 Go
http://127.0.0.1:3999/go-why-care/pres.slide#1 16/37
2. First line of code
Anybody can try Go by going to play.golang.org(http://play.golang.org).
There are no other requisite steps to execute Go code.
5/14/2015 Go
http://127.0.0.1:3999/go-why-care/pres.slide#1 17/37
3. Installing Go
Setup for non-trivial development requires the following steps:
Create and setup your GOPATH
Download the go binary to your executable path
This process is by far the simplest I have encountered across any language. Go makes
an excellent first impression.
5/14/2015 Go
http://127.0.0.1:3999/go-why-care/pres.slide#1 18/37
4. Toolchain
The toolchain is encapsulated in a single binary. That binary contains all of the tools a
first time Go programmer will need to start building and running programs.
It scales to large codebases too. I generally use only 1 additional tool in my everyday
development.
5/14/2015 Go
http://127.0.0.1:3999/go-why-care/pres.slide#1 19/37
5. Dev/test workflow
The language and compiler were designed to compile code quickly and they deliver.
Fast compilation enables an efficient local edit/test workflow
Fast compilation enables significant developer efficiency advantages
Additionally, build/test/deploy pipelines can complete their tasks significantly faster
5/14/2015 Go
http://127.0.0.1:3999/go-why-care/pres.slide#1 20/37
6. Everyday development
Go enables developers to write better code faster.
The language is simple (25 keywords) but powerful. Developers focus more on
semantics, less on syntax
Documentation is accessible, centralized and well organized. See godoc.org(http://godoc.org)
Industrial grade static checking is built into the standard toolchain
Go programs are statically linked. Developers run their programs locally with no
external dependencies
5/14/2015 Go
http://127.0.0.1:3999/go-why-care/pres.slide#1 21/37
7. Extensibility
The Go toolchain's feature set will grow primarily because the language is so simple
and powerful.
For example:
There's a Go parser built into the standard library. Developers in the community have
used this feature to quickly build high quality code generation tools, new static
checkers, etc...
5/14/2015 Go
http://127.0.0.1:3999/go-why-care/pres.slide#1 22/37
8. Packaging
Go includes a simple packaging scheme:
The toolchain installs a dependency by downloading the code and compiling it into
your program
Packages can be hosted on major source code repositories or any server that
follows a simple HTTP request protocol
Go packaging is criticized a lot. The community has built many tools to make it more
robust, but its simplicity enables an extremely low friction release process.
5/14/2015 Go
http://127.0.0.1:3999/go-why-care/pres.slide#1 23/37
Suitability for cloud & microservices environments
Why Go is here to stay.
5/14/2015 Go
http://127.0.0.1:3999/go-why-care/pres.slide#1 24/37
1. Deployment
The following key features make Go programs very easy to deploy in multiple
scenarios
The Go compiler statically links its output binaries
Go binaries require no runtime/interpreter on the target. All necessary runtime
components are compiled into the binary
The Go toolchain can cross compile programs. A developer on a Mac OS X machine
can compile for a Linux target platform, for example
5/14/2015 Go
http://127.0.0.1:3999/go-why-care/pres.slide#1 25/37
1.1. Deploying a web application
Statically linked binaries with no external dependencies (except libc if linux target) are
much easier to deploy than dynamically linked binaries or JVM applications.
Engineers won't choose Go for this feature, but they appreciate it after they do.
5/14/2015 Go
http://127.0.0.1:3999/go-why-care/pres.slide#1 26/37
1.2. Deploying a CLI application
Some developers are beginning to use Go for CLI applications as well. Cross compiling
and static linking are both extremely important in this scenario.
Go allows CLI developers to ship a single binary without writing detailed install
instructions or worrying about dependencies on the user's machine.
5/14/2015 Go
http://127.0.0.1:3999/go-why-care/pres.slide#1 27/37
2. Concurrency & I/O
Modern web and CLI applications alike often need to do complex I/O.
Web apps, for example, often need to interact with multiple 3rd party APIs which may
fail independently.
Go has concurrency & I/O features that enable robust applications:
Runtime-managed goroutines
Built in, typed channels for cross-goroutine communication and synchronization
select statements for doing complex operations on multiple goroutines
ability to timeout on a channel send or recv
automatic context switching on I/O syscalls
make it work, make it right, make it fast
5/14/2015 Go
http://127.0.0.1:3999/go-why-care/pres.slide#1 28/37
2.1. Concurrency example - access a shared external resource
packagemain
import"math/rand"
funcmain(){
sigs:=make([]chanint,10)
fori:=0;i<10;i++{
sigs[i]=make(chanint)
gofunc(nint,sigchanint){
for{
<-sig
sig<-n+rand.Int()
}
}(i,sigs[i])
}
fori:=0;i<100;i++{
sigs[i%10]<-0
println("gotresourceresult",<-sigs[i%10])
}
} Run
5/14/2015 Go
http://127.0.0.1:3999/go-why-care/pres.slide#1 29/37
2.2. Concurrency example - timeout
packagemain
import(
"fmt"
"time"
)
funcmain(){
ch:=make(chanstring)
gofunc(){
time.Sleep(1*time.Second)
ch<-"goroutine1"
}()
select{
casestr:=<-ch:
fmt.Println("gotstring",str)
case<-time.After(100*time.Millisecond):
fmt.Println("timedoutongoroutine1")
}
} Run
5/14/2015 Go
http://127.0.0.1:3999/go-why-care/pres.slide#1 30/37
2.3. That was just a single I/O
Didn't cover
Concurrent CPU utilization
(De)multiplexing I/O
Fan-in / fan-out & pipelines
Long Tail Patterns (e.g. first one wins)
...
5/14/2015 Go
http://127.0.0.1:3999/go-why-care/pres.slide#1 31/37
In summary
Go is a new, exciting and growing language
It's very mature for its age
Today it's being adopted primarily in systems niches
It will expand to be the de facto standard for web scale applications
5/14/2015 Go
http://127.0.0.1:3999/go-why-care/pres.slide#1 32/37
Challenge to new Gophers
Go to http://bit.ly/1Et4O7x(http://bit.ly/1B09b3F)
Write your solution at play.golang.org(http://play.golang.org)
Click "Share" at the top and send the link to arschles@gmail.com
I will respond with feedback and we can discuss
5/14/2015 Go
http://127.0.0.1:3999/go-why-care/pres.slide#1 33/37
Existing Gophers
Send me a code snippet (arschles@gmail.com) of the most complex concurrent Go
code you've seen.
I want to discuss how you'd make it better.
5/14/2015 Go
http://127.0.0.1:3999/go-why-care/pres.slide#1 34/37
Companies using Go
Iron.io(http://iron.io/)
CoreOS(https://coreos.com/)
InfluxDB(http://influxdb.com/)
Docker(https://www.docker.com/)
Hashicorp(https://hashicorp.com/)
Walmart Labs(http://walmartlabs.com)
Cloudflare(http://cloudflare.com)
Google(http://google.com)(of course)
5/14/2015 Go
http://127.0.0.1:3999/go-why-care/pres.slide#1 35/37
Major open source projects written in Go
NSQ(https://github.com/bitly/nsq)
Kubernetes(https://github.com/GoogleCloudPlatform/kubernetes)
Terraform(https://github.com/hashicorp/terraform)
Packer(https://github.com/mitchellh/packer)
Docker(https://github.com/docker/docker)
Vulcand(https://github.com/mailgun/vulcand)
5/14/2015 Go
http://127.0.0.1:3999/go-why-care/pres.slide#1 36/37
Thank you
Aaron Schlesinger
Sr. Engineer, Iron.io
arschles@gmail.com(mailto:arschles@gmail.com)
http://github.com/arschles(http://github.com/arschles)
http://iron.io(http://iron.io)
@arschles(http://twitter.com/arschles)
5/14/2015 Go
http://127.0.0.1:3999/go-why-care/pres.slide#1 37/37

Weitere ähnliche Inhalte

Was ist angesagt?

Was ist angesagt? (20)

Golang and Eco-System Introduction / Overview
Golang and Eco-System Introduction / OverviewGolang and Eco-System Introduction / Overview
Golang and Eco-System Introduction / Overview
 
Golang - Overview of Go (golang) Language
Golang - Overview of Go (golang) LanguageGolang - Overview of Go (golang) Language
Golang - Overview of Go (golang) Language
 
Golang 101
Golang 101Golang 101
Golang 101
 
Go Programming Language by Google
Go Programming Language by GoogleGo Programming Language by Google
Go Programming Language by Google
 
Go Programming Language (Golang)
Go Programming Language (Golang)Go Programming Language (Golang)
Go Programming Language (Golang)
 
Go Language presentation
Go Language presentationGo Language presentation
Go Language presentation
 
Go lang
Go langGo lang
Go lang
 
Golang
GolangGolang
Golang
 
Golang (Go Programming Language)
Golang (Go Programming Language)Golang (Go Programming Language)
Golang (Go Programming Language)
 
Go Lang Tutorial
Go Lang TutorialGo Lang Tutorial
Go Lang Tutorial
 
Introduction to go language programming
Introduction to go language programmingIntroduction to go language programming
Introduction to go language programming
 
GO programming language
GO programming languageGO programming language
GO programming language
 
Introduction to Go programming language
Introduction to Go programming languageIntroduction to Go programming language
Introduction to Go programming language
 
Golang getting started
Golang getting startedGolang getting started
Golang getting started
 
Introduction to Go language
Introduction to Go languageIntroduction to Go language
Introduction to Go language
 
GoLang Introduction
GoLang IntroductionGoLang Introduction
GoLang Introduction
 
Go Concurrency
Go ConcurrencyGo Concurrency
Go Concurrency
 
Write microservice in golang
Write microservice in golangWrite microservice in golang
Write microservice in golang
 
Concurrency With Go
Concurrency With GoConcurrency With Go
Concurrency With Go
 
Golang workshop
Golang workshopGolang workshop
Golang workshop
 

Andere mochten auch (7)

Golang
GolangGolang
Golang
 
An introduction to go programming language
An introduction to go programming languageAn introduction to go programming language
An introduction to go programming language
 
Go lang introduction
Go lang introductionGo lang introduction
Go lang introduction
 
Google Go! language
Google Go! languageGoogle Go! language
Google Go! language
 
Introduction to Go-Lang
Introduction to Go-LangIntroduction to Go-Lang
Introduction to Go-Lang
 
10 reasons to be excited about go
10 reasons to be excited about go10 reasons to be excited about go
10 reasons to be excited about go
 
Boosting Machine Learning with Redis Modules and Spark
Boosting Machine Learning with Redis Modules and SparkBoosting Machine Learning with Redis Modules and Spark
Boosting Machine Learning with Redis Modules and Spark
 

Ähnlich wie Why you should care about Go (Golang)

Ähnlich wie Why you should care about Go (Golang) (20)

Go - Where it's going and why you should pay attention.
Go - Where it's going and why you should pay attention.Go - Where it's going and why you should pay attention.
Go - Where it's going and why you should pay attention.
 
Expert Days: The VP R&D Open Seminar: Project Management
Expert Days: The VP R&D Open Seminar: Project ManagementExpert Days: The VP R&D Open Seminar: Project Management
Expert Days: The VP R&D Open Seminar: Project Management
 
Shining a light on performance (js meetup)
Shining a light on performance (js meetup)Shining a light on performance (js meetup)
Shining a light on performance (js meetup)
 
Introduction to Go
Introduction to GoIntroduction to Go
Introduction to Go
 
[IJCT-V3I2P36] Authors: Amarbir Singh
[IJCT-V3I2P36] Authors: Amarbir Singh[IJCT-V3I2P36] Authors: Amarbir Singh
[IJCT-V3I2P36] Authors: Amarbir Singh
 
Web components and Package managers
Web components and Package managersWeb components and Package managers
Web components and Package managers
 
Using Mass Edit Tables to Ease User Frustration
Using Mass Edit Tables to Ease User FrustrationUsing Mass Edit Tables to Ease User Frustration
Using Mass Edit Tables to Ease User Frustration
 
Why is .Net Technology Recognised for Software Development?
Why is .Net Technology Recognised for Software Development?Why is .Net Technology Recognised for Software Development?
Why is .Net Technology Recognised for Software Development?
 
Scaling applications with go
Scaling applications with goScaling applications with go
Scaling applications with go
 
Why is .Net Technology Recognised for Software Development?
Why is .Net Technology Recognised for Software Development?Why is .Net Technology Recognised for Software Development?
Why is .Net Technology Recognised for Software Development?
 
OpenNTF Webinar 05/07/13: OpenNTF - The IBM Collaboration Solutions App Dev C...
OpenNTF Webinar 05/07/13: OpenNTF - The IBM Collaboration Solutions App Dev C...OpenNTF Webinar 05/07/13: OpenNTF - The IBM Collaboration Solutions App Dev C...
OpenNTF Webinar 05/07/13: OpenNTF - The IBM Collaboration Solutions App Dev C...
 
Presentation_2014.10.28
Presentation_2014.10.28Presentation_2014.10.28
Presentation_2014.10.28
 
WCEU 2019 recap - AMP Plugin 1.2 and Gutenberg 6.0
WCEU 2019 recap - AMP Plugin 1.2 and Gutenberg 6.0WCEU 2019 recap - AMP Plugin 1.2 and Gutenberg 6.0
WCEU 2019 recap - AMP Plugin 1.2 and Gutenberg 6.0
 
Ensure Optimal Performance and Scalability: Implementing a Robust and Reliabl...
Ensure Optimal Performance and Scalability: Implementing a Robust and Reliabl...Ensure Optimal Performance and Scalability: Implementing a Robust and Reliabl...
Ensure Optimal Performance and Scalability: Implementing a Robust and Reliabl...
 
mca online self
mca online selfmca online self
mca online self
 
The advantages and disadvantages of .net framework programming
The advantages and disadvantages of .net framework programmingThe advantages and disadvantages of .net framework programming
The advantages and disadvantages of .net framework programming
 
Dev ops intro
Dev ops introDev ops intro
Dev ops intro
 
Iterating For Success: A Case Study in Remote Paired Programming, The Evoluti...
Iterating For Success: A Case Study in Remote Paired Programming, The Evoluti...Iterating For Success: A Case Study in Remote Paired Programming, The Evoluti...
Iterating For Success: A Case Study in Remote Paired Programming, The Evoluti...
 
Advantages of golang development services &amp; 10 most used go frameworks
Advantages of golang development services &amp; 10 most used go frameworksAdvantages of golang development services &amp; 10 most used go frameworks
Advantages of golang development services &amp; 10 most used go frameworks
 
“Full-stack developer: з чого розпочати кар’єру?”
 “Full-stack developer: з чого розпочати кар’єру?”  “Full-stack developer: з чого розпочати кар’єру?”
“Full-stack developer: з чого розпочати кар’єру?”
 

Kürzlich hochgeladen

The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is inside
shinachiaurasa2
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
mohitmore19
 

Kürzlich hochgeladen (20)

AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park %in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
BUS PASS MANGEMENT SYSTEM USING PHP.pptx
BUS PASS MANGEMENT SYSTEM USING PHP.pptxBUS PASS MANGEMENT SYSTEM USING PHP.pptx
BUS PASS MANGEMENT SYSTEM USING PHP.pptx
 
LEVEL 5 - SESSION 1 2023 (1).pptx - PDF 123456
LEVEL 5   - SESSION 1 2023 (1).pptx - PDF 123456LEVEL 5   - SESSION 1 2023 (1).pptx - PDF 123456
LEVEL 5 - SESSION 1 2023 (1).pptx - PDF 123456
 
The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is inside
 
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learn
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
Sector 18, Noida Call girls :8448380779 Model Escorts | 100% verified
Sector 18, Noida Call girls :8448380779 Model Escorts | 100% verifiedSector 18, Noida Call girls :8448380779 Model Escorts | 100% verified
Sector 18, Noida Call girls :8448380779 Model Escorts | 100% verified
 
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionIntroducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
 
Pharm-D Biostatistics and Research methodology
Pharm-D Biostatistics and Research methodologyPharm-D Biostatistics and Research methodology
Pharm-D Biostatistics and Research methodology
 
ManageIQ - Sprint 236 Review - Slide Deck
ManageIQ - Sprint 236 Review - Slide DeckManageIQ - Sprint 236 Review - Slide Deck
ManageIQ - Sprint 236 Review - Slide Deck
 
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 

Why you should care about Go (Golang)