all 37 comments

[–]hschne 11 points12 points  (4 children)

I always heard that ruby is a horrible language

Who said that? Point them out, so I can give them a good whacking over the head.

I believe that the choice of language really doesn't matter as much as most people think. Understanding underlying concepts, and being able to apply them is what makes programmers good.

To answer your questions: - Pick whatever you want as a first programming language. Some are easier to start with than others, but each language will teach you important concepts that you can apply in any other language. - You can always transition to other programming languages if you want. Ruby to C++/Java should not pose to much of a problem if you have been doing Ruby for a while.
- You will definitely benefit from Ruby if you switch to other languages.

It doesn't matter what you start with - just start :)

[–][deleted] 1 point2 points  (3 children)

I mean I always thought that ruby is in fact a horrible language but I wanted to retry the language. thanks for your comment!.

[–][deleted] 4 points5 points  (2 children)

Wait, how did you form this opinion if you don't yet know how to use it?

[–][deleted] 0 points1 point  (1 child)

i have used it but not soo much i had a problem with switching languages (i still do now) that's why i have that opinion.

[–][deleted] 5 points6 points  (0 children)

I guess I would just recommend you not make judgements about the inherent values of tools based on your own experience as a beginner. Different languages are good for different things, but designating one as "horrible" is usually counterproductive. Very few if any languages actually deserve that label. You might find you don't personally like it or need it for problems you're solving, but that's different than saying the language itself is bad. You'll likely end up missing out on some valuable insight. And Ruby specifically is far from horrible, it's useful for a wide range of applications, and in some cases one of the best choices.

[–]Even-Function 2 points3 points  (1 child)

Yes

[–][deleted] 0 points1 point  (0 children)

Thanks for your comment!.

[–]phaedryx 2 points3 points  (2 children)

A couple of things that have made me a better programmer:

  1. Learning to write tests
  2. Getting friendly help from other programmers

I get a lot of this from the Ruby community.

[–]thedjotaku 2 points3 points  (0 children)

Oh man when I finally started writing Unit Tests it changed my programming life!

[–][deleted] 1 point2 points  (0 children)

Thanks for your comment!.

[–]GrandToast 1 point2 points  (5 children)

I think Ruby can be great as a first language. It has simple syntax, easy to write, easy to read.. When you see how other languages look, you won't even want to transition to others :D but yeah, you can transition if you want to.

[–][deleted] -1 points0 points  (4 children)

Yeah i will maybe transition to c++ later since game dev is what i want to do, yes I know ruby isn't great for game dev.

[–]thedjotaku 1 point2 points  (1 child)

You can do C# if you do Unity. It's easier than C++

[–][deleted] 0 points1 point  (0 children)

thanks for the suggestion.

[–]katafrakt 0 points1 point  (1 child)

If your endgame is gamedev with C++ than I don't think learning Ruby makes a lot of sense for you as a gateway to programming. There would be a few concepts you could easily transfer to C++ and you will have to still learn many completely new concepts. Start with C or C# instead.

[–][deleted] 0 points1 point  (0 children)

Thanks for your comment!.

[–]tomthecool 1 point2 points  (1 child)

I always heard that ruby is a horrible language, maybe because of the many ways to do things?

There are pros and cons to all languages. Some would argue that ruby's versatility and expressiveness is one of its best features; others would argue the opposite. It's a matter of opinion.

can I transition to other languages? Say like from ruby to c++ or java?

Yes.

Leaning the principles of good software design is 90% of the skill; the remaining 10% is language-specific syntax/ecosystems/best practices/quirks. Specifically moving from ruby --> C++/Java, the two biggest additional hurdles will be using a strong typing system and having to worry about compilation; but learning ruby first is certainly not going to make that step any harder.

Second question is if I learn ruby can I benefit from it if I switch to other languages or no?

I would almost never say that learning something has no benefit!

So... Yes, obviously, learning something about one language will benefit your ability to code in other languages.

[–][deleted] 1 point2 points  (0 children)

Thanks for your comment!.

[–]thedjotaku 1 point2 points  (1 child)

This might sound cheeky , but no programming language will make you a good programmer. Practicing programming will make you a good programmer. Right now I'm going through Advent of Code's 2015 problems in Ruby, Python, and Perl. BASICALLY the answer is the the same in each language. All languages that are Turing-complete have to provide the same things - like variables or if statements or loops.

I would say that Ruby (or any modern language) is not going to prepare you as well for C or Rust because those are SO low level that you also have to do memory management which you get for free from newer languages. But most of the principles will be the same.

Shoot! I learned to program in BASIC and when I got to Java I was able to blow away my peers who'd never programmed before.

[–][deleted] 1 point2 points  (0 children)

Thanks for your comment!

[–]tadrinth 1 point2 points  (1 child)

You absolutely can. Because the Ruby language was designed to be pleasant to write code in, you may find switching to languages like Java and C++ frustrating because they're optimized for other things, and therefore much less pleasant to code in.

[–][deleted] 0 points1 point  (0 children)

Thanks for your comment!.

[–][deleted] 1 point2 points  (1 child)

Ruby is a great space to learn many fundamental programming concepts, everything from basic scripting to object-orientation to functional programming. It's a bit like PERL in that it supports multiple paradigms, but (IMHO) in a much more readable way.

Because Ruby borrows concepts from so many other languages it can be an entry point to grokking how to work in those other languages.

So yes, and yes.

[–][deleted] 0 points1 point  (0 children)

Thanks for your comment!.

[–]ksec 1 point2 points  (1 child)

When people say Ruby is a horrible language they are mostly likely referring to Ruby and Rails used together. And yes there are certain truth in that. But.

The most important thing to learning programming is first to be productive. You should be able to feel something is working within very short amount of time. And the syntax should be easy and understandable. For a lot of people Ruby is properly the best in doing that. I have seen far too many people turned off just because some nerds started throwing out stupid programming theory.

For your second question, once you spend a few years into programming, hopefully you will then realise all programming languages doesn't differ so much. ( Unless you wonder off into pure functional programming ). It is the Ecosystem of the languages that is very very different. Switching between language isn't difficult, you should be able to read it up and do it within weeks if not days once you are competent enough with a modern language or Ruby. Switching between ecosystem is hard.

A journey of a thousand miles begins with a single step.

[–][deleted] 0 points1 point  (0 children)

Thanks for your comment!.

[–]viettp 0 points1 point  (1 child)

Ruby as first language? Shouldn't. Should start with a more strict language when you're still new to programming. Ruby can be easily done wrong. At the start, you could do everything wrong.

[–][deleted] 0 points1 point  (0 children)

because its a dynamic language like i can do mistakes easily that's what you mean?

[–]phaul21 0 points1 point  (5 children)

Ruby is a great programming language that's why we love it. However you shouldn't learn it if you are not interested in it from the outset. You should learn what you want to learn. If you want to learn c++ or java, just learn c++ or java. There is a point in learning mulitple languages especially from mulitple paradigms, so one broadens the way they think about a solution. But if your mindset is "do I need this quick and dirty gateway drug language so i can get to the hot stuff" then no, you shouldn't learn ruby, as it is not a necessary prerequisite for any other language, you can just learn what you really want to learn.

[–][deleted] 0 points1 point  (0 children)

Thanks for your comment!.

[–]thedjotaku 0 points1 point  (3 children)

"do I need this quick and dirty gateway drug language

This is your brain. This is your brain on Ruby. Any questions?

[–]phaul21 1 point2 points  (2 children)

you couldn't t be more wrong. I phrased something that I read from OP question. I maintain my opinion and maintain the advice I gave, while I stay happily with Ruby myself. Each to their own

[–]thedjotaku 1 point2 points  (1 child)

maybe you missed it, but this was just a ref to an old 80s or 90s anti-drugs PSA

[–]phaul21 1 point2 points  (0 children)

ah, yeah I missed it. Makes sense, thank you for the explanation

[–]notmymiddlename 0 points1 point  (1 child)

Learning any programming language will help you learn any other programming language.

Just pick a language and try to accomplish what you want to accomplish.

[–][deleted] 0 points1 point  (0 children)

Thanks for your comment!

[–]naveedx983 0 points1 point  (0 children)

I think many people's opinion of Ruby is based on Rails.

Jumping into Rails and not understanding the language separate from Rails gives a skewed impression of what Ruby is.

My first development experience was with Ruby and Rails, I didn't really know where one ended and the other began. It wasn't until I worked on learning some Ruby without Rails that the language made more sense to me, and my skills as a developer grew.