3. Outline
⢠Story of Go
⢠Purpose of Go
⢠Solving modern programing challenges
⢠Who is using Go?
⢠Conclusion
4. Story of GO
Robert Griesemer Rob Pike
Ken Thompson
On 2007, started sketching the goals for a new language on the
white board
On 2009, became an open source project
On 2012, first stable release
5. Story of GO
ââ In Google we have very large software systems and we spent
so long literally waiting for compilationsââ
Rob Pike
6. Story of GO
ââThe three of us got together and decided that we hated C++ââ
ken Thompson.
7. Purpose of GO
⢠Computers are enormously quicker but
software development is not faster.
⢠Dependency management
⢠Concurrency is Built In
⢠Memory Management
8. Solving Modern Programming
Challenges
⢠Choosing Static or Dynamic Language
⢠Programs Compile Quickly
⢠Easy Memory Management
⢠Enables Code Reuse
⢠How Will Your Language Handle Concurrency
9. Static or Dynamic Language
⢠Dynamic Languages
â Easy programing
â Not type safe
⢠Static Languages
â Type safety
â Slower
10. Go is Static language, but..
⢠Number := 5
⢠Name := âMohammedâ
⢠isTrue := false
13. Memory Management
⢠Applications may crash if there is :
â Improper memory management
â leak memory
⢠In languages, like C or C++, you need to allocate
a piece of memory before
you can use it, then de-allocate
15. Enables Code Reuse
Go
Rethinks traditional object orientation
for a flexible hierarchy-free type
system that enables code reuse with
minimal refactoring overhead.
16. Handle Concurrency
⢠Building a concurrent program is very hard
⢠You need to be careful from
â Race condition
â Dead Lock
17. Handle Concurrency
⢠Go provides :
â Goroutines
⢠Like threads, but use less memory and code
â Channels
⢠Communication way between goroutines
19. Conclusion
⢠Go is a :
âcompiled,
âconcurrent,
âgarbage-collected,
â statically typed language
âdeveloped at Google.
â and, It is an open source project