I cant really pin it down, but when I am programming in Python, the language flows along with my thoughts.
During intensive programming sessions, I never really feel the difference between my thoughts and the language flow.
I hope I make sense.
Often, I start solving a problem, solve a core part, then have to tack on additional conditions or workflows and I can just think about them and build them in python.
I have never had that happen in other languages and I have used C#, JS, C, C++, Java, Scala & VB.
Python has a much simpler grammar than most programming languages.
Also, I use spaces, never tabs!
As for screen real estate, I couldn't care less. What I do care more about is not wasting time making sure indentation levels are correct after a nasty merge, or fat fingering something that changes the logic of a statement, or not being able to easily move a block to another or not being able to visualize which blocks are collapsed or not due to a lack of separation, etc.
I've spent plenty of time in languages that are whitespace sensitive (python, haskell primarily) earlier in my career, but I would never go back.
Is like saying I know Python because I've worked with Django. Yes, I'd know the Python syntax and I'd be able to read Python code, but in my opinion I'll really not get to know the soul of the language
Rails is definitely Ruby, though not all of it. Non-trivial Rails work requires non-trivial understanding of Ruby, though there is some of the language and more of the standard library you can probably get by without in most Rails work. That's true of work in any application domain, though.
OTOH, Rails is highly opinionated in ways which aren't universal in Ruby, so it's quite possible for Rails to not click but Ruby to be a good fit for a particular programmer. I personally like Ruby as a language more than I like Rails as a web framework. Of languages of their general type, I go back and forth between preferring Ruby and Python.
My comment on Ruby language comes from the learning Ruby part.
Talk to a proficient C++ programmer and s/he'd say it flows.
It's easy it get tunnel-vision when one is only thinking of one's own experience. It might differ for others. I didn't mean to undermine your comment though. Just a thought.
But the thing is that the flowing part came effortlessly with Python. Maybe I need a few years with C/C++/java etc, but with Python, it took me less than a couple of months.
My thoughts could be very easily expressed as working code.
However, I noticed the same thing happened for other people, BUT they didn't think like I did.
Some used different ways of expressing the same thing, such as "if not" vs "unless". (although I do like unless)
When I learned python I thought it was clumsier. It was harder to use regular expressions, and didn't have shortcuts like:
while(<>) { $a = 1 if /abc/; }
But python seemed to add the right amount of structure. Similar code came from different developers.Also, trading (it now seems) unnecessary syntax items like braces and semicolons for syntactic indenting has made the language much more compact on the screen and therefore more is readable at a glance.
Most definitely. I hate typing those colons and brackets.