SlideShare ist ein Scribd-Unternehmen logo
1 von 43
Downloaden Sie, um offline zu lesen
1
Mike Gehard
Software Engineer, Pivotal Labs
Go Within Cloud Foundry
2
ME
3
4
4
5
5
History of Go
6
6
History of Go
6
September 21, 2007
Work begins on Go within Google
Robert Griesemer, Rob Pike, Ken Thompson
6
History of Go
6
September 21, 2007
Work begins on Go within Google
Robert Griesemer, Rob Pike, Ken Thompson
Late 2008
Russ Cox joins team
6
History of Go
6
September 21, 2007
Work begins on Go within Google
Robert Griesemer, Rob Pike, Ken Thompson
Late 2008
Russ Cox joins team
November 10, 2009
Public, open source project
6
History of Go
6
September 21, 2007
Work begins on Go within Google
Robert Griesemer, Rob Pike, Ken Thompson
Late 2008
Russ Cox joins team
November 10, 2009
Public, open source project
March 28, 2012
Go 1.0 released
6
History of Go
6
September 21, 2007
Work begins on Go within Google
Robert Griesemer, Rob Pike, Ken Thompson
Late 2008
Russ Cox joins team
November 10, 2009
Public, open source project
March 28, 2012
Go 1.0 released
Early 2013
GoRouter put into production
6
Why Go?
Go was born out of frustration with existing languages and environments for
systems programming. Programming had become too difficult and the choice
of languages was partly to blame. One had to choose either efficient
compilation, efficient execution, or ease of programming; all three were not
available in the same mainstream language. Programmers who could were
choosing ease over safety and efficiency by moving to dynamically typed
languages such as Python and JavaScript rather than C++ or, to a lesser
extent, Java.
Go is an attempt to combine the ease of programming of an interpreted,
dynamically typed language with the efficiency and safety of a statically typed,
compiled language. It also aims to be modern, with support for networked and
multicore computing. Finally, it is intended to be fast: it should take at most a
few seconds to build a large executable on a single computer. To meet these
goals required addressing a number of linguistic issues: an expressive but
lightweight type system; concurrency and garbage collection; rigid
dependency specification; and so on. These cannot be addressed well by
libraries or tools; a new language was called for.
- Go FAQ (http://golang.org/doc/faq#creating_a_new_language)
7
7
8
8
8
Go was born out of frustration with existing languages and
environments for systems programming. Programming had
become too difficult and the choice of languages was partly to
blame. One had to choose either efficient compilation,
efficient execution, or ease of programming; all three were
not available in the same mainstream language. Programmers
who could were choosing ease over safety and efficiency by
moving to dynamically typed languages such as Python and
JavaScript rather than C++ or, to a lesser extent, Java.
8
8
Go was born out of frustration with existing languages and
environments for systems programming. Programming had
become too difficult and the choice of languages was partly to
blame. One had to choose either efficient compilation,
efficient execution, or ease of programming; all three were
not available in the same mainstream language. Programmers
who could were choosing ease over safety and efficiency by
moving to dynamically typed languages such as Python and
JavaScript rather than C++ or, to a lesser extent, Java.
Go is an attempt to combine the ease of programming of an
interpreted, dynamically typed language with the efficiency and
safety of a statically typed, compiled language. It also aims to
be modern, with support for networked and multicore
computing. Finally, it is intended to be fast: it should take at
most a few seconds to build a large executable on a single
computer. To meet these goals required addressing a number
of linguistic issues: an expressive but lightweight type system;
concurrency and garbage collection; rigid dependency
specification; and so on. These cannot be addressed well by
libraries or tools; a new language was called for.
8
9
Go is an attempt to combine the ease of programming of an interpreted,
dynamically typed language with the efficiency and safety of a statically
typed, compiled language. It also aims to be modern, with support for
networked and multicore computing. Finally, it is intended to be fast: it
should take at most a few seconds to build a large executable on a
single computer. To meet these goals required addressing a number of
linguistic issues: an expressive but lightweight type system; concurrency
and garbage collection; rigid dependency specification; and so on. These
cannot be addressed well by libraries or tools; a new language was
called for.
Go was born out of frustration with existing languages and
environments for systems programming. Programming had
become too difficult and the choice of languages was partly to
blame. One had to choose either efficient compilation,
efficient execution, or ease of programming; all three were
not available in the same mainstream language. Programmers
who could were choosing ease over safety and efficiency by
moving to dynamically typed languages such as Python and
JavaScript rather than C++ or, to a lesser extent, Java.
Go is an attempt to combine the ease of programming of an
interpreted, dynamically typed language with the efficiency and
safety of a statically typed, compiled language. It also aims to
be modern, with support for networked and multicore
computing. Finally, it is intended to be fast: it should take at
most a few seconds to build a large executable on a single
computer. To meet these goals required addressing a number
of linguistic issues: an expressive but lightweight type system;
concurrency and garbage collection; rigid dependency
specification; and so on. These cannot be addressed well by
libraries or tools; a new language was called for.
9
10
Go was born out of frustration with existing languages and
environments for systems programming. Programming had
become too difficult and the choice of languages was partly to
blame. One had to choose either efficient compilation,
efficient execution, or ease of programming; all three were
not available in the same mainstream language. Programmers
who could were choosing ease over safety and efficiency by
moving to dynamically typed languages such as Python and
JavaScript rather than C++ or, to a lesser extent, Java.
Go is an attempt to combine the ease of programming of an
interpreted, dynamically typed language with the efficiency and
safety of a statically typed, compiled language. It also aims to
be modern, with support for networked and multicore
computing. Finally, it is intended to be fast: it should take at
most a few seconds to build a large executable on a single
computer. To meet these goals required addressing a number
of linguistic issues: an expressive but lightweight type system;
concurrency and garbage collection; rigid dependency
specification; and so on. These cannot be addressed well by
libraries or tools; a new language was called for.
10
11
11
12
12
13
Go was born out of frustration with existing languages and
environments for systems programming. Programming had
become too difficult and the choice of languages was partly to
blame. One had to choose either efficient compilation,
efficient execution, or ease of programming; all three were
not available in the same mainstream language. Programmers
who could were choosing ease over safety and efficiency by
moving to dynamically typed languages such as Python and
JavaScript rather than C++ or, to a lesser extent, Java.
Go is an attempt to combine the ease of programming of an
interpreted, dynamically typed language with the efficiency and
safety of a statically typed, compiled language. It also aims to
be modern, with support for networked and multicore
computing. Finally, it is intended to be fast: it should take at
most a few seconds to build a large executable on a single
computer. To meet these goals required addressing a number
of linguistic issues: an expressive but lightweight type system;
concurrency and garbage collection; rigid dependency
specification; and so on. These cannot be addressed well by
libraries or tools; a new language was called for.
13
14
Go was born out of frustration with existing languages and
environments for systems programming. Programming had
become too difficult and the choice of languages was partly to
blame. One had to choose either efficient compilation,
efficient execution, or ease of programming; all three were
not available in the same mainstream language. Programmers
who could were choosing ease over safety and efficiency by
moving to dynamically typed languages such as Python and
JavaScript rather than C++ or, to a lesser extent, Java.
Go is an attempt to combine the ease of programming of an
interpreted, dynamically typed language with the efficiency and
safety of a statically typed, compiled language. It also aims to
be modern, with support for networked and multicore
computing. Finally, it is intended to be fast: it should take at
most a few seconds to build a large executable on a single
computer. To meet these goals required addressing a number
of linguistic issues: an expressive but lightweight type system;
concurrency and garbage collection; rigid dependency
specification; and so on. These cannot be addressed well by
libraries or tools; a new language was called for.
14
15
Go was born out of frustration with existing languages and
environments for systems programming. Programming had
become too difficult and the choice of languages was partly to
blame. One had to choose either efficient compilation,
efficient execution, or ease of programming; all three were
not available in the same mainstream language. Programmers
who could were choosing ease over safety and efficiency by
moving to dynamically typed languages such as Python and
JavaScript rather than C++ or, to a lesser extent, Java.
Go is an attempt to combine the ease of programming of an
interpreted, dynamically typed language with the efficiency and
safety of a statically typed, compiled language. It also aims to
be modern, with support for networked and multicore
computing. Finally, it is intended to be fast: it should take at
most a few seconds to build a large executable on a single
computer. To meet these goals required addressing a number
of linguistic issues: an expressive but lightweight type system;
concurrency and garbage collection; rigid dependency
specification; and so on. These cannot be addressed well by
libraries or tools; a new language was called for.
15
16
16
17
Go was born out of frustration with existing languages and
environments for systems programming. Programming had
become too difficult and the choice of languages was partly to
blame. One had to choose either efficient compilation,
efficient execution, or ease of programming; all three were
not available in the same mainstream language. Programmers
who could were choosing ease over safety and efficiency by
moving to dynamically typed languages such as Python and
JavaScript rather than C++ or, to a lesser extent, Java.
Go is an attempt to combine the ease of programming of an
interpreted, dynamically typed language with the efficiency and
safety of a statically typed, compiled language. It also aims to
be modern, with support for networked and multicore
computing. Finally, it is intended to be fast: it should take at
most a few seconds to build a large executable on a single
computer. To meet these goals required addressing a number
of linguistic issues: an expressive but lightweight type system;
concurrency and garbage collection; rigid dependency
specification; and so on. These cannot be addressed well by
libraries or tools; a new language was called for.
17
18
cannot be addressed well by libraries
or tools; a new language was called
for.
18
19
19
20
20
21
21
22
22
23
23
24
24
25
25
26
26
27
27
28
28
29
29
30
30
31
31
32
32
33
33
34
34
Credits
• http://talks.golang.org/2012/splash.article
• http://www.flickr.com/photos/sebilden/6898920548
• http://www.flickr.com/photos/samjuk/1215416320
• http://www.flickr.com/photos/40320455@N03/4289782818
• http://www.flickr.com/photos/55723329@N00/6657150957
35
35
Questions?
@mikegehard
@pivotallabs
36
36

Weitere ähnliche Inhalte

Was ist angesagt?

Cloud foundry architecture and deep dive
Cloud foundry architecture and deep diveCloud foundry architecture and deep dive
Cloud foundry architecture and deep dive
Animesh Singh
 

Was ist angesagt? (20)

Using Git with Rational Team Concert and Rational ClearCase in enterprise env...
Using Git with Rational Team Concert and Rational ClearCase in enterprise env...Using Git with Rational Team Concert and Rational ClearCase in enterprise env...
Using Git with Rational Team Concert and Rational ClearCase in enterprise env...
 
Cloudfoundry Introduction
Cloudfoundry IntroductionCloudfoundry Introduction
Cloudfoundry Introduction
 
Deploying to and Configuring WebSphere Application Server with UrbanCode Deploy
Deploying to and Configuring WebSphere Application Server with UrbanCode DeployDeploying to and Configuring WebSphere Application Server with UrbanCode Deploy
Deploying to and Configuring WebSphere Application Server with UrbanCode Deploy
 
Platform as a Service - Cloud Foundry and IBM Bluemix
Platform as a Service - Cloud Foundry and IBM BluemixPlatform as a Service - Cloud Foundry and IBM Bluemix
Platform as a Service - Cloud Foundry and IBM Bluemix
 
IBM Container Service Overview
IBM Container Service OverviewIBM Container Service Overview
IBM Container Service Overview
 
WebSphere Application Server - Meeting Your Cloud and On-Premise Demands
WebSphere Application Server - Meeting Your Cloud and On-Premise DemandsWebSphere Application Server - Meeting Your Cloud and On-Premise Demands
WebSphere Application Server - Meeting Your Cloud and On-Premise Demands
 
Application Considerations for Cloud
Application Considerations for CloudApplication Considerations for Cloud
Application Considerations for Cloud
 
Introduction to Microservices and Cloud Native Application Architecture
Introduction to Microservices and Cloud Native Application ArchitectureIntroduction to Microservices and Cloud Native Application Architecture
Introduction to Microservices and Cloud Native Application Architecture
 
Migrating Java EE applications to IBM Bluemix Platform-as-a-Service
Migrating Java EE applications to IBM Bluemix Platform-as-a-ServiceMigrating Java EE applications to IBM Bluemix Platform-as-a-Service
Migrating Java EE applications to IBM Bluemix Platform-as-a-Service
 
IBM InterConnect 2015 - IIB in the Cloud
IBM InterConnect 2015 - IIB in the CloudIBM InterConnect 2015 - IIB in the Cloud
IBM InterConnect 2015 - IIB in the Cloud
 
Building out a Microservices Architecture with WebSphere Liberty Profile and ...
Building out a Microservices Architecture with WebSphere Liberty Profile and ...Building out a Microservices Architecture with WebSphere Liberty Profile and ...
Building out a Microservices Architecture with WebSphere Liberty Profile and ...
 
Cloud foundry architecture and deep dive
Cloud foundry architecture and deep diveCloud foundry architecture and deep dive
Cloud foundry architecture and deep dive
 
12-factor applications using WAS Liberty, IBM Bluemix, and Docker
12-factor applications using WAS Liberty, IBM Bluemix, and Docker12-factor applications using WAS Liberty, IBM Bluemix, and Docker
12-factor applications using WAS Liberty, IBM Bluemix, and Docker
 
Plastic SCM: Entreprise Version Control Platform for Modern Applications and ...
Plastic SCM: Entreprise Version Control Platform for Modern Applications and ...Plastic SCM: Entreprise Version Control Platform for Modern Applications and ...
Plastic SCM: Entreprise Version Control Platform for Modern Applications and ...
 
Kubernetes Basics - ICP Workshop Batch II
Kubernetes Basics - ICP Workshop Batch IIKubernetes Basics - ICP Workshop Batch II
Kubernetes Basics - ICP Workshop Batch II
 
Cloud Foundry Technical Overview at IBM Interconnect 2016
Cloud Foundry Technical Overview at IBM Interconnect 2016Cloud Foundry Technical Overview at IBM Interconnect 2016
Cloud Foundry Technical Overview at IBM Interconnect 2016
 
3298 microservices and how they relate to esb api and messaging - inter con...
3298   microservices and how they relate to esb api and messaging - inter con...3298   microservices and how they relate to esb api and messaging - inter con...
3298 microservices and how they relate to esb api and messaging - inter con...
 
Monitoring Cloud Native Apps on Pivotal Cloud Foundry with AppDynamics
Monitoring Cloud Native Apps on Pivotal Cloud Foundry with AppDynamicsMonitoring Cloud Native Apps on Pivotal Cloud Foundry with AppDynamics
Monitoring Cloud Native Apps on Pivotal Cloud Foundry with AppDynamics
 
Cloud Foundry - Second Generation Code (CCNG). Technical Overview
Cloud Foundry - Second Generation Code (CCNG). Technical Overview Cloud Foundry - Second Generation Code (CCNG). Technical Overview
Cloud Foundry - Second Generation Code (CCNG). Technical Overview
 
Cloud Foundry Vancouver Meetup July 2016
Cloud Foundry Vancouver Meetup July 2016Cloud Foundry Vancouver Meetup July 2016
Cloud Foundry Vancouver Meetup July 2016
 

Ähnlich wie Go Within Cloud Foundry

Ähnlich wie Go Within Cloud Foundry (20)

Enterprise 2020
Enterprise 2020Enterprise 2020
Enterprise 2020
 
Ready, set, go! An introduction to the Go programming language
Ready, set, go! An introduction to the Go programming languageReady, set, go! An introduction to the Go programming language
Ready, set, go! An introduction to the Go programming language
 
Let's Go: Introduction to Google's Go Programming Language
Let's Go: Introduction to Google's Go Programming LanguageLet's Go: Introduction to Google's Go Programming Language
Let's Go: Introduction to Google's Go Programming Language
 
Lets Go - An introduction to Google's Go Programming Language
Lets Go - An introduction to Google's Go Programming Language Lets Go - An introduction to Google's Go Programming Language
Lets Go - An introduction to Google's Go Programming Language
 
Introduction to Go
Introduction to GoIntroduction to Go
Introduction to Go
 
Introduction to go lang
Introduction to go langIntroduction to go lang
Introduction to go lang
 
Golang : A Hype or the Future?
Golang : A Hype or the Future?Golang : A Hype or the Future?
Golang : A Hype or the Future?
 
5 Reasons why Business Choose Go Program for Software Development
5 Reasons why Business Choose Go Program for Software Development5 Reasons why Business Choose Go Program for Software Development
5 Reasons why Business Choose Go Program for Software Development
 
Google's Go Programming Language - Introduction
Google's Go Programming Language - Introduction Google's Go Programming Language - Introduction
Google's Go Programming Language - Introduction
 
A First Look at Google's Go Programming Language
A First Look at Google's Go Programming LanguageA First Look at Google's Go Programming Language
A First Look at Google's Go Programming Language
 
Golang development go language services in kerala- go language development in...
Golang development go language services in kerala- go language development in...Golang development go language services in kerala- go language development in...
Golang development go language services in kerala- go language development in...
 
Golang, Future of Programming Language.
Golang, Future of Programming Language.Golang, Future of Programming Language.
Golang, Future of Programming Language.
 
Scaling applications with go
Scaling applications with goScaling applications with go
Scaling applications with go
 
Hire golang developers and make the shift to brighter business future (build ...
Hire golang developers and make the shift to brighter business future (build ...Hire golang developers and make the shift to brighter business future (build ...
Hire golang developers and make the shift to brighter business future (build ...
 
An introduction to go programming language
An introduction to go programming languageAn introduction to go programming language
An introduction to go programming language
 
Which programming language should you learn next?
Which programming language should you learn next? Which programming language should you learn next?
Which programming language should you learn next?
 
The Go programming language - Intro by MyLittleAdventure
The Go programming language - Intro by MyLittleAdventureThe Go programming language - Intro by MyLittleAdventure
The Go programming language - Intro by MyLittleAdventure
 
Why Is Rust Gaining Traction In Recent Years?
Why Is Rust Gaining Traction In Recent Years?Why Is Rust Gaining Traction In Recent Years?
Why Is Rust Gaining Traction In Recent Years?
 
Java And Community Support
Java And Community SupportJava And Community Support
Java And Community Support
 
The Ring programming language version 1.5.1 book - Part 4 of 180
The Ring programming language version 1.5.1 book - Part 4 of 180The Ring programming language version 1.5.1 book - Part 4 of 180
The Ring programming language version 1.5.1 book - Part 4 of 180
 

Mehr von Platform CF

The Platform for Building Great Software
The Platform for Building Great SoftwareThe Platform for Building Great Software
The Platform for Building Great Software
Platform CF
 
The Path to Stackato
The Path to StackatoThe Path to Stackato
The Path to Stackato
Platform CF
 
Continuous Deployment with Cloud Foundry, Github and Travis CI
Continuous Deployment with Cloud Foundry, Github and Travis CIContinuous Deployment with Cloud Foundry, Github and Travis CI
Continuous Deployment with Cloud Foundry, Github and Travis CI
Platform CF
 
The Journey to Cloud Foundry
The Journey to Cloud FoundryThe Journey to Cloud Foundry
The Journey to Cloud Foundry
Platform CF
 
Pivotal HD as a Cloud Foundry Service
Pivotal HD as a Cloud Foundry ServicePivotal HD as a Cloud Foundry Service
Pivotal HD as a Cloud Foundry Service
Platform CF
 
What Lessons Can Cloud Foundry Teach to IaaS?
What Lessons Can Cloud Foundry Teach to IaaS?What Lessons Can Cloud Foundry Teach to IaaS?
What Lessons Can Cloud Foundry Teach to IaaS?
Platform CF
 
Cloud Foundry at VMware
Cloud Foundry at VMwareCloud Foundry at VMware
Cloud Foundry at VMware
Platform CF
 
Continuous Delivery with Cloud Foundry
Continuous Delivery with Cloud FoundryContinuous Delivery with Cloud Foundry
Continuous Delivery with Cloud Foundry
Platform CF
 
From Zero To Factory
From Zero To FactoryFrom Zero To Factory
From Zero To Factory
Platform CF
 
The IBM dashboard for operational metrics
The IBM dashboard for operational metricsThe IBM dashboard for operational metrics
The IBM dashboard for operational metrics
Platform CF
 
Service Distribution to Any Cloud - Cloud Elements
Service Distribution to Any Cloud - Cloud ElementsService Distribution to Any Cloud - Cloud Elements
Service Distribution to Any Cloud - Cloud Elements
Platform CF
 
Cloud Foundry Marketplace Powered by AppDirect
Cloud Foundry MarketplacePowered by AppDirectCloud Foundry MarketplacePowered by AppDirect
Cloud Foundry Marketplace Powered by AppDirect
Platform CF
 
The Path to Stackato
The Path to StackatoThe Path to Stackato
The Path to Stackato
Platform CF
 
Multi-site Architecture Considerations
Multi-site Architecture ConsiderationsMulti-site Architecture Considerations
Multi-site Architecture Considerations
Platform CF
 
Cloud Foundry at NTT
Cloud Foundry at NTTCloud Foundry at NTT
Cloud Foundry at NTT
Platform CF
 
Building Opportunity with an Open Cloud Architecture
Building Opportunity with an Open Cloud ArchitectureBuilding Opportunity with an Open Cloud Architecture
Building Opportunity with an Open Cloud Architecture
Platform CF
 
Extending Cloud Foundry to .NET
Extending Cloud Foundry to .NETExtending Cloud Foundry to .NET
Extending Cloud Foundry to .NET
Platform CF
 
Cloud Foundry at Rakuten
Cloud Foundry at RakutenCloud Foundry at Rakuten
Cloud Foundry at Rakuten
Platform CF
 

Mehr von Platform CF (19)

The Platform for Building Great Software
The Platform for Building Great SoftwareThe Platform for Building Great Software
The Platform for Building Great Software
 
The Path to Stackato
The Path to StackatoThe Path to Stackato
The Path to Stackato
 
Continuous Deployment with Cloud Foundry, Github and Travis CI
Continuous Deployment with Cloud Foundry, Github and Travis CIContinuous Deployment with Cloud Foundry, Github and Travis CI
Continuous Deployment with Cloud Foundry, Github and Travis CI
 
The Journey to Cloud Foundry
The Journey to Cloud FoundryThe Journey to Cloud Foundry
The Journey to Cloud Foundry
 
Pivotal HD as a Cloud Foundry Service
Pivotal HD as a Cloud Foundry ServicePivotal HD as a Cloud Foundry Service
Pivotal HD as a Cloud Foundry Service
 
What Lessons Can Cloud Foundry Teach to IaaS?
What Lessons Can Cloud Foundry Teach to IaaS?What Lessons Can Cloud Foundry Teach to IaaS?
What Lessons Can Cloud Foundry Teach to IaaS?
 
Cloud Foundry at VMware
Cloud Foundry at VMwareCloud Foundry at VMware
Cloud Foundry at VMware
 
Continuous Delivery with Cloud Foundry
Continuous Delivery with Cloud FoundryContinuous Delivery with Cloud Foundry
Continuous Delivery with Cloud Foundry
 
From Zero To Factory
From Zero To FactoryFrom Zero To Factory
From Zero To Factory
 
The IBM dashboard for operational metrics
The IBM dashboard for operational metricsThe IBM dashboard for operational metrics
The IBM dashboard for operational metrics
 
Service Distribution to Any Cloud - Cloud Elements
Service Distribution to Any Cloud - Cloud ElementsService Distribution to Any Cloud - Cloud Elements
Service Distribution to Any Cloud - Cloud Elements
 
Cloud Foundry Marketplace Powered by AppDirect
Cloud Foundry MarketplacePowered by AppDirectCloud Foundry MarketplacePowered by AppDirect
Cloud Foundry Marketplace Powered by AppDirect
 
The Path to Stackato
The Path to StackatoThe Path to Stackato
The Path to Stackato
 
Multi-site Architecture Considerations
Multi-site Architecture ConsiderationsMulti-site Architecture Considerations
Multi-site Architecture Considerations
 
Intro to MoPaaS
Intro to MoPaaSIntro to MoPaaS
Intro to MoPaaS
 
Cloud Foundry at NTT
Cloud Foundry at NTTCloud Foundry at NTT
Cloud Foundry at NTT
 
Building Opportunity with an Open Cloud Architecture
Building Opportunity with an Open Cloud ArchitectureBuilding Opportunity with an Open Cloud Architecture
Building Opportunity with an Open Cloud Architecture
 
Extending Cloud Foundry to .NET
Extending Cloud Foundry to .NETExtending Cloud Foundry to .NET
Extending Cloud Foundry to .NET
 
Cloud Foundry at Rakuten
Cloud Foundry at RakutenCloud Foundry at Rakuten
Cloud Foundry at Rakuten
 

Kürzlich hochgeladen

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Victor Rentea
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 

Kürzlich hochgeladen (20)

Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 

Go Within Cloud Foundry

  • 1. 1
  • 2. Mike Gehard Software Engineer, Pivotal Labs Go Within Cloud Foundry 2
  • 4. 4 4
  • 5. 5 5
  • 7. History of Go 6 September 21, 2007 Work begins on Go within Google Robert Griesemer, Rob Pike, Ken Thompson 6
  • 8. History of Go 6 September 21, 2007 Work begins on Go within Google Robert Griesemer, Rob Pike, Ken Thompson Late 2008 Russ Cox joins team 6
  • 9. History of Go 6 September 21, 2007 Work begins on Go within Google Robert Griesemer, Rob Pike, Ken Thompson Late 2008 Russ Cox joins team November 10, 2009 Public, open source project 6
  • 10. History of Go 6 September 21, 2007 Work begins on Go within Google Robert Griesemer, Rob Pike, Ken Thompson Late 2008 Russ Cox joins team November 10, 2009 Public, open source project March 28, 2012 Go 1.0 released 6
  • 11. History of Go 6 September 21, 2007 Work begins on Go within Google Robert Griesemer, Rob Pike, Ken Thompson Late 2008 Russ Cox joins team November 10, 2009 Public, open source project March 28, 2012 Go 1.0 released Early 2013 GoRouter put into production 6
  • 12. Why Go? Go was born out of frustration with existing languages and environments for systems programming. Programming had become too difficult and the choice of languages was partly to blame. One had to choose either efficient compilation, efficient execution, or ease of programming; all three were not available in the same mainstream language. Programmers who could were choosing ease over safety and efficiency by moving to dynamically typed languages such as Python and JavaScript rather than C++ or, to a lesser extent, Java. Go is an attempt to combine the ease of programming of an interpreted, dynamically typed language with the efficiency and safety of a statically typed, compiled language. It also aims to be modern, with support for networked and multicore computing. Finally, it is intended to be fast: it should take at most a few seconds to build a large executable on a single computer. To meet these goals required addressing a number of linguistic issues: an expressive but lightweight type system; concurrency and garbage collection; rigid dependency specification; and so on. These cannot be addressed well by libraries or tools; a new language was called for. - Go FAQ (http://golang.org/doc/faq#creating_a_new_language) 7 7
  • 13. 8 8
  • 14. 8 Go was born out of frustration with existing languages and environments for systems programming. Programming had become too difficult and the choice of languages was partly to blame. One had to choose either efficient compilation, efficient execution, or ease of programming; all three were not available in the same mainstream language. Programmers who could were choosing ease over safety and efficiency by moving to dynamically typed languages such as Python and JavaScript rather than C++ or, to a lesser extent, Java. 8
  • 15. 8 Go was born out of frustration with existing languages and environments for systems programming. Programming had become too difficult and the choice of languages was partly to blame. One had to choose either efficient compilation, efficient execution, or ease of programming; all three were not available in the same mainstream language. Programmers who could were choosing ease over safety and efficiency by moving to dynamically typed languages such as Python and JavaScript rather than C++ or, to a lesser extent, Java. Go is an attempt to combine the ease of programming of an interpreted, dynamically typed language with the efficiency and safety of a statically typed, compiled language. It also aims to be modern, with support for networked and multicore computing. Finally, it is intended to be fast: it should take at most a few seconds to build a large executable on a single computer. To meet these goals required addressing a number of linguistic issues: an expressive but lightweight type system; concurrency and garbage collection; rigid dependency specification; and so on. These cannot be addressed well by libraries or tools; a new language was called for. 8
  • 16. 9 Go is an attempt to combine the ease of programming of an interpreted, dynamically typed language with the efficiency and safety of a statically typed, compiled language. It also aims to be modern, with support for networked and multicore computing. Finally, it is intended to be fast: it should take at most a few seconds to build a large executable on a single computer. To meet these goals required addressing a number of linguistic issues: an expressive but lightweight type system; concurrency and garbage collection; rigid dependency specification; and so on. These cannot be addressed well by libraries or tools; a new language was called for. Go was born out of frustration with existing languages and environments for systems programming. Programming had become too difficult and the choice of languages was partly to blame. One had to choose either efficient compilation, efficient execution, or ease of programming; all three were not available in the same mainstream language. Programmers who could were choosing ease over safety and efficiency by moving to dynamically typed languages such as Python and JavaScript rather than C++ or, to a lesser extent, Java. Go is an attempt to combine the ease of programming of an interpreted, dynamically typed language with the efficiency and safety of a statically typed, compiled language. It also aims to be modern, with support for networked and multicore computing. Finally, it is intended to be fast: it should take at most a few seconds to build a large executable on a single computer. To meet these goals required addressing a number of linguistic issues: an expressive but lightweight type system; concurrency and garbage collection; rigid dependency specification; and so on. These cannot be addressed well by libraries or tools; a new language was called for. 9
  • 17. 10 Go was born out of frustration with existing languages and environments for systems programming. Programming had become too difficult and the choice of languages was partly to blame. One had to choose either efficient compilation, efficient execution, or ease of programming; all three were not available in the same mainstream language. Programmers who could were choosing ease over safety and efficiency by moving to dynamically typed languages such as Python and JavaScript rather than C++ or, to a lesser extent, Java. Go is an attempt to combine the ease of programming of an interpreted, dynamically typed language with the efficiency and safety of a statically typed, compiled language. It also aims to be modern, with support for networked and multicore computing. Finally, it is intended to be fast: it should take at most a few seconds to build a large executable on a single computer. To meet these goals required addressing a number of linguistic issues: an expressive but lightweight type system; concurrency and garbage collection; rigid dependency specification; and so on. These cannot be addressed well by libraries or tools; a new language was called for. 10
  • 18. 11 11
  • 19. 12 12
  • 20. 13 Go was born out of frustration with existing languages and environments for systems programming. Programming had become too difficult and the choice of languages was partly to blame. One had to choose either efficient compilation, efficient execution, or ease of programming; all three were not available in the same mainstream language. Programmers who could were choosing ease over safety and efficiency by moving to dynamically typed languages such as Python and JavaScript rather than C++ or, to a lesser extent, Java. Go is an attempt to combine the ease of programming of an interpreted, dynamically typed language with the efficiency and safety of a statically typed, compiled language. It also aims to be modern, with support for networked and multicore computing. Finally, it is intended to be fast: it should take at most a few seconds to build a large executable on a single computer. To meet these goals required addressing a number of linguistic issues: an expressive but lightweight type system; concurrency and garbage collection; rigid dependency specification; and so on. These cannot be addressed well by libraries or tools; a new language was called for. 13
  • 21. 14 Go was born out of frustration with existing languages and environments for systems programming. Programming had become too difficult and the choice of languages was partly to blame. One had to choose either efficient compilation, efficient execution, or ease of programming; all three were not available in the same mainstream language. Programmers who could were choosing ease over safety and efficiency by moving to dynamically typed languages such as Python and JavaScript rather than C++ or, to a lesser extent, Java. Go is an attempt to combine the ease of programming of an interpreted, dynamically typed language with the efficiency and safety of a statically typed, compiled language. It also aims to be modern, with support for networked and multicore computing. Finally, it is intended to be fast: it should take at most a few seconds to build a large executable on a single computer. To meet these goals required addressing a number of linguistic issues: an expressive but lightweight type system; concurrency and garbage collection; rigid dependency specification; and so on. These cannot be addressed well by libraries or tools; a new language was called for. 14
  • 22. 15 Go was born out of frustration with existing languages and environments for systems programming. Programming had become too difficult and the choice of languages was partly to blame. One had to choose either efficient compilation, efficient execution, or ease of programming; all three were not available in the same mainstream language. Programmers who could were choosing ease over safety and efficiency by moving to dynamically typed languages such as Python and JavaScript rather than C++ or, to a lesser extent, Java. Go is an attempt to combine the ease of programming of an interpreted, dynamically typed language with the efficiency and safety of a statically typed, compiled language. It also aims to be modern, with support for networked and multicore computing. Finally, it is intended to be fast: it should take at most a few seconds to build a large executable on a single computer. To meet these goals required addressing a number of linguistic issues: an expressive but lightweight type system; concurrency and garbage collection; rigid dependency specification; and so on. These cannot be addressed well by libraries or tools; a new language was called for. 15
  • 23. 16 16
  • 24. 17 Go was born out of frustration with existing languages and environments for systems programming. Programming had become too difficult and the choice of languages was partly to blame. One had to choose either efficient compilation, efficient execution, or ease of programming; all three were not available in the same mainstream language. Programmers who could were choosing ease over safety and efficiency by moving to dynamically typed languages such as Python and JavaScript rather than C++ or, to a lesser extent, Java. Go is an attempt to combine the ease of programming of an interpreted, dynamically typed language with the efficiency and safety of a statically typed, compiled language. It also aims to be modern, with support for networked and multicore computing. Finally, it is intended to be fast: it should take at most a few seconds to build a large executable on a single computer. To meet these goals required addressing a number of linguistic issues: an expressive but lightweight type system; concurrency and garbage collection; rigid dependency specification; and so on. These cannot be addressed well by libraries or tools; a new language was called for. 17
  • 25. 18 cannot be addressed well by libraries or tools; a new language was called for. 18
  • 26. 19 19
  • 27. 20 20
  • 28. 21 21
  • 29. 22 22
  • 30. 23 23
  • 31. 24 24
  • 32. 25 25
  • 33. 26 26
  • 34. 27 27
  • 35. 28 28
  • 36. 29 29
  • 37. 30 30
  • 38. 31 31
  • 39. 32 32
  • 40. 33 33
  • 41. 34 34
  • 42. Credits • http://talks.golang.org/2012/splash.article • http://www.flickr.com/photos/sebilden/6898920548 • http://www.flickr.com/photos/samjuk/1215416320 • http://www.flickr.com/photos/40320455@N03/4289782818 • http://www.flickr.com/photos/55723329@N00/6657150957 35 35