DEV Community

Cover image for Learn a New Language: Ruby or Go?
Marc Nevin
Marc Nevin

Posted on

Learn a New Language: Ruby or Go?

I'm lucky enough that I can take my time on lockdown to build some backlogged projects, draft some posts and develop some new skills, one thing I've been thinking about is learning some core concepts of a new language.

After looking at what I enjoy, what's popular and what's actually used, I've narrowed it down to Ruby and Go,

The case for Ruby

So many tools I love to use are built with Ruby and loads of great websites are written in Rails. Makes me think there's some real utility there I could start leveraging in my own solutions, not to mention Rails opens a new avenue for webdev!

The only hold-ups I have, it's not got a popular reputation locally, there are a few product teams that use it and talk regularly about how there's not many jobs in it and that they hope to migrate to something else...

The case for Go

Go has a certain appeal to me - most of my stack is Python-based with some JavaScript, using AWS; I used to work in a C/C++ stack and the promises of efficiency, combing my old domain with my current and "easy" integration to my current stack make it hard to not notice.

And again a lot of great tools and services are being built in it or things that were once Python (still my fav) are being ported to Go now, it seems a little less broad spectrum of services built with it?

Decisions, decisions

I'm leaning towards Go, but want some input, I know very few people who actively use either to draw from, anything I've found normally has a strong agenda, so I want to ask here, see what people think and crowdsource some opinions!

Which would you recommend starting with and why?

or if you've any strong experiences working on either, think one is easier to learn etc etc

Latest comments (63)

Collapse
 
antoniomarcosferreira profile image
Antonio Marcos Ferreira • Edited

I've been a Ruby on Rails developer for over 10 years, my suggestion is Golang for the backend and uses JavaScript for the frontend. Golang is simpler and you can process more information at a low cost for your structure.
If you choose Ruby on Rails, you will have trouble climbing and can prepare your pocket. And it will have a great monolithic.
You can start with a Go API framework like Fiber and NextJs for your front end, this stack is good for most modern web applications.

Collapse
 
thebayliscode profile image
ian-bayis

No language truly dies. Pick the language that can integrate best with the app that you are working on.

Collapse
 
m_nevin profile image
Marc Nevin

Interesting... I kinda filtered to the two based on some criteria I briefly covered above but mostly as they are the two most promising ones I identified that fit nicely into my current stack, with a degree of deviation.

Some of the languages/tools you mentioned though... having briefly done Android and having a load of friends in the space, it's not something I'm going to jump at soon! TS is... fine, I think I remember enough from some unpleasant Angular projects that I think I'd be able to pick it back up quick enough!

Rust is interesting... it's something I've considered in the past but if you start looking at trends, like with Go and Ruby, it's tough to justify using that same measuring stick!

On Web Assembly, definitely think it's going to be big; based on how these things normally go I imagine we'll abstract away from it though (maybe Blazor but signals aren't there for it yet )

Collapse
 
m_nevin profile image
Marc Nevin

Fair point, it seems like there'll be more of a learning curve in what people have said here!

 
brownio profile image
Antonio Djigo

For Rails, there is:

  • Better CLI & standardised framework
  • Code practices and design patterns are more standardised
  • Bigger community = More Q&A around google to fix your problems
  • More guides and courses to learn everything properly

I'm not saying Go does not have this, but, for sure these points are not as good as in Rails.

Collapse
 
juancarlospaco profile image
Juan Carlos

If I can only choose between Ruby and Go
I choose Crystal.

Collapse
 
travislaborde profile image
travislaborde

I had exactly the same question recently. But with a different background (basic -> vb -> vb.net -> c#).

I learned some Go for Hugo and really liked it. Then I learned some Ruby (not Rails) just for "fun" because I kept hearing how "happy" it makes everyone :) I have to admit it has some charm.

I think I'm going to spend more time with Ruby than Go, at least for now. Sinatra in particular and the Rack web setup make it very appealing. I didn't see anything like that for Go. Maybe by the time I get back to it, that'll be there too :)

Collapse
 
m_nevin profile image
Marc Nevin

Pretty good reasoning there!

Totally right about how everyone says how happy Ruby makes them... it might have factored into how I landed with it as one of the two to pick between,

Think I'm leaning to trying Go first and building something but tools like Rails and Sinatra mean I will be giving Ruby a go too afterwards

Collapse
 
maxwellk profile image
Keith Maxwell

I'd say Go, for two reasons:

  1. I want more experience with static typing

  2. I've been talking to a local recruiter recently and I think Go experience would open more doors for me personally; this is only an anecdote from one little market (Belfast, NI)

Collapse
 
m_nevin profile image
Marc Nevin

A very appropriate little market for me - also live in Belfast!

Think both would grow my skills, just by expanding how I approach designing solutions,

But you're right, looking around the market here, Go would serve better than Ruby!

Collapse
 
andyhaskell profile image
Andy Haskell • Edited

I've been a Gopher since 2013 and definitely really like the language for making concurrency easy, its static types, similarity to pretty much any other language, small list of OOP vocabulary, big standard library (I made my personal logo in Go's image package without a single go get!), and supportive community.

I don't know a ton of Ruby, however both languages excel in web development with Rails and Gorilla/Buffalo, both have enormous communities, and both make really readable code for different reasons. Either way you can't go wrong!

Collapse
 
anshbansal profile image
Aseem Bansal

The part of norvig.com/21-days.html with "Learn at least a half dozen programming languages" might be relevant.
Rails allows you to have an idea of web dev.
Go is being used by for parallel programming.

Which seems more relevant to you? These could give you new perspectives and give you a head way on different type of job profiles. Are you doing this for job? Are you doing this for a new perspective on how software can be built? The choice depends on these answers

Collapse
 
m_nevin profile image
Marc Nevin

New perspectives mostly: learning something that can expand how I think when creating solutions, it's why my preference was leaning to Go, the promise of easier parallel processing seems very enticing!