An introduction to go programming language

3,441 views
3,169 views

Published on

A brief introduction to Go programming language introduced by Google Inc.

Published in: Technology
3 Comments
1 Like
Statistics
Notes
  • The Go Programming Language (Addison-Wesley Professional Computing Series) --- http://amzn.to/1UI3Avq
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Go in Action --- http://amzn.to/1VpXzUR
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Introducing Go: Build Reliable, Scalable Programs --- http://amzn.to/1T2L4hq
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
No Downloads
Views
Total views
3,441
On SlideShare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
88
Comments
3
Likes
1
Embeds 0
No embeds

No notes for slide

An introduction to go programming language

  1. 1. By: SAH Wednesday, July 18, 2010 www.GoParser.blogspot.com Email: tparser@gmail.com
  2. 2. Contents of the session • Introduction • Why Go, a new programming language? • Design goals • Has or Hasn’t
  3. 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. 4. Introduction cont’d • Concurrent • System programming Language
  5. 5. Introduction cont’d • Garbage-Collected
  6. 6. Introduction cont’d Currently Experimental
  7. 7. Introduction cont’d • Open Source (Source code is available under BSD license)
  8. 8. Why Go, a new programming language?
  9. 9. Why Go…..? Cont’d Much has been changed but no new language to address those, say the following changes:
  10. 10. Why Go…..? Cont’d • Networked and Distributed environment. • Client server environment. • Clustering.
  11. 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. 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
  13. 13. Design Goals
  14. 14. Design Goals cont’d • System Language • Fast compilation
  15. 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. 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. 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. 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. 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. 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. 21. The End Be Green - Go Green

×