January 2019: Go and Node

Meetup #57. Please RSVP at Meetup.

We get started at 6:30 pm.

Sponsors

Venue provided by Startup Edmonton.

Food sponsored by Bellstone Engineering.

Talks

Go and Node.js: A comparison

Nathan Youngman gave a practical side-by-side comparison of Go and Node.js by building the same small web server in both languages. In Go he used net/http, ioutil.ReadAll, and struct tags to unmarshal a weather-style JSON payload, then fetched several URLs concurrently with goroutines, a sync.WaitGroup, and a mutex. In Node.js the equivalent used Express, async/await, object destructuring, and Promise.all to fetch in parallel. The talk highlighted the trade-offs: Go's static typing, explicit error handling, and lightweight goroutine concurrency versus JavaScript's dynamic typing, terser syntax, and async/await model — including a deliberate "2" == 2 example that fails to compile in Go but coerces silently in JavaScript.

Key points:

  • Same web server and JSON parsing implemented in Go and Node.js.
  • Go: net/http, struct tags, explicit error checks, goroutines + WaitGroup.
  • Node.js: Express, async/await, destructuring, Promise.all.
  • Go's concurrency is cheap and process-level; Node relies on the event loop.
  • Static typing vs dynamic coercion (the "2" == 2 example).
  • Error handling is explicit in Go and try/catch in Node.

Nathan Youngman (slides, code)

News

Jobs

Events