I spent the past week at a multi-lang conference in Montreal as part of the Ruby contingent. What i found is that most of the non-rubyists have a notion of Rails that is stuck back in 2007. Rails has changed a whole lot, particularly with version 3, and in doing so, has become a much better citizen in the Rubysphere, in particular it's integration with other libraries and tools. So in so far as that is the case, Rails follows a Rubyist paradigm now.
Second, i strongly disagree with the notion that the Ruby ethos and aesthetic "barely exist[s]". The number of Ruby conferences which do not have a rails focus that take place every year is quite large. Rails is and has been known to be different from Ruby, and once you are anywhere away from being a casual user of Rails, you will become familiar with the Ruby aesthetic by virtue of encountering libraries outside of Rails. The days of Rails plugins are gone.
Yes, Rails brought convention-over-configuration to the forefront of Ruby programming, but it wasn't the first library to do so…and it's had a lot of external influences as well. Remember that Rails3 is essentially Merb2, and that's heavily influenced by Rack as the backing mechanisms for networking.
Just in the Web arena, Rails is the big player, but Sinatra matters, as does Padrino. Ruby is still closer to Perl's TMTOWTDI than Python's "preferably one".
[Edited to fix typing errors from the iPad.]
OTOH the Python's "one way" is also not the point and is easily misunderstood.
I recently jumped into myriads of Python low-level webserver libs and engines - like say Sinatra. I had to investigate them thoroughly to decide what to use for our startup. There are dozens of them and each encourages some other style of programming. There wouldn't be so much of them if people went into "one way of doing things" church.
Ruby also has a bit of the "obvious way" (convention over configuration) stuff, but it's not as front-and-center as, say, the Zen of Python (where the obvious way stuff comes from, IIRC).
There's more in common than not in common between the two languages. I still prefer Ruby because it works the way my brain does (or, more accurately, there are choices made in Python design that do not work the way my brain does).
Zope was just a morass of over-complication. I remember buying the zope book sometime in the early 00s.
I was initially impressed with the completeness, but found it to be overly-complex and ugly to work with. Rails + Django happened for a reason.
Now, I haven't played with it in maybe 8 years, but I'd say pre-rails it was just not as elegant.
Neither Rails nor Django appeared on the radar before Zope 3 and Zope 3 is much a nicer platform than 2 (they applied a lot of lessons learned when making it). Grok is even more interesting, as it brings the convention over configuration to Zope 3 (Zope Corp does a lot of government contracts where, I assume, XML configuration files were mandated by clueless PHBs)
Also, had Zope been more successful at that time, it would have captured a lot of space that's now owned by Sharepoint and EJB messes.
Zope < 3.0 was a convoluted mess of two over-engineered applications named Bobo and Principia that were hacked together.
That's why the API had functions names like:
bobobase_modification_time
principia_is_folderish
That's why Zope 3 was rewritten from scratch.Zope 3 has a sane, albeit complex, architecture. Regretably it came too late into the game and by the time it was ready, every Python web developer had moved to turbogears or something else.
The only interesting piece of technology from Zope was the ZODB. I wish it had developed as a separate product.
Why?
Just imagine the joy of using ZODB instead of EJB's layered on top of Oracle databases.