To C or Ruby that is the question :)

I’m trying to decide whether to pick up C again (as it’s been almost 13 years since I’ve done it) or Ruby. I’ve spent the last 13 years in the Java world, as of late I’ve been working with python as much as humanly possible. Ruby keeps me in the web side of things, but C would open up a bunch of Linux opportunities which I find interesting. I know one of my friends would say neither go for Erlang 🙂



8 thoughts on “To C or Ruby that is the question :)

  1. Erlang… all of spacewalk should be rewritten in it :).

    I know nothing about the language though beyond that couchdb uses it :0.

  2. What an odd choice. The languages have completely different problem domains. I can’t think of any case where I would look at a problem and think “this could be written in C or Ruby, if only I could decide which”.

    Anyway, since you asked for language advocacy, open your mind and learn a functional language. OCaml is a very good choice: all the speed of C, all the expressiveness of the Perl/Python/Ruby trio.

  3. Jebus!! Pfft why C or Ruby? Check out Scala, it’s really pretty interesting. Or Haskell, it has some interesting ideas. You should pick a language really different than one you know, more than just syntactic difference, to really get a flavor for a different way of looking at the world!

  4. If you have the patience I would say learn C. It is a do or die language when it comes to discipline. Though these days where crashing the code doesn’t necessarily bring down the whole computer that discipline isn’t necessarily learned by everyone. Just know that it will take time to become productive with C. Languages like Java and scripting languages can be pretty much picked up in a week if you know the fundamentals of programming. Mind you picking up a language and being proficient in it are two separate beasts. However, having patience with C brings its own rewards such as a deeper understanding of what is going on under the hood of more dynamic languages.

    On the flip side I don’t necessarily promote C as a good application language. It is just not productive enough. To me it is a language one should know as the basis for other languages. For most programming tasks the speed of being able to prototype with more dynamic languages is often of more benefit than being able to do fancy optimization using pointer arithmetic. However understanding how pointers work does open up new avenues even when not using C.

  5. I’d vote for either Erlang, Haskell, or Clojure. They’re all excellent languages with solid track records. They’re also functional languages which, one could argue, is where our field is heading in the medium-to-long term. And even if you don’t use them in your day-to-day work knowing one will make you a much better programmer.

  6. When I find my code in tons of trouble,
    Friends and colleagues come to me,
    Speaking words of wisdom,
    “Write in C.”

    As the deadline fast approaches,
    and bugs are all that I can see
    Somewhere, someone whispers:
    “Write in C.”

    Write in C, Write in C,
    Write in C, oh, Write in C.
    Ruby’s dead and buried,
    Write in C.

    I used to write a lot of FORTRAN.
    For science it worked flawlessly.
    Try using it for graphics!
    Write in C.

    If you’ve just spent nearly 30 hours,
    Debugging some assembly.
    Soon you will be glad to
    Write in C.

    Write in C, Write in C.
    Write in C, oh, Write in C.
    Erlangs’s not the answer.
    Write in C.

    Write in C, Write in C.
    Write in C, oh, Write in C.
    Haskell won’t quite cut it.
    Write in C.

  7. C++ + Qt + kdelibs = the power of C with a class library which makes Java look like a toy in comparison 🙂
    You know C (you just have to dust it off), you know OO (from Java), that’ll be enough to pick up the basic C++ required to use Qt effectively. It is then up to you whether you want to learn more C++ (writing templates as opposed to just using stock template containers, using complex libraries like Boost etc.) or whether the subset required to use Qt is enough for you.

Leave a Reply

Please log in using one of these methods to post your comment: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s