Diversity VS uniformity
| There are many different programming languages out there. Each of them have profound cultural implications to their programmers. Programmers that learn new languages every once in a while find themselves travelling through different geek-culture warzones. Since one year I settled down in Ruby land. For me this language is unique, unlike any other language I have ever seen. One could view Ruby as the mechanical version of a natural language, because it allows people to extend this computer language like a natural language. |
Python and Ruby programmer’s mostly oppose eachother, although they can agree on one thing: PHP is the devil. Python and Ruby branched from the same ancestral tree but have significant cultural impacts. Like Java, Python embraces the principle of uniformity, whereas Ruby embraces the principle of diversity. One could argue that the latter might be more suitable for most of the current (european) political models :)
Now, I’m not saying that Python is for communists. Actually, I’d rather not dirty my hands on politics. But I do think these principles have significant cultural and economical consequences, respectively these are the working environment and the productivity.
I’m highly convinced that Ruby has a much greater potential for both. Programmers can program in their own style, they can even look at it as art. Like a columnist loves writing articles, programmers love writing their kung-fu code. I wonder wether this same columnist can have the same artistic joy in China.
David Heinemeier Hansson, the inventor of RubyOnRails, says beauty leads to happiness, hapiness leads to productivity . I do agree that the programmer’s freedom in creating this hapiness contributes to the productivity, but I don’t think it’s enough. To achieve the full potential of Ruby’s productivity, we need to adjust our development methodologies to this awesome language. Rails makes a good start by facilitating for example unit testing.
In short, I think Ruby is THE language for the new software world and a gateway to new ways of thinking.
sigh ruby is for animo Japanofiles .. it’s a hacked together python and perl, and little innovative. And its syntaxis is plain ugly… why the need of “end” if you have to indent anyway? Why the ugly block notitions that nobody can read? Why the ugly inline regexps that confuse the hell out of every programmer?
Ruby is just a hype.
Yes, the Ruby syntax can be quite ugly. One has the choice to write regexps inline for example, but one can also compile regexps using Regexp.new(“expression”).
People can make these choices, that are ugly in our view. This is one of the main reasons why I think techniques like unit-testing are absolutely necessary for keeping the maintainability.
This choice, writing in your own style, is yet another catalyst of the obvious Ruby hype (next to rails).
So what about community driven development like open source? When everyone creates his own coding style, which already exists on the ‘conforming’ syntax based languages, I would consider a very dynamic syntax not to be a contributer to the understanding and thereby rate of improvement of code created by others. I can even imagine this within a business environment. Or do you think ruby also reads like a normal language despite any one’s style? Also, wouldn’t programmers like the challenge to create as much diversity they can on a uniform syntax based language?