[go: up one dir, main page]

0% found this document useful (0 votes)
3 views17 pages

R1 Intro To Go

This document serves as an introduction to the Go programming language for a CS course, highlighting its features such as being compiled, concurrent, and garbage-collected. It emphasizes the importance of using Git for version control and provides resources for learning Go and completing assignments. Additionally, it offers advice on writing modular code and formatting using 'go fmt'.

Uploaded by

tejashwi.1991
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
3 views17 pages

R1 Intro To Go

This document serves as an introduction to the Go programming language for a CS course, highlighting its features such as being compiled, concurrent, and garbage-collected. It emphasizes the importance of using Git for version control and provides resources for learning Go and completing assignments. Additionally, it offers advice on writing modular code and formatting using 'go fmt'.

Uploaded by

tejashwi.1991
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 17

A Short Intro to Go

CS 240 – Fall 2018


Rec. 1
Some Housekeeping

• Make sure you are on Piazza


• Come to OH if you can’t install Go
• Start Assignment 1
• Let us know on the Piazza poll if this recitation is
too basic or advanced

Basic Advanced
You’re not a Business Major

Stop Saving File Versions Like this:


You’re a CS Major – Use Git
COMMAND WHAT IT DOES
git init Start recording changes in this
directory
git add Include this file in the next snapshot
git commit Take a snapshot (commit)
git reset Go back to the last snapshot
(commit)
git checkout a Go to snapshot a
Resources to Learn Git:
https://try.github.io/
Course website (Assignments):
http://web.kaust.edu.sa/Faculty/MarcoCanini/classes/CS240/F18/assig
nments.html

DEMO?
What’s this Weird Language I’ve Never Heard of?

“Go is a
compiled,
concurrent,
statically typed,
garbage-collected
language developed at Google”
- Rob Pike, 2012

Rob Pike is the Jeff Dean of distributed systems. Here’s the article the quote is from: https://talks.golang.org/2012/splash.article
What’s this Weird Language I’ve Never Heard of?

compiled Like C, C++


concurrent Like Erlang
statically typed Like C, C++, Java
garbage-collected Like Java and
Python
Why Not Use Python, Java, C++, etc?

Built for Systems.


Go preserves efficiency but has good abstractions.
Easy multi threading and IO communication.

Develop quickly
Do many things efficiently and at the same time
Seems Google Specific. Who Else Actually Uses it?

Official Self Reported List of Companies that use Go: https://github.com/golang/go/wiki/GoUsers


Why did they Choose Go?

“We built everything in Python because it was


easy,
but now it’s slow. So we switched to Go.”

- Most companies using Go


But How do I Use Go?
Start here:
https://tour.golang.org/list

Didn’t install Go? Use the web IDE:


https://play.golang.org/

Other Resources:
Go for Pythonists
https://talks.golang.org/2013/go4python.slide#1

Go for Distributed Systems


https://talks.golang.org/2013/distsys.slide#1

Official Go Talks
https://github.com/golang/go/wiki/GoTalks
But How do I Use Go?

DEMO
What About Object in Go?

DEMO
Build Software for Any System

go build file.go
Compile an executable for your machine

env GOOS=windows GOARCH=amd64 go build file.go


Compile an executable for Windows with 64 bit processor

DEMO?
Format your Code

COMMAND WHAT IT DOES


go fmt file.go Format the file.go properly

DEMO
Wait, I Have Questions!

Go’s official
“Frequently Asked Questions (FAQ)”
https://golang.org/doc/faq
Some Advice for the Assignments

• Write modular code


• Use comments (even to
yourself)
• Don’t forget go fmt (graded)
• The clearer your code is, the
more we can help with bugs

You might also like