SlideShare uma empresa Scribd logo
1 de 140
The Why of Go21st Century Programming Languages Track, Qcon SF
Carmen Andoh
InfoQ.com: News & Community Site
‱ Over 1,000,000 software developers, architects and CTOs read the site world-
wide every month
‱ 250,000 senior developers subscribe to our weekly newsletter
‱ Published in 4 languages (English, Chinese, Japanese and Brazilian
Portuguese)
‱ Post content from our QCon conferences
‱ 2 dedicated podcast channels: The InfoQ Podcast, with a focus on
Architecture and The Engineering Culture Podcast, with a focus on building
‱ 96 deep dives on innovative topics packed as downloadable emags and
minibooks
‱ Over 40 new content items per week
Watch the video with slide
synchronization on InfoQ.com!
https://www.infoq.com/presentations/
go-concurrency-gc
Purpose of QCon
- to empower software development by facilitating the spread of
knowledge and innovation
Strategy
- practitioner-driven conference designed for YOU: influencers of
change and innovation in your teams
- speakers and topics driving the evolution and innovation
- connecting and catalyzing the influencers and innovators
Highlights
- attended by more than 12,000 delegates since 2007
- held in 9 cities worldwide
Presented at QCon San Francisco
www.qconsf.com
1983
● Dave Cheney
● Alan Donovan
● Steve Francia
● JĂ©rĂŽme Pettazoni
Thank you, fellow time travelers from the Future
Back to 1983 
 (from 1985, but whetev, 80s rule)
Genealogy of Programming Languages
1956-1983
You
are
here
Genealogy of
Programming
Languages
1956-2015
You
are
here
Genealogy of
Programming
Languages
1956-2015
GNUGNU’s Not Unix Project
Started in 1983
● too simple / lack of syntactic sugar
● no generics
● bad dependency management
● stuck in 70/80's
● error handling
● no unused imports
● too opinionated
● too verbose
● no ternary operator
● no macros or
templates
https://github.com/ksimka/go-is-not-good
“Go programming language was conceived as an answer to
some of the problems we were seeing developing software
infrastructure at Google. The computing landscape today is
almost unrelated to the environment in which the languages
being used, mostly C++, Java, and Python, had been created.
The problems introduced by multicore processors,
networked systems, massive computation clusters, and
the web programming model were being worked around
rather than addressed head-on.
“Go programming language was conceived as an answer to
some of the problems we were seeing developing software
infrastructure at Google. The computing landscape today is
almost unrelated to the environment in which the languages
being used, mostly C++, Java, and Python, had been created.
The problems introduced by multicore processors,
networked systems, massive computation clusters, and
the web programming model were being worked around
rather than addressed head-on.
“Go programming language was conceived as an answer to
some of the problems we were seeing developing software
infrastructure at Google. The computing landscape today is
almost unrelated to the environment in which the languages
being used, mostly C++, Java, and Python, had been created.
The problems introduced by multicore processors,
networked systems, massive computation clusters, and
the web programming model were being worked around
rather than addressed head-on.
“Go programming language was conceived as an answer to
some of the problems we were seeing developing software
infrastructure at Google. The computing landscape today is
almost unrelated to the environment in which the languages
being used, mostly C++, Java, and Python, had been created.
The problems introduced by multicore processors,
networked systems, massive computation clusters, and
the web programming model were being worked around
rather than addressed head-on.
“Go programming language was conceived as an answer to
some of the problems we were seeing developing software
infrastructure at Google. The computing landscape today is
almost unrelated to the environment in which the languages
being used, mostly C++, Java, and Python, had been created.
The problems introduced by multicore processors,
networked systems, massive computation clusters, and
the web programming model were being worked around
rather than addressed head-on.
Moreover, the scale has changed: today’s server programs
comprise tens of millions of lines of code, are worked on by
hundreds or even thousands of programmers, and are
updated literally every day. To make matters worse, build time
have stretched to many minutes, even hours, even
languages,on large compilation clusters,”
Moreover, the scale has changed: today’s server programs
comprise tens of millions of lines of code, are worked on by
hundreds or even thousands of programmers, and are
updated literally every day. To make matters worse, build time
has stretched to many minutes, even hours, on large
compilation clusters”
Moreover, the scale has changed: today’s server programs
comprise tens of millions of lines of code, are worked on by
hundreds or even thousands of programmers, and are
updated literally every day. To make matters worse, build time
has stretched to many minutes, even hours, on large
compilation clusters”
● multicore processors
● networked systems
● massive computation
clusters
● web programming model
● hundreds or even
thousands of programmers
● large compilation clusters
20172000 2005 201090s80s
Go
20172000 2005 201090s80s
Software|
Languages
Go
20172000 2005 201090s80s
Software|
Languages
Hardware&
Compute
Go
20172000 2005 201090s80s
Software|
Languages
Hardware&
Compute
Context
Go
Hardware&
Compute
Software|
Languages
Context
20172000 2005 201090s80s
Go
UTF-8
Unix
(60s)
C (68-73)
Robert Griesemer, Rob Pike, Ken Thompson
Hardware&
Compute
Software|
Languages
Context
20172000 2005 201090s80s
Go
UTF-8
Unix
(60s)
C (68-73)
Plan 9
OS
Hotspot
JVM
Robert Griesemer, Rob Pike, Ken Thompson
● Concurrency
● Distributed Systems
● Garbage Collection
● Memory Locality
● Readability
Go’s 21st Century Characteristics
20172000 2005 201090s80s
Software|
Languages
Hardware&
Compute
Context
Go
Concurrency
C++ at
Google
20172000 2005 201090s80s
Software|
Languages
Hardware&
Compute
Context
Go
Concurrency
C++ at
Google
C10K
20172000 2005 201090s80s
Software|
Languages
Hardware&
Compute
Context
Go
Concurrency
C++ at
Google
C10K
Epoll
(linux)
Kqueue
(BSD)
20172000 2005 201090s80s
Software|
Languages
Hardware&
Compute
Context
Go
Concurrency
C++ at
Google
C10K
Epoll
(linux)
Kqueue
(BSD)
SEDA
Java NIO
P4
Core 2
20172000 2005 201090s80s
Software|
Languages
Hardware&
Compute
Context
Go
Concurrency
C++ at
Google
C10K
Epoll
(linux)
Kqueue
(BSD)
SEDA
Java NIO
20172000 2005 201090s80s
Software|
Languages
Hardware&
Compute
Context
Go
Concurrency
C++ at
Google
C10K
Epoll
(linux)
Kqueue
(BSD)
SEDA
Java NIO
P4
Core 2
Hardware&
Compute
Software|
Languages
Context
20172000 2005 201090s80s
Go
20172000 2005 201090s80s
Software|
Languages
Hardware&
Compute
Context
Go
Concurrency
C++ at
Google
C10K
Epoll
(linux)
Kqueue
(BSD)
SEDA
Java NIO
P4
Core 2
20172000 2005 201090s80s
Software|
Languages
Hardware&
Compute
Context
Go
Concurrency
C++ at
Google
C10K
Epoll
(linux)
Kqueue
(BSD)
SEDA
Java NIO
P4
Core 2
Ruby
Mongrel
Gunicorn
(Python)
Hardware&
Compute
Software|
Languages
Context
20172000 2005 201090s80s
Go
Hardware&
Compute
Software|
Languages
Context
20172000 2005 201090s80s
Go
Events, Threads and Goroutines
Nginx - event loop plus state machine model
Events, Threads and Goroutines
Nginx - event loop plus state machine model
App logic
Events, Threads and Goroutines
Nginx - event loop plus state machine model
App logic
Events, Threads and Goroutines
Nginx - event loop plus state machine model
App
Events, Threads and Goroutines
Nginx - event loop plus state machine model
App
Events, Threads and Goroutines
Nginx - event loop plus state machine model
App
Events, Threads and Goroutines
Nginx - event loop plus state machine model
App
Events, Threads and Goroutines
Nginx - event loop plus state machine model
App
Events, Threads and Goroutines
Nginx - event loop plus state machine model
App
20172000 2005 201090s80s
Software|
Languages
Hardware&
Compute
Context
Go
Concurrency
C++ at
Google
C10K
Epoll
(linux)
Kqueue
(BSD)
SEDA
Java NIO
P4
Core 2
Ruby
Mongrel
Gunicorn
(Python)
NodeJS
20172000 2005 201090s80s
Software|
Languages
Hardware&
Compute
Context
Go
Concurrency
C++ at
Google
C10K
Epoll
(linux)
Kqueue
(BSD)
SEDA
Java NIO
P4
Core 2
Ruby
Mongrel
Gunicorn
(Python)
NodeJS
20172000 2005 201090s80s
Software|
Languages
Hardware&
Compute
Context
Go
Concurrency
C++ at
Google
C10K
Epoll
(linux)
Kqueue
(BSD)
SEDA
Java NIO
P4
Core 2
Ruby
Mongrel
Gunicorn
(Python)
NodeJS
App
App
= Threads
20172000 2005 201090s80s
Software|
Languages
Hardware&
Compute
Context
Go
Distributed
Systems
C++ at
Google
C10K
Epoll
(linux)
Kqueue
(BSD)
SEDA
Java NIO
P4
Core 2
Ruby
Mongrel
Gunicorn
(Python)
NodeJS
The rise of
containers +
cloud-native+
ecosystem
Microservices
serverless
20172000 2005 201090s80s
Software|
Languages
Hardware&
Compute
Context
Go
Garbage
Collection
C++ at
Google
C10K
Epoll
(linux)
Kqueue
(BSD)
SEDA
Java NIO
P4
Core 2
Ruby
Mongrel
Gunicorn
(Python)
NodeJS
The rise of
containers +
cloud-native+
ecosystem
Microservices
serverless
20172000 2005 201090s80s
Software|
Languages
Hardware&
Compute
Context
Go
Memory
Locality
C++ at
Google
C10K
Epoll
(linux)
Kqueue
(BSD)
SEDA
Java NIO
P4
Core 2
Ruby
Mongrel
Gunicorn
(Python)
NodeJS
The rise of
containers +
cloud-native+
ecosystem
Microservices
serverless
20172000 2005 201090s80s
Software|
Languages
Hardware&
Compute
Context
Go
Memory
Locality
C++ at
Google
C10K
Epoll
(linux)
Kqueue
(BSD)
SEDA
Java NIO
P4
Core 2
Ruby
Mongrel
Gunicorn
(Python)
NodeJS
The rise of
containers +
cloud-native+
ecosystem
Microservices
serverless
Hotspot
JVM
Memory Locality
Memory Locality
Java
Memory Locality
Java
No value types
Everything Allocated
Memory Locality
Java
No value types
Everything Allocated
Go
Memory Locality
Java
No value types
Everything Allocated
Go
Structs
True Value types
Memory Locality
Java
No value types
Everything Allocated
Can’t return multiple values
Go
Structs
True Value types
20172000 2005 201090s80s
Software|
Languages
Hardware&
Compute
Context
Go
Memory
Locality
C++ at
Google
C10K
Epoll
(linux)
Kqueue
(BSD)
SEDA
Java NIO
P4
Core 2
Ruby
Mongrel
Gunicorn
(Python)
NodeJS
The rise of
containers +
cloud-native+
ecosystem
Microservices
serverless
Hotspot
JVM
Go GC
1.8
When the three of us [Ken Thompson, Rob Pike, and Robert
Griesemer] got started, it was pure research. The three of us got
together and decided that we hated C++. [laughter] ... [Returning
to Go,] we started off with the idea that all three of us had to be
talked into every feature in the language, so there was no
extraneous garbage put into the language for any reason.
20172000 2005 201090s80s
Software|
Languages
Hardware&
Compute
Context
Go
Memory
Locality
C++ at
Google
C10K
Epoll
(linux)
Kqueue
(BSD)
SEDA
Java NIO
P4
Core 2
Ruby
Mongrel
Gunicorn
(Python)
NodeJS
The rise of
containers +
cloud-native+
ecosystem
Microservices
serverless
Hotspot
JVM
Go GC
1.8
Memory Locality
Java
No value types
Everything Allocated
Can’t return multiple values
Go
Structs
True Value types
Memory Locality
Java
No value types
Everything Allocated
Can’t return multiple values
Go
Structs
True Value types
compact object layout
No object headers
Memory Locality
Java
No value types
Everything Allocated
Can’t return multiple values
Go
Structs
True Value types
compact object layout
No object headers
UTF-8
Memory Locality
Java
No value types
Everything Allocated
Can’t return multiple values
Go
Structs
True Value types
compact object layout
No object headers
UTF-8UTF-16
Memory Locality
Java
No value types
Everything Allocated
Can’t return multiple values
Go
Structs
True Value types
Compact object layout
No object headers
Lazy initialization of
collections
UTF-8UTF-16
Memory Locality (conclusion)
Memory Locality (conclusion)
● Go gives programmers the tools to talk about memory
efficiently if they need it.
Memory Locality (conclusion)
● Go gives programmers the tools to talk about memory
efficiently if they need it.
● Flexible
Memory Locality (conclusion)
● Go gives programmers the tools to talk about memory
efficiently if they need it.
● Flexible
● Memory management (not an all-or-nothing like in C++ or
Rust)
Readability
Readability
“ Debugging is twice as hard as writing the code in the first
place. Therefore, if you write the code as cleverly as possible,
you are, by definition, not smart enough to debug it. ” — Brian
Kernighan
20172000 2005 201090s80s
Software|
Languages
Hardware&
Compute
Context
Go
Memory
Locality
C++ at
Google
C10K
Epoll
(linux)
Kqueue
(BSD)
SEDA
Java NIO
P4
Core 2
Ruby
Mongrel
Gunicorn
(Python)
NodeJS
The rise of
containers +
cloud-native+
ecosystem
Microservices
serverless
Hotspot
JVM
Go GC
1.8
20172000 2005 201090s80s
Software|
Languages
Hardware&
Compute
Context
Go
Memory
Locality
C++ at
Google
C10K
Epoll
(linux)
Kqueue
(BSD)
SEDA
Java NIO
P4
Core 2
Ruby
Mongrel
Gunicorn
(Python)
NodeJS
The rise of
containers +
cloud-native+
ecosystem
Microservices
serverless
Hotspot
JVM
Go GC
1.8
# of google
employees in
2007: 16,805
20172000 2005 201090s80s
Software|
Languages
Hardware&
Compute
Context
Go
Memory
Locality
C++ at
Google
C10K
Epoll
(linux)
Kqueue
(BSD)
SEDA
Java NIO
P4
Core 2
Ruby
Mongrel
NodeJS
The rise of
containers +
cloud-native+
ecosystem
Microservices
serverless
Hotspot
JVM
Go GC
1.8
2010:
24,440
20172000 2005 201090s80s
Software|
Languages
Hardware&
Compute
Context
Go
Memory
Locality
C++ at
Google
C10K
Epoll
(linux)
Kqueue
(BSD)
SEDA
Java NIO
P4
Core 2
Ruby
Mongrel
Gunicorn
(Python)
NodeJS
Hotspot
JVM
Go GC
1.8
2017:
75,606
Readability
simplicity
Readability
simplicity
“simple is better”
Readability
simplicity
“simple is better”
“this is an insult to
intelligent programmers”
Readability
simplicity
“simple is better”
“you’re trying to
commodify programming
and create a situation
where our bosses can
replace us at will”
“You’re not paid to program, you’re not even paid to maintain
someone else’s program, you’re paid to deliver solutions to the
business.”
- Dave Cheney
Readability
Programs which cannot be maintained will be rewritten
Readability
Programs which cannot be maintained will be rewritten
“If you can’t be replaced, you cannot be promoted”
20172000 2005 201090s80s
Software|
Languages
Hardware&
Compute
Context
Go
Memory
Locality
C++ at
Google
C10K
Epoll
(linux)
Kqueue
(BSD)
SEDA
Java NIO
P4
Core 2
Ruby
Mongrel
Gunicorn
(Python)
NodeJS
Hotspot
JVM
Go GC
1.8
2017:
75,606
Average length of tenure at company:
20172000 2005 201090s80s
Software|
Languages
Hardware&
Compute
Context
Go
Memory
Locality
C++ at
Google
C10K
Epoll
(linux)
Kqueue
(BSD)
SEDA
Java NIO
P4
Core 2
Ruby
Mongrel
Gunicorn
(Python)
NodeJS
Hotspot
JVM
Go GC
1.8
2017:
75,606
Average length of tenure at company:
20172000 2005 201090s80s
Software|
Languages
Hardware&
Compute
Context
Go
Memory
Locality
C++ at
Google
C10K
Epoll
(linux)
Kqueue
(BSD)
SEDA
Java NIO
P4
Core 2
Ruby
Mongrel
Gunicorn
(Python)
NodeJS
Hotspot
JVM
Go GC
1.8
2017:
75,606
Average length of tenure at company:
20172000 2005 201090s80s
Software|
Languages
Hardware&
Compute
Context
Go
Memory
Locality
C++ at
Google
C10K
Epoll
(linux)
Kqueue
(BSD)
SEDA
Java NIO
P4
Core 2
Ruby
Mongrel
Gunicorn
(Python)
NodeJS
Hotspot
JVM
Go GC
1.8
2017:
75,606
Average length of tenure at company:
Software Engineering
Software Engineering
Software Engineering vs Programming
Software Engineering
Software Engineering vs Programming
Software Engineering = Programming integrated over time.
Software Engineering
Software Engineering vs Programming
Software Engineering = Programming integrated over time.
Engineering is what happens when things need to live longer and influence of
time starts creeping in. -Titus Winters
Software Engineering
Software Engineering vs Programming
Software Engineering = Programming integrated over time.
Engineering is what happens when things need to live longer and influence of
time starts creeping in. -Titus Winters
All this complexity is fundamentally a different flavor than programming.
Software Engineering
focus on sustaining engineering (readability)
Software Engineering
focus on sustaining engineering (readability)
continuance of many different engineers over a long period of time
Software Engineering
focus on sustaining engineering (readability)
continuance of many different engineers over a long period of time
clear module boundaries
Software Engineering
focus on sustaining engineering (readability)
continuance of many different engineers over a long period of time
clear module boundaries
keeping import dependencies between packages linear, thus keeping compile
times down.
Simplicity and the Greater Good
“Simplicity is a great virtue but it requires hard work to achieve it
and education to appreciate it. And to make matters worse:
complexity sells better.”
― Edsger W. Dijkstra
The Future
20172000 2005 201090s80s
Software|
Languages
Hardware&
Compute
Context
Go
C++ at
Google
C10K
Epoll
(linux)
Kqueue
(BSD)
SEDA
Java NIO
P4
Core 2
Ruby
Mongrel
Gunicorn
(Python)
NodeJS
Hotspot
JVM
Go GC
1.8
2010:
75,606
Average length of tenure at company:
Software|
Languages
Hardware&
Compute
Context
20402025 2030 20352017 2020
The Future?
Software|
Languages
Hardware&
Compute
Context
20402025 2030 20352017 2020
The Future?
The problems we have today were not there 20
years ago, nor will be problems we face 20 years
from now.
Software|
Languages
Hardware&
Compute
Context
20402025 2030 20352017 2020
The Future?
...it may surprise you
Thank you!
Carmen Andoh @carmatrocity
QCon San Francisco
21st Century Languages Track
November 2017
Watch the video with slide
synchronization on InfoQ.com!
https://www.infoq.com/presentations/
go-concurrency-gc

Mais conteĂșdo relacionado

Semelhante a The Why of Go

Ten compelling reasons to learn .net framework
Ten compelling reasons to learn .net frameworkTen compelling reasons to learn .net framework
Ten compelling reasons to learn .net frameworkJanBask Training
 
7 Prominent Programming Languages for Blockchain App Development
7 Prominent Programming Languages for Blockchain App Development7 Prominent Programming Languages for Blockchain App Development
7 Prominent Programming Languages for Blockchain App Developmentjhonmiller20
 
Using Technology to Make People More Powerful
Using Technology to Make People More PowerfulUsing Technology to Make People More Powerful
Using Technology to Make People More PowerfulIan Heron
 
Ultimate guide on how to hire full stack web developer in 2022
Ultimate guide on how to hire full stack web developer in 2022Ultimate guide on how to hire full stack web developer in 2022
Ultimate guide on how to hire full stack web developer in 2022Katy Slemon
 
COMPUTER LANGUAGES AND THERE DIFFERENCE
COMPUTER LANGUAGES AND THERE DIFFERENCE COMPUTER LANGUAGES AND THERE DIFFERENCE
COMPUTER LANGUAGES AND THERE DIFFERENCE Pavan Kalyan
 
Build Real-World Mobile Applications With Python App Development Services Com...
Build Real-World Mobile Applications With Python App Development Services Com...Build Real-World Mobile Applications With Python App Development Services Com...
Build Real-World Mobile Applications With Python App Development Services Com...Cerebrum Infotech
 
Go Within Cloud Foundry
Go Within Cloud FoundryGo Within Cloud Foundry
Go Within Cloud FoundryPlatform CF
 
The Ring programming language version 1.9 book - Part 6 of 210
The Ring programming language version 1.9 book - Part 6 of 210The Ring programming language version 1.9 book - Part 6 of 210
The Ring programming language version 1.9 book - Part 6 of 210Mahmoud Samir Fayed
 
Interopability with Suse Linux: MoonLight Project
Interopability with Suse Linux: MoonLight Project Interopability with Suse Linux: MoonLight Project
Interopability with Suse Linux: MoonLight Project Alessandro Binhara
 
IBM Connect 2014 KEY102
IBM Connect 2014 KEY102IBM Connect 2014 KEY102
IBM Connect 2014 KEY102Scott Souder
 
Python Usefulness
Python UsefulnessPython Usefulness
Python UsefulnessVipul Petkar
 
Python Intro For Managers
Python Intro For ManagersPython Intro For Managers
Python Intro For ManagersAtul Shridhar
 
DevOps and the C64: what's your excuse
DevOps and the C64: what's your excuseDevOps and the C64: what's your excuse
DevOps and the C64: what's your excuseTodd Whitehead
 
All You Need To Know About C Program Assignment Help.pdf
All You Need To Know About C Program Assignment Help.pdfAll You Need To Know About C Program Assignment Help.pdf
All You Need To Know About C Program Assignment Help.pdfBrad Smith
 
What Makes Dot Net Framework Better for Business Application Development.pptx
What Makes Dot Net Framework Better for Business Application Development.pptxWhat Makes Dot Net Framework Better for Business Application Development.pptx
What Makes Dot Net Framework Better for Business Application Development.pptxSaniyaSharma28
 
Computer programminglanguages
Computer programminglanguagesComputer programminglanguages
Computer programminglanguagesPaulineGayVillarama
 
OSGeo Live Lightening Overview
OSGeo Live Lightening OverviewOSGeo Live Lightening Overview
OSGeo Live Lightening OverviewJody Garnett
 
infoShare 2013: Alan Bird - The Web is Changing the World. Are you READY?
infoShare 2013: Alan Bird - The Web is Changing the World. Are you READY?infoShare 2013: Alan Bird - The Web is Changing the World. Are you READY?
infoShare 2013: Alan Bird - The Web is Changing the World. Are you READY?Infoshare
 

Semelhante a The Why of Go (20)

Ten compelling reasons to learn .net framework
Ten compelling reasons to learn .net frameworkTen compelling reasons to learn .net framework
Ten compelling reasons to learn .net framework
 
7 Prominent Programming Languages for Blockchain App Development
7 Prominent Programming Languages for Blockchain App Development7 Prominent Programming Languages for Blockchain App Development
7 Prominent Programming Languages for Blockchain App Development
 
Using Technology to Make People More Powerful
Using Technology to Make People More PowerfulUsing Technology to Make People More Powerful
Using Technology to Make People More Powerful
 
Ultimate guide on how to hire full stack web developer in 2022
Ultimate guide on how to hire full stack web developer in 2022Ultimate guide on how to hire full stack web developer in 2022
Ultimate guide on how to hire full stack web developer in 2022
 
COMPUTER LANGUAGES AND THERE DIFFERENCE
COMPUTER LANGUAGES AND THERE DIFFERENCE COMPUTER LANGUAGES AND THERE DIFFERENCE
COMPUTER LANGUAGES AND THERE DIFFERENCE
 
Build Real-World Mobile Applications With Python App Development Services Com...
Build Real-World Mobile Applications With Python App Development Services Com...Build Real-World Mobile Applications With Python App Development Services Com...
Build Real-World Mobile Applications With Python App Development Services Com...
 
The Awesomeness of Go
The Awesomeness of GoThe Awesomeness of Go
The Awesomeness of Go
 
Go Within Cloud Foundry
Go Within Cloud FoundryGo Within Cloud Foundry
Go Within Cloud Foundry
 
The Ring programming language version 1.9 book - Part 6 of 210
The Ring programming language version 1.9 book - Part 6 of 210The Ring programming language version 1.9 book - Part 6 of 210
The Ring programming language version 1.9 book - Part 6 of 210
 
Interopability with Suse Linux: MoonLight Project
Interopability with Suse Linux: MoonLight Project Interopability with Suse Linux: MoonLight Project
Interopability with Suse Linux: MoonLight Project
 
IBM Connect 2014 KEY102
IBM Connect 2014 KEY102IBM Connect 2014 KEY102
IBM Connect 2014 KEY102
 
Python Usefulness
Python UsefulnessPython Usefulness
Python Usefulness
 
Python Intro For Managers
Python Intro For ManagersPython Intro For Managers
Python Intro For Managers
 
DevOps and the C64: what's your excuse
DevOps and the C64: what's your excuseDevOps and the C64: what's your excuse
DevOps and the C64: what's your excuse
 
All You Need To Know About C Program Assignment Help.pdf
All You Need To Know About C Program Assignment Help.pdfAll You Need To Know About C Program Assignment Help.pdf
All You Need To Know About C Program Assignment Help.pdf
 
What Makes Dot Net Framework Better for Business Application Development.pptx
What Makes Dot Net Framework Better for Business Application Development.pptxWhat Makes Dot Net Framework Better for Business Application Development.pptx
What Makes Dot Net Framework Better for Business Application Development.pptx
 
Computer programminglanguages
Computer programminglanguagesComputer programminglanguages
Computer programminglanguages
 
DesktopCGI
DesktopCGIDesktopCGI
DesktopCGI
 
OSGeo Live Lightening Overview
OSGeo Live Lightening OverviewOSGeo Live Lightening Overview
OSGeo Live Lightening Overview
 
infoShare 2013: Alan Bird - The Web is Changing the World. Are you READY?
infoShare 2013: Alan Bird - The Web is Changing the World. Are you READY?infoShare 2013: Alan Bird - The Web is Changing the World. Are you READY?
infoShare 2013: Alan Bird - The Web is Changing the World. Are you READY?
 

Mais de C4Media

Streaming a Million Likes/Second: Real-Time Interactions on Live Video
Streaming a Million Likes/Second: Real-Time Interactions on Live VideoStreaming a Million Likes/Second: Real-Time Interactions on Live Video
Streaming a Million Likes/Second: Real-Time Interactions on Live VideoC4Media
 
Next Generation Client APIs in Envoy Mobile
Next Generation Client APIs in Envoy MobileNext Generation Client APIs in Envoy Mobile
Next Generation Client APIs in Envoy MobileC4Media
 
Software Teams and Teamwork Trends Report Q1 2020
Software Teams and Teamwork Trends Report Q1 2020Software Teams and Teamwork Trends Report Q1 2020
Software Teams and Teamwork Trends Report Q1 2020C4Media
 
Understand the Trade-offs Using Compilers for Java Applications
Understand the Trade-offs Using Compilers for Java ApplicationsUnderstand the Trade-offs Using Compilers for Java Applications
Understand the Trade-offs Using Compilers for Java ApplicationsC4Media
 
Kafka Needs No Keeper
Kafka Needs No KeeperKafka Needs No Keeper
Kafka Needs No KeeperC4Media
 
High Performing Teams Act Like Owners
High Performing Teams Act Like OwnersHigh Performing Teams Act Like Owners
High Performing Teams Act Like OwnersC4Media
 
Does Java Need Inline Types? What Project Valhalla Can Bring to Java
Does Java Need Inline Types? What Project Valhalla Can Bring to JavaDoes Java Need Inline Types? What Project Valhalla Can Bring to Java
Does Java Need Inline Types? What Project Valhalla Can Bring to JavaC4Media
 
Service Meshes- The Ultimate Guide
Service Meshes- The Ultimate GuideService Meshes- The Ultimate Guide
Service Meshes- The Ultimate GuideC4Media
 
Shifting Left with Cloud Native CI/CD
Shifting Left with Cloud Native CI/CDShifting Left with Cloud Native CI/CD
Shifting Left with Cloud Native CI/CDC4Media
 
CI/CD for Machine Learning
CI/CD for Machine LearningCI/CD for Machine Learning
CI/CD for Machine LearningC4Media
 
Fault Tolerance at Speed
Fault Tolerance at SpeedFault Tolerance at Speed
Fault Tolerance at SpeedC4Media
 
Architectures That Scale Deep - Regaining Control in Deep Systems
Architectures That Scale Deep - Regaining Control in Deep SystemsArchitectures That Scale Deep - Regaining Control in Deep Systems
Architectures That Scale Deep - Regaining Control in Deep SystemsC4Media
 
ML in the Browser: Interactive Experiences with Tensorflow.js
ML in the Browser: Interactive Experiences with Tensorflow.jsML in the Browser: Interactive Experiences with Tensorflow.js
ML in the Browser: Interactive Experiences with Tensorflow.jsC4Media
 
Build Your Own WebAssembly Compiler
Build Your Own WebAssembly CompilerBuild Your Own WebAssembly Compiler
Build Your Own WebAssembly CompilerC4Media
 
User & Device Identity for Microservices @ Netflix Scale
User & Device Identity for Microservices @ Netflix ScaleUser & Device Identity for Microservices @ Netflix Scale
User & Device Identity for Microservices @ Netflix ScaleC4Media
 
Scaling Patterns for Netflix's Edge
Scaling Patterns for Netflix's EdgeScaling Patterns for Netflix's Edge
Scaling Patterns for Netflix's EdgeC4Media
 
Make Your Electron App Feel at Home Everywhere
Make Your Electron App Feel at Home EverywhereMake Your Electron App Feel at Home Everywhere
Make Your Electron App Feel at Home EverywhereC4Media
 
The Talk You've Been Await-ing For
The Talk You've Been Await-ing ForThe Talk You've Been Await-ing For
The Talk You've Been Await-ing ForC4Media
 
Future of Data Engineering
Future of Data EngineeringFuture of Data Engineering
Future of Data EngineeringC4Media
 
Automated Testing for Terraform, Docker, Packer, Kubernetes, and More
Automated Testing for Terraform, Docker, Packer, Kubernetes, and MoreAutomated Testing for Terraform, Docker, Packer, Kubernetes, and More
Automated Testing for Terraform, Docker, Packer, Kubernetes, and MoreC4Media
 

Mais de C4Media (20)

Streaming a Million Likes/Second: Real-Time Interactions on Live Video
Streaming a Million Likes/Second: Real-Time Interactions on Live VideoStreaming a Million Likes/Second: Real-Time Interactions on Live Video
Streaming a Million Likes/Second: Real-Time Interactions on Live Video
 
Next Generation Client APIs in Envoy Mobile
Next Generation Client APIs in Envoy MobileNext Generation Client APIs in Envoy Mobile
Next Generation Client APIs in Envoy Mobile
 
Software Teams and Teamwork Trends Report Q1 2020
Software Teams and Teamwork Trends Report Q1 2020Software Teams and Teamwork Trends Report Q1 2020
Software Teams and Teamwork Trends Report Q1 2020
 
Understand the Trade-offs Using Compilers for Java Applications
Understand the Trade-offs Using Compilers for Java ApplicationsUnderstand the Trade-offs Using Compilers for Java Applications
Understand the Trade-offs Using Compilers for Java Applications
 
Kafka Needs No Keeper
Kafka Needs No KeeperKafka Needs No Keeper
Kafka Needs No Keeper
 
High Performing Teams Act Like Owners
High Performing Teams Act Like OwnersHigh Performing Teams Act Like Owners
High Performing Teams Act Like Owners
 
Does Java Need Inline Types? What Project Valhalla Can Bring to Java
Does Java Need Inline Types? What Project Valhalla Can Bring to JavaDoes Java Need Inline Types? What Project Valhalla Can Bring to Java
Does Java Need Inline Types? What Project Valhalla Can Bring to Java
 
Service Meshes- The Ultimate Guide
Service Meshes- The Ultimate GuideService Meshes- The Ultimate Guide
Service Meshes- The Ultimate Guide
 
Shifting Left with Cloud Native CI/CD
Shifting Left with Cloud Native CI/CDShifting Left with Cloud Native CI/CD
Shifting Left with Cloud Native CI/CD
 
CI/CD for Machine Learning
CI/CD for Machine LearningCI/CD for Machine Learning
CI/CD for Machine Learning
 
Fault Tolerance at Speed
Fault Tolerance at SpeedFault Tolerance at Speed
Fault Tolerance at Speed
 
Architectures That Scale Deep - Regaining Control in Deep Systems
Architectures That Scale Deep - Regaining Control in Deep SystemsArchitectures That Scale Deep - Regaining Control in Deep Systems
Architectures That Scale Deep - Regaining Control in Deep Systems
 
ML in the Browser: Interactive Experiences with Tensorflow.js
ML in the Browser: Interactive Experiences with Tensorflow.jsML in the Browser: Interactive Experiences with Tensorflow.js
ML in the Browser: Interactive Experiences with Tensorflow.js
 
Build Your Own WebAssembly Compiler
Build Your Own WebAssembly CompilerBuild Your Own WebAssembly Compiler
Build Your Own WebAssembly Compiler
 
User & Device Identity for Microservices @ Netflix Scale
User & Device Identity for Microservices @ Netflix ScaleUser & Device Identity for Microservices @ Netflix Scale
User & Device Identity for Microservices @ Netflix Scale
 
Scaling Patterns for Netflix's Edge
Scaling Patterns for Netflix's EdgeScaling Patterns for Netflix's Edge
Scaling Patterns for Netflix's Edge
 
Make Your Electron App Feel at Home Everywhere
Make Your Electron App Feel at Home EverywhereMake Your Electron App Feel at Home Everywhere
Make Your Electron App Feel at Home Everywhere
 
The Talk You've Been Await-ing For
The Talk You've Been Await-ing ForThe Talk You've Been Await-ing For
The Talk You've Been Await-ing For
 
Future of Data Engineering
Future of Data EngineeringFuture of Data Engineering
Future of Data Engineering
 
Automated Testing for Terraform, Docker, Packer, Kubernetes, and More
Automated Testing for Terraform, Docker, Packer, Kubernetes, and MoreAutomated Testing for Terraform, Docker, Packer, Kubernetes, and More
Automated Testing for Terraform, Docker, Packer, Kubernetes, and More
 

Último

Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 

Último (20)

Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 

The Why of Go