SlideShare a Scribd company logo
1 of 21
Download to read offline
By: SAH
 Wednesday, July 18, 2010

www.GoParser.blogspot.com
 Email: tparser@gmail.com
Contents of the session
•   Introduction
•   Why Go, a new programming language?
•   Design goals
•   Has or Hasn’t
Introduction


• It’s a Google                     • Developed by:
  product                           Robert Griesemer,
• Project was                       Robert C. Pike, Ken
  started in 2007.                  Thompson and
• Officially                        others.
  announced in
  Nov. 2009
Introduction cont’d




          • Concurrent
  • System programming Language
Introduction cont’d




     • Garbage-Collected
Introduction cont’d


                    Currently
                  Experimental
Introduction cont’d




• Open Source (Source code is available under BSD license)
Why Go, a new programming language?
Why Go…..? Cont’d




Much has been changed but no new language to address those,
                say the following changes:
Why Go…..? Cont’d




   • Networked and Distributed environment.
   • Client server environment.
   • Clustering.
Why Go…..? Cont’d

      • To run on it has been possible to have:
           o More Efficient Hardware.
           o Multi core and multi chips Processors.
      • Rise of dynamically typed languages.
  • Sprawling Libraries and Dependency chains.
  • Each main stream language compromise alternatively.
      o Efficient compilation,
      o Efficient execution,
      o Ease of programming,
  • Lack of modern concepts like: garbage collection and
    parallel computing in popular systems languages.
Why Go…..? Cont’d
All these cannot be addressed well by libraries
or Tools; a new language was called for.

"it wasn't enough to just add features to
existing programming languages, because
sometimes you can get more in the long run by
taking things away…. They wanted to start from
scratch and rethink everything." Robert C. Pike
Design Goals
Design Goals cont’d




• System Language
• Fast compilation
Design Goals cont’d




• Easy dependency analysis and avoid much of the over head of C-Style include files
  & libraries.
• To make types feel lighter weight than in typical OO languages.
• Combine features of interpreted, dynamically typed languages in a system
  language. (e.g: ease of programming)
• Garbage collected
Design Goals cont’d




• Concurrent
• Propose an approach for the construction of system software on
  multicores machine.
• Increase writability/productivity (e.g: reduce the amount of typing)
Has or Hasn’t




•   Syntax is C-like
•   Statically typed
•   Procedural paradigm, Imperative programming style
•   Shorthand syntax for variable assignment
•   Closures by anonymous functions
•   Parallelism/concurrency by “Goroutines” & “Channel” mechanism.
•   Structures
•   Pointers and References
Has or Hasn’t con’t




•   OO? (Yes/No)
•   Interfaces
•   Built-in string type
•   No Assertions
•   No Exception handling
•   No while or do-while.
•   Compiled executables are completely native binaries unlike managed code
    however, have some runtime components that get embedded in the executables.
What other says
– TIOBE: Programming language of the year of
  2009 (www.tiobe.com).
– Google is going to have its own language like
  others to fill its tool box.
– Please change the name of your programming
  language. (Francis G. McCabe - developer of the
  Go! programming language)
– The name is more appropriate for embedded
  systems’ language.
References
• www.golang.org
• www.google-opensource.blogspot.com
• Concepts of Programming Languages
       by Robert W. Sebesta - Addison Wesley.

   A Special thanks to Mr. Abdul Wahab for his kind supervision during the
   course work.




                                             *****
               For comments & further details visit::. www.goparser.blogspot.com
                               or email::. tparser@gmail.com
The End




Be Green - Go Green

More Related Content

What's hot

Golang - Overview of Go (golang) Language
Golang - Overview of Go (golang) LanguageGolang - Overview of Go (golang) Language
Golang - Overview of Go (golang) LanguageAniruddha Chakrabarti
 
GO programming language
GO programming languageGO programming language
GO programming languagetung vu
 
Golang from Scala developer’s perspective
Golang from Scala developer’s perspectiveGolang from Scala developer’s perspective
Golang from Scala developer’s perspectiveSveta Bozhko
 
Why you should care about Go (Golang)
Why you should care about Go (Golang)Why you should care about Go (Golang)
Why you should care about Go (Golang)Aaron Schlesinger
 
Wonders of Golang
Wonders of GolangWonders of Golang
Wonders of GolangKartik Sura
 
Coding with golang
Coding with golangCoding with golang
Coding with golangHannahMoss14
 
Introduction to go lang
Introduction to go langIntroduction to go lang
Introduction to go langAmal Mohan N
 
Mphasis Digital - Use Go (gloang) for system programming, distributed systems...
Mphasis Digital - Use Go (gloang) for system programming, distributed systems...Mphasis Digital - Use Go (gloang) for system programming, distributed systems...
Mphasis Digital - Use Go (gloang) for system programming, distributed systems...Aniruddha Chakrabarti
 
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 languageRTigger
 
Golang #5: To Go or not to Go
Golang #5: To Go or not to GoGolang #5: To Go or not to Go
Golang #5: To Go or not to GoOliver N
 
Building Command Line Tools with Golang
Building Command Line Tools with GolangBuilding Command Line Tools with Golang
Building Command Line Tools with GolangTakaaki Mizuno
 

What's hot (20)

Introduction to Go-Lang
Introduction to Go-LangIntroduction to Go-Lang
Introduction to Go-Lang
 
Golang - Overview of Go (golang) Language
Golang - Overview of Go (golang) LanguageGolang - Overview of Go (golang) Language
Golang - Overview of Go (golang) Language
 
Go Language presentation
Go Language presentationGo Language presentation
Go Language presentation
 
Golang
GolangGolang
Golang
 
Go lang
Go langGo lang
Go lang
 
GO programming language
GO programming languageGO programming language
GO programming language
 
Golang from Scala developer’s perspective
Golang from Scala developer’s perspectiveGolang from Scala developer’s perspective
Golang from Scala developer’s perspective
 
Why you should care about Go (Golang)
Why you should care about Go (Golang)Why you should care about Go (Golang)
Why you should care about Go (Golang)
 
Wonders of Golang
Wonders of GolangWonders of Golang
Wonders of Golang
 
Go Lang
Go LangGo Lang
Go Lang
 
Coding with golang
Coding with golangCoding with golang
Coding with golang
 
Introduction to go lang
Introduction to go langIntroduction to go lang
Introduction to go lang
 
GoLang Introduction
GoLang IntroductionGoLang Introduction
GoLang Introduction
 
Mphasis Digital - Use Go (gloang) for system programming, distributed systems...
Mphasis Digital - Use Go (gloang) for system programming, distributed systems...Mphasis Digital - Use Go (gloang) for system programming, distributed systems...
Mphasis Digital - Use Go (gloang) for system programming, distributed systems...
 
Golang
GolangGolang
Golang
 
Golang
GolangGolang
Golang
 
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
 
Golang #5: To Go or not to Go
Golang #5: To Go or not to GoGolang #5: To Go or not to Go
Golang #5: To Go or not to Go
 
An Introduction to Go
An Introduction to GoAn Introduction to Go
An Introduction to Go
 
Building Command Line Tools with Golang
Building Command Line Tools with GolangBuilding Command Line Tools with Golang
Building Command Line Tools with Golang
 

Similar to An introduction to go programming language

Google's Go Programming Language - Introduction
Google's Go Programming Language - Introduction Google's Go Programming Language - Introduction
Google's Go Programming Language - Introduction Ganesh Samarthyam
 
The Ring programming language version 1.7 book - Part 6 of 196
The Ring programming language version 1.7 book - Part 6 of 196The Ring programming language version 1.7 book - Part 6 of 196
The Ring programming language version 1.7 book - Part 6 of 196Mahmoud Samir Fayed
 
Search-Driven Programming
Search-Driven ProgrammingSearch-Driven Programming
Search-Driven ProgrammingEthan Herdrick
 
computer-science_engineering_principles-of-programming-languages_introduction...
computer-science_engineering_principles-of-programming-languages_introduction...computer-science_engineering_principles-of-programming-languages_introduction...
computer-science_engineering_principles-of-programming-languages_introduction...AshutoshSharma874829
 
AddisDev Meetup ii: Golang and Flow-based Programming
AddisDev Meetup ii: Golang and Flow-based ProgrammingAddisDev Meetup ii: Golang and Flow-based Programming
AddisDev Meetup ii: Golang and Flow-based ProgrammingSamuel Lampa
 
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
 
The Ring programming language version 1.8 book - Part 6 of 202
The Ring programming language version 1.8 book - Part 6 of 202The Ring programming language version 1.8 book - Part 6 of 202
The Ring programming language version 1.8 book - Part 6 of 202Mahmoud Samir Fayed
 
The Ring programming language version 1.6 book - Part 6 of 189
The Ring programming language version 1.6 book - Part 6 of 189The Ring programming language version 1.6 book - Part 6 of 189
The Ring programming language version 1.6 book - Part 6 of 189Mahmoud Samir Fayed
 
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 LanguageGanesh Samarthyam
 
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 Ganesh Samarthyam
 
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...Zewia Software Solutions (P) Ltd
 
Python.pptx
Python.pptxPython.pptx
Python.pptxabclara
 
Golang, Future of Programming Language.
Golang, Future of Programming Language.Golang, Future of Programming Language.
Golang, Future of Programming Language.Sunil Yadav
 
Intro to Programming Lang.pptx
Intro to Programming Lang.pptxIntro to Programming Lang.pptx
Intro to Programming Lang.pptxssuser51ead3
 
difference between c c++ c#
difference between c c++ c#difference between c c++ c#
difference between c c++ c#Sireesh K
 

Similar to An introduction to go programming language (20)

Google's Go Programming Language - Introduction
Google's Go Programming Language - Introduction Google's Go Programming Language - Introduction
Google's Go Programming Language - Introduction
 
The Ring programming language version 1.7 book - Part 6 of 196
The Ring programming language version 1.7 book - Part 6 of 196The Ring programming language version 1.7 book - Part 6 of 196
The Ring programming language version 1.7 book - Part 6 of 196
 
Search-Driven Programming
Search-Driven ProgrammingSearch-Driven Programming
Search-Driven Programming
 
computer-science_engineering_principles-of-programming-languages_introduction...
computer-science_engineering_principles-of-programming-languages_introduction...computer-science_engineering_principles-of-programming-languages_introduction...
computer-science_engineering_principles-of-programming-languages_introduction...
 
AddisDev Meetup ii: Golang and Flow-based Programming
AddisDev Meetup ii: Golang and Flow-based ProgrammingAddisDev Meetup ii: Golang and Flow-based Programming
AddisDev Meetup ii: Golang and Flow-based Programming
 
IPT 2.pptx
IPT 2.pptxIPT 2.pptx
IPT 2.pptx
 
Compilers.pptx
Compilers.pptxCompilers.pptx
Compilers.pptx
 
Go Within Cloud Foundry
Go Within Cloud FoundryGo Within Cloud Foundry
Go Within Cloud Foundry
 
Intro to Go
Intro to GoIntro to Go
Intro to Go
 
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
 
The Ring programming language version 1.8 book - Part 6 of 202
The Ring programming language version 1.8 book - Part 6 of 202The Ring programming language version 1.8 book - Part 6 of 202
The Ring programming language version 1.8 book - Part 6 of 202
 
Ppl 13 july2019
Ppl 13 july2019Ppl 13 july2019
Ppl 13 july2019
 
The Ring programming language version 1.6 book - Part 6 of 189
The Ring programming language version 1.6 book - Part 6 of 189The Ring programming language version 1.6 book - Part 6 of 189
The Ring programming language version 1.6 book - Part 6 of 189
 
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
 
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...
 
Python.pptx
Python.pptxPython.pptx
Python.pptx
 
Golang, Future of Programming Language.
Golang, Future of Programming Language.Golang, Future of Programming Language.
Golang, Future of Programming Language.
 
Intro to Programming Lang.pptx
Intro to Programming Lang.pptxIntro to Programming Lang.pptx
Intro to Programming Lang.pptx
 
difference between c c++ c#
difference between c c++ c#difference between c c++ c#
difference between c c++ c#
 

Recently uploaded

Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?XfilesPro
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your BudgetHyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your BudgetEnjoy Anytime
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2Hyundai Motor Group
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxnull - The Open Security Community
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
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
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 

Recently uploaded (20)

Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
The transition to renewables in India.pdf
The transition to renewables in India.pdfThe transition to renewables in India.pdf
The transition to renewables in India.pdf
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?
 
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptxVulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your BudgetHyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
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
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 

An introduction to go programming language

  • 1. By: SAH Wednesday, July 18, 2010 www.GoParser.blogspot.com Email: tparser@gmail.com
  • 2. Contents of the session • Introduction • Why Go, a new programming language? • Design goals • Has or Hasn’t
  • 3. Introduction • It’s a Google • Developed by: product Robert Griesemer, • Project was Robert C. Pike, Ken started in 2007. Thompson and • Officially others. announced in Nov. 2009
  • 4. Introduction cont’d • Concurrent • System programming Language
  • 5. Introduction cont’d • Garbage-Collected
  • 6. Introduction cont’d Currently Experimental
  • 7. Introduction cont’d • Open Source (Source code is available under BSD license)
  • 8. Why Go, a new programming language?
  • 9. Why Go…..? Cont’d Much has been changed but no new language to address those, say the following changes:
  • 10. Why Go…..? Cont’d • Networked and Distributed environment. • Client server environment. • Clustering.
  • 11. Why Go…..? Cont’d • To run on it has been possible to have: o More Efficient Hardware. o Multi core and multi chips Processors. • Rise of dynamically typed languages. • Sprawling Libraries and Dependency chains. • Each main stream language compromise alternatively. o Efficient compilation, o Efficient execution, o Ease of programming, • Lack of modern concepts like: garbage collection and parallel computing in popular systems languages.
  • 12. Why Go…..? Cont’d All these cannot be addressed well by libraries or Tools; a new language was called for. "it wasn't enough to just add features to existing programming languages, because sometimes you can get more in the long run by taking things away…. They wanted to start from scratch and rethink everything." Robert C. Pike
  • 14. Design Goals cont’d • System Language • Fast compilation
  • 15. Design Goals cont’d • Easy dependency analysis and avoid much of the over head of C-Style include files & libraries. • To make types feel lighter weight than in typical OO languages. • Combine features of interpreted, dynamically typed languages in a system language. (e.g: ease of programming) • Garbage collected
  • 16. Design Goals cont’d • Concurrent • Propose an approach for the construction of system software on multicores machine. • Increase writability/productivity (e.g: reduce the amount of typing)
  • 17. Has or Hasn’t • Syntax is C-like • Statically typed • Procedural paradigm, Imperative programming style • Shorthand syntax for variable assignment • Closures by anonymous functions • Parallelism/concurrency by “Goroutines” & “Channel” mechanism. • Structures • Pointers and References
  • 18. Has or Hasn’t con’t • OO? (Yes/No) • Interfaces • Built-in string type • No Assertions • No Exception handling • No while or do-while. • Compiled executables are completely native binaries unlike managed code however, have some runtime components that get embedded in the executables.
  • 19. What other says – TIOBE: Programming language of the year of 2009 (www.tiobe.com). – Google is going to have its own language like others to fill its tool box. – Please change the name of your programming language. (Francis G. McCabe - developer of the Go! programming language) – The name is more appropriate for embedded systems’ language.
  • 20. References • www.golang.org • www.google-opensource.blogspot.com • Concepts of Programming Languages by Robert W. Sebesta - Addison Wesley. A Special thanks to Mr. Abdul Wahab for his kind supervision during the course work. ***** For comments & further details visit::. www.goparser.blogspot.com or email::. tparser@gmail.com
  • 21. The End Be Green - Go Green