Download - An introduction to go programming language
![Page 2: An introduction to go programming language](https://reader034.vdocuments.site/reader034/viewer/2022052602/559d247f1a28ab8a7a8b4750/html5/thumbnails/2.jpg)
Contents of the session
• Introduction
• Why Go, a new programming language?
• Design goals
• Has or Hasn’t
![Page 3: An introduction to go programming language](https://reader034.vdocuments.site/reader034/viewer/2022052602/559d247f1a28ab8a7a8b4750/html5/thumbnails/3.jpg)
Introduction
• It’s a Google product
• Project was started in 2007.
• Officially announced in Nov. 2009
• Developed by:Robert Griesemer, Robert C. Pike, Ken Thompson and others.
![Page 4: An introduction to go programming language](https://reader034.vdocuments.site/reader034/viewer/2022052602/559d247f1a28ab8a7a8b4750/html5/thumbnails/4.jpg)
Introduction cont’d
• Concurrent• System programming Language
![Page 5: An introduction to go programming language](https://reader034.vdocuments.site/reader034/viewer/2022052602/559d247f1a28ab8a7a8b4750/html5/thumbnails/5.jpg)
Introduction cont’d
• Garbage-Collected
![Page 6: An introduction to go programming language](https://reader034.vdocuments.site/reader034/viewer/2022052602/559d247f1a28ab8a7a8b4750/html5/thumbnails/6.jpg)
Introduction cont’d
Currently Experimental
![Page 7: An introduction to go programming language](https://reader034.vdocuments.site/reader034/viewer/2022052602/559d247f1a28ab8a7a8b4750/html5/thumbnails/7.jpg)
Introduction cont’d
• Open Source (Source code is available under BSD license)
![Page 8: An introduction to go programming language](https://reader034.vdocuments.site/reader034/viewer/2022052602/559d247f1a28ab8a7a8b4750/html5/thumbnails/8.jpg)
Why Go, a new programming language?
![Page 9: An introduction to go programming language](https://reader034.vdocuments.site/reader034/viewer/2022052602/559d247f1a28ab8a7a8b4750/html5/thumbnails/9.jpg)
Why Go…..? Cont’d
Much has been changed but no new language to address those,say the following changes:
![Page 10: An introduction to go programming language](https://reader034.vdocuments.site/reader034/viewer/2022052602/559d247f1a28ab8a7a8b4750/html5/thumbnails/10.jpg)
Why Go…..? Cont’d
• Networked and Distributed environment.• Client server environment.• Clustering.
![Page 11: An introduction to go programming language](https://reader034.vdocuments.site/reader034/viewer/2022052602/559d247f1a28ab8a7a8b4750/html5/thumbnails/11.jpg)
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.
![Page 12: An introduction to go programming language](https://reader034.vdocuments.site/reader034/viewer/2022052602/559d247f1a28ab8a7a8b4750/html5/thumbnails/12.jpg)
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
![Page 13: An introduction to go programming language](https://reader034.vdocuments.site/reader034/viewer/2022052602/559d247f1a28ab8a7a8b4750/html5/thumbnails/13.jpg)
Design Goals
![Page 14: An introduction to go programming language](https://reader034.vdocuments.site/reader034/viewer/2022052602/559d247f1a28ab8a7a8b4750/html5/thumbnails/14.jpg)
Design Goals cont’d
• System Language• Fast compilation
![Page 15: An introduction to go programming language](https://reader034.vdocuments.site/reader034/viewer/2022052602/559d247f1a28ab8a7a8b4750/html5/thumbnails/15.jpg)
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
![Page 16: An introduction to go programming language](https://reader034.vdocuments.site/reader034/viewer/2022052602/559d247f1a28ab8a7a8b4750/html5/thumbnails/16.jpg)
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)
![Page 17: An introduction to go programming language](https://reader034.vdocuments.site/reader034/viewer/2022052602/559d247f1a28ab8a7a8b4750/html5/thumbnails/17.jpg)
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
![Page 18: An introduction to go programming language](https://reader034.vdocuments.site/reader034/viewer/2022052602/559d247f1a28ab8a7a8b4750/html5/thumbnails/18.jpg)
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.
![Page 19: An introduction to go programming language](https://reader034.vdocuments.site/reader034/viewer/2022052602/559d247f1a28ab8a7a8b4750/html5/thumbnails/19.jpg)
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.
![Page 20: An introduction to go programming language](https://reader034.vdocuments.site/reader034/viewer/2022052602/559d247f1a28ab8a7a8b4750/html5/thumbnails/20.jpg)
References
• www.golang.org• www.google-opensource.blogspot.com
• Concepts of Programming Languagesby 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::. [email protected]
![Page 21: An introduction to go programming language](https://reader034.vdocuments.site/reader034/viewer/2022052602/559d247f1a28ab8a7a8b4750/html5/thumbnails/21.jpg)
The End
Be Green - Go Green