Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Let's "Go"

Let's "Go"

An Introduction to Programming in Go, presented by Paul Balogh, to the St. Louis CocoaHeads Meetup at the NISC offices in Lake St. Louis, January 28, 2020.

Paul Balogh

October 08, 2022
Tweet

More Decks by Paul Balogh

Other Decks in Programming

Transcript

  1. LET’S “GO” An Introduction to Programming in Go ST. LOUIS

    COCOAHEADS @ LAKE ST LOUIS MO, JAN 28 2020 Paul Balogh Cloud Platform@NISC @javaducky
  2. • Pronounce “BAY-LOG” • Cloud Platform Team Lead@NISC • Java

    Developer ~19 years, Software Engineer > 20 • Golang Enthusiast & Occasional OSS Contributor • Twitter/GitHub: @javaducky I AM NOT an expert! Paul Disclaimer: About Me
  3. https://golang.org/ Go is an open source programming language that makes

    it easy to build simple, reliable, and efficient software.
  4. What is Go? • Publicly announced by Google in November,

    2009 • Created by Robert Griesemer, Rob Pike, and Ken Thompson • ThoughtWorks Technology Radar suggests Trial use in 2014; switches to Adopt 6 months later • Vibrant, inclusive community striving for diversity backed by the Go Community Code of Conduct • Development language for major Cloud Native projects: Kubernetes, Linkerd, Docker, Terraform, Vitess, etc. About Go...
  5. What is Go? • Simple • Efficient • Reliable •

    Productive • Consistent • Popular About Go...
  6. { Simplicity. Advertised due to the smaller number (25) of

    keywords and single binaries. In reality, more of a credo than a language feature. “Clear is better than clever.” What is Go?
  7. Rob Pike … a desire to keep the language specification

    simple enough to hold in a programmer’s head.
  8. { Efficiency. Compiles to native machine code (32- & 64-bit

    x86, ARM). Programs compile fast with a very small binary result. Built with concurrency in mind: goroutines and channels. What is Go?
  9. { Reliability. Managed memory with Garbage Collection; pointer arithmetic not

    allowed. `defer` for use with cleanup code. What is Go?
  10. { Consistency. Static analysis tools `gofmt` and `golint` for ensuring

    standard code and documentation format. “Gofmt’s style is no one’s favorite, yet gofmt is everyone’s favorite.” What is Go?
  11. { Popularity. Go is the #4 language in use in

    GitHub behind JS, Python, and Java based upon “stars.” A trend driven by high-profile programs in the Cloud Native Computing Foundation (CNCF). What is Go?
  12. Helps you select an application framework by implementing a common

    service application with various languages and frameworks allowing for benchmark comparison. Wee S-V-C: a tiny service
  13. About WeeSVC... Meet WeeSVC • First repo started May ‘19

    with Java/SpringBoot • Like TodoMVC but for backend (micro)services • Many implementations; same use requirements • weesvc-gorilla is currently defining standard • It’s only me at this time Where it’s headed • Compatibility tests to ensure requirements met • Testing with simulated load for profiling • Website with published profiling results
  14. What Next? • Finalized “requirements” for functionality • Compatibility Suite

    to ensure service compliance • Updated weesvc-[springboot|micronaut|gokit] • Website with logo • Profiling Suite for comparative analysis And to appease the crowd... • weesvc-vapor written in Swift Coming Soon...
  15. Wrap Up • Go Developer Resources https://go.dev/ • GoDoc -

    Package Documentation https://godoc.org/ • Golang Weekly Newsletter https://golangweekly.com/ • Exercism - Code Practice and Mentorship https://exercism.io/ • Gopher Slack https://gophers.slack.com/ Resources
  16. GopherCon June 22-25, 2020 Walt Disney World Dolphin Resort Orlando,

    Florida $1,095 Corporate $795 Self-Paid Wrap Up