An introduction to go programming language

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
1 de 21

Más contenido relacionado

La actualidad más candente

Introduction to Go-LangIntroduction to Go-Lang
Introduction to Go-LangFolio3 Software
2.7K vistas23 diapositivas
GolangGolang
GolangMichael Blake
40.3K vistas23 diapositivas
Go langGo lang
Go langSuelen Carvalho
8.3K vistas35 diapositivas
GO programming languageGO programming language
GO programming languagetung vu
2.1K vistas35 diapositivas

La actualidad más candente(20)

Introduction to Go-LangIntroduction to Go-Lang
Introduction to Go-Lang
Folio3 Software2.7K vistas
Golang - Overview of Go (golang) LanguageGolang - Overview of Go (golang) Language
Golang - Overview of Go (golang) Language
Aniruddha Chakrabarti7.1K vistas
Go Language presentationGo Language presentation
Go Language presentation
Gh-Mohammed Eldadah579 vistas
GolangGolang
Golang
Michael Blake40.3K vistas
Go langGo lang
Go lang
Suelen Carvalho8.3K vistas
GO programming languageGO programming language
GO programming language
tung vu2.1K vistas
Why you should care about Go (Golang)Why you should care about Go (Golang)
Why you should care about Go (Golang)
Aaron Schlesinger1.6K vistas
Wonders of GolangWonders of Golang
Wonders of Golang
Kartik Sura923 vistas
Go LangGo Lang
Go Lang
Venkata Naga Ravi937 vistas
Coding with golangCoding with golang
Coding with golang
HannahMoss14318 vistas
Introduction to go langIntroduction to go lang
Introduction to go lang
Amal Mohan N544 vistas
GoLang IntroductionGoLang Introduction
GoLang Introduction
Spandana Govindgari219 vistas
GolangGolang
Golang
Software Infrastructure691 vistas
GolangGolang
Golang
Felipe Mamud11.3K vistas
Golang #5: To Go or not to GoGolang #5: To Go or not to Go
Golang #5: To Go or not to Go
Oliver N2.2K vistas
An Introduction to GoAn Introduction to Go
An Introduction to Go
Imesh Gunaratne723 vistas
Building Command Line Tools with GolangBuilding Command Line Tools with Golang
Building Command Line Tools with Golang
Takaaki Mizuno2.4K vistas

Similar a An introduction to go programming language(20)

Search-Driven ProgrammingSearch-Driven Programming
Search-Driven Programming
Ethan Herdrick193 vistas
IPT 2.pptxIPT 2.pptx
IPT 2.pptx
CHRISPay413 vistas
Compilers.pptxCompilers.pptx
Compilers.pptx
MohammedMohammed57819717 vistas
Go Within Cloud FoundryGo Within Cloud Foundry
Go Within Cloud Foundry
Platform CF11.7K vistas
Intro to GoIntro to Go
Intro to Go
Clarence Bakirtzidis692 vistas
Ppl 13 july2019Ppl 13 july2019
Ppl 13 july2019
Khurram Tehseen48 vistas
Python.pptxPython.pptx
Python.pptx
abclara16 vistas
Intro to Programming Lang.pptxIntro to Programming Lang.pptx
Intro to Programming Lang.pptx
ssuser51ead31 vista
difference between c c++ c#difference between c c++ c#
difference between c c++ c#
Sireesh K1K vistas

Último(20)

Java Platform Approach 1.0 - Picnic MeetupJava Platform Approach 1.0 - Picnic Meetup
Java Platform Approach 1.0 - Picnic Meetup
Rick Ossendrijver23 vistas
Web Dev - 1 PPT.pdfWeb Dev - 1 PPT.pdf
Web Dev - 1 PPT.pdf
gdsczhcet48 vistas
METHOD AND SYSTEM FOR PREDICTING OPTIMAL LOAD FOR WHICH THE YIELD IS MAXIMUM ...METHOD AND SYSTEM FOR PREDICTING OPTIMAL LOAD FOR WHICH THE YIELD IS MAXIMUM ...
METHOD AND SYSTEM FOR PREDICTING OPTIMAL LOAD FOR WHICH THE YIELD IS MAXIMUM ...
Prity Khastgir IPR Strategic India Patent Attorney Amplify Innovation23 vistas
Green Leaf Consulting: Capabilities DeckGreen Leaf Consulting: Capabilities Deck
Green Leaf Consulting: Capabilities Deck
GreenLeafConsulting170 vistas
ChatGPT and AI for Web DevelopersChatGPT and AI for Web Developers
ChatGPT and AI for Web Developers
Maximiliano Firtman152 vistas

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