Four heavyweight backend languages, side by side. Each has its own philosophy — elegant, enterprise, concurrent, or all-Microsoft — and its own idiomatic style.
The same little program — greet the world and sum some numbers — written idiomatically in each. Switch tabs, read the real code, then press Run to see the simulated output (these compile on a server, not in your browser).
# hello.rb — run with: ruby hello.rb nums = [1, 2, 3, 4, 5] puts "Hello from Ruby!" nums.each { |n| puts " n = #{n}" } puts "sum = #{nums.sum}"
Go's superpower is cheap concurrency. A goroutine is a lightweight thread — you can launch thousands. Press Launch and watch 1,000 tasks light up (cyan = running) and finish (green). The grid is a simulation of Go's scheduler.
var wg sync.WaitGroup for i := 0; i < 1000; i++ { wg.Add(1) go func(id int) { // ← launch a goroutine defer wg.Done() process(id) }(i) } wg.Wait() // block until all 1000 finish
Why pick one over another? A quick orientation.