I read somewhere that Ruby has a "do what I mean" philosophy and Python has: "in the face of ambiguity refuse the temptation to guess". Whether or not you prefer one probably depends on your personality. Since they are both very capable.
I think they are close enough the 2nd order effects become important in choosing (do you need a web framework=ruby, do you need heavy number crunching == python)
With regards to indendation, in most common programming languages you indent anyways. Effectively, it is as if you have the same code with the parens (or whatever) erased. In other words, the parens are superfluous line noise. I've programmed in other languages for years, and I have never found myself limited by python's indentation. Perhaps in theory there could be a problem just like in theory static compile time typing may give you more reliable code. However, in practice that does not seem to be the case. It is probably something you have to try to know.
Ruby has an ambiguity, though I could be wrong. In Python you have to have () if you want to do any type of call: foo() object.foo(),etc.
In Ruby, object.foo -- is it a method call or an attribute? You cannot tell w/out more context which means you have to look at more code.
Erland, btw, looks really cool. Just like bytecode from back in the 80's pascal days is finally coming into fruition, I see erlang's ideas about threading (I think they got like 20 million threads running on a typical sun box!) to be something other languages will look at.
I'm tired, I hope most of this is coherent . . . .
Re: universally available
"in the face of ambiguity refuse the temptation to guess". Whether or not you prefer one probably depends on your personality. Since they are both very capable.
I think they are close enough the 2nd order effects become important in choosing (do you need a web framework=ruby, do you need heavy number crunching == python)
With regards to indendation, in most common programming languages you indent anyways. Effectively, it is as if you have the same code with the parens (or whatever) erased. In other words, the parens are superfluous line noise. I've programmed in other languages for years, and I have never found myself limited by python's indentation. Perhaps in theory there could be a problem just like in theory static compile time typing may give you more reliable code. However, in practice that does not seem to be the case. It is probably something you have to try to know.
Ruby has an ambiguity, though I could be wrong. In Python you have to have () if you want to do any type of call: foo() object.foo(),etc.
In Ruby, object.foo -- is it a method call or an attribute? You cannot tell w/out more context which means you have to look at more code.
Erland, btw, looks really cool. Just like bytecode from back in the 80's pascal days is finally coming into fruition, I see erlang's ideas about threading (I think they got like 20 million threads running on a typical sun box!) to be something other languages will look at.
I'm tired, I hope most of this is coherent . . . .