Sunday, August 28, 2011

Is Ruby such a good choice?

Let's see the Fibonacci implementation is C#, Ruby and Python.




As for me, C#'s Enumerable.Range() is somewhat messy compared to Ruby's and Python's variants.
Ruby's optional parentheses around arguments seem just right, as well as 'return' keyword which now looks spare in C# and Python for me.
Ruby's 40.times expression looks a bit weird, however, we could use more 'normal' loop like
for i in 0..39.
Python's absence of 'end' or '}' is the best thing in the whole language. I'm not joking.
So, I can't judge at the moment whether Ruby or Python code is more expressive or readable.

What about performance, C# wins with 9 secs, followed by Ruby with 1 minute and the Python variant took as much as 2 minute to execute. I must say that I don't bother about performance since in real life applications such numeric calculations encounter very rare and should not be done in dynamic scripting languages like Ruby or Python.

Wednesday, August 10, 2011

Going to get rid of git

After a whole month of fighting with Git I'm almost ready to switch to Mercurial (and to move my team as well).

Branching in Git is extremely flexible and, as a result, it's very, very annoying and error prone. Another cons of Git is lack of quality GUI. TortoiseGit is a clone of TortoiseSVN and does not mirror the Git concepts at all - it's nothing but a windows shell extension. GitExtensions is so horrible internally (I fixed some bugs and added a couple of features into it recently) that I don't believe it's going to get stable...

In the other hand, Mercurial has a superior GUI - TortoiseHg. I can't realize how the same company is able to do such a awful thing as TortoiseGit and such a wonderful one as TortoiseHg.