Noel Rappin Writes Here

Didn't I Say I Wouldn't Compare Languages?

Posted on June 14, 2007


I posted a version of this to JJ Behrens’ Blog post about Ruby, and decided it was probably worth also posting here.

I use and like both Ruby and Python, here’s why…

Things I like about Ruby with respect to Python

  1. I think Ruby is the only language that gets accessors right. The thing you want to do 95% of the time – simple access – is trivial, and the thing you want to do 5% – something fancy in your accessor – of the time is a pretty easy override. Plus, it’s nicely encapsulated, and you never have to wonder if that thing in another class is accessed directly or via a method.

  2. Blocks. I find that my kind of functional style flows pretty easily in Ruby. It’s also not hard to pass named functions. When I first started with Ruby, it used to bother me that you couldn’t tell from a method signature if it took a block, but I’ve since managed to deal.

  3. Being able to add method to existing classes. Although I know this really bugs some people, sometimes adding a method to String cleans up the code significantly.

  4. Expression-based syntax. The implicit return in Python always causes me at least one error per sessions. Plus I like writing a ternary operator as an actual if statement.

Things I like about Python with respect to Ruby

  1. Consistency. Python enforces it. As a result, my Python code is more likely to be readable by me six months later. Ruby tends to be more concise, but some parts of Ruby are still a little too Perlish…

  2. Real keyword arguments (coming to Ruby soon). The Ruby syntax magic of gathering up map pairs into a hash is sort of annoying.

  3. I find Python’s multiple inheritance mechanism to be easier to understand then the Ruby package/module setup. It always seems like I’m messing up the difference between ‘require’ and ‘include’…

  4. On balance, I prefer Python immutable strings to Ruby’s mutable string/symbol split.



Comments

comments powered by Disqus



Copyright 2024 Noel Rappin

All opinions and thoughts expressed or shared in this article or post are my own and are independent of and should not be attributed to my current employer, Chime Financial, Inc., or its subsidiaries.