DEV Community

Discussion on: What made you switch your main programming language?

Collapse
 
tiagoamaro profile image
Tiago Padrela Amaro

Here's my example :)

I've been programming for 10 years, and I began with Java. After 2 and a half years of it, I've made the switch to Ruby. At the time, I've thought on the following points:

  • Readability
  • Available libraries
  • OpenSource community
  • Local community (more active and less "enterprisy")
  • Community philosophies
    • Tests were important and even small libraries wrote specs
    • Code quality and readability was praised and shared

Beginning

I was curious about the web. I wanted to know how the internet really worked out and was built, so I began studying HTML, CSS, JS and PHP. After a while, I got an opportunity on professionally working with web Java as a company intern.

At the time, I only knew a bit of "Wordpress", and didn't like PHP at all (syntax and local community). It simply didn't attract me.

Working with Java

When I got the job as an intern, I started working with a web framework they came up with, but was happy with it as I could see how the server-side really behaved, applications got deployed and learned a lot with their devops.

After a while...

Almost two years after I got in the company, my interest faded away, as I saw new technologies popping up and solving problems in a easier way. I've met Ruby on Rails through a college friend and it was wonderful.

At the time, Java also had Grails, but it didn't caught my attention. Groovy had a funky syntax, and a simple scaffold didn't work out of the box (with me, at the time, probably not doing it correctly and not having help around :P).

The Java IDE (Eclipse) we used was irritating me more and more. (Note: the company required that all devs used the same IDE).

Lastly, I wasn't happy at all with its ecosystem. IDEs were clunky, libraries didn't have a pattern and everybody I've met wanted to reinvent the wheel.

Also, around 2008/2009, Stack Overflow just had appeared, and Java threads always seemed to end in flame wars instead of actually solving problems.

Switching to Ruby

After some thought, I've decided to seriously focus on Ruby. Got some books, tutorials (Railscasts was incredible at the time!), started some basic Rails projects, and ended up using it to build my college's final project.

The problem was, I couldn't use it professionally. If I was going to use it, I had to quit my job and search for a company that used Ruby.

I ended up quitting the Java job, since at the time, I could do it. I had the wonderful opportunity on being jobless for a couple of months until I found something else.

Nowadays

Ever since, Ruby has been my main programming language (quick scripts, life automation, professionally, etc).

Nowadays, the web is a very different world! :) and I've been thinking on seriously studying Elixir.

Collapse
 
ben profile image
Ben Halpern

I'm also a Java -> Ruby convert. My story was learning Java in university, but I dropped out of CS after 1.5 years and feeling like it wasn't for me. A couple years later, still with an interest in technology and a few failed attempts at scrapping things together with help and still feeling helpless, I wanted to get back into code for real. I had an idea in mind and someone recommended Ruby on Rails as a good approach. He didn't know all that much more than me, but he knew where to look.

So when I got into Ruby I felt a lot more comfortable. The friendly syntax and flexible standard library really make coding a breeze. Ruby can be frustrating when you write a bug that Java's compiler would have caught, but it's an environment that lets me go from concept to execution without losing my train of thought.

I still mostly write in Ruby, but consider myself someone who'd "pick the right tool for the job". It just so happens that the right tool has remained Ruby. I was working on a node project for a while and was way less happy.

My current project, dev.to is a Rails app, but I am prepared to evolve it into a multi-language project via services and/or interop, like with Rust but for now, that's overthinking the problem at the present. For now it's just a basic Rails 5.1 app.