Hacker News new | past | comments | ask | show | jobs | submit login

I don't know how long you've been doing Python and Ruby, but when Why wrote that, the relationship between Rubyists and Pythonistas was pretty chilly.

As I saw it: There was this feeling that, after years of being dismissed as a mere scripting language, it was Python's time to shine — but then Ruby came along and (pushed along by Rails) was about to steal Python's thunder, and they were so similar that people thought there was only room for one such language in the New World Order. So Pythonistas began acting pretty rude toward the upstart Rubyists, and the Rubyists got this idea that Python was an evil, enemy technology.




There is a stark ideological contrast between the Ruby and Python communities with regard to code uniformity. Pythonistas believe there should be only one obvious way to do things. Rubyists, on the other hand, are more accepting of personal style in code, probably having gleaned some of the individualism from Perl culture.


I disagree, Rubyist barely exist, Ruby is primarily driven by Rails, and if anything is more opposite to the Perl TMTOWTDI concept it's "The Rails Way". You can follow the Rails design or you can experience a lot of pain trying to do it any other way.


Two comments:

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.


That is…not how most Rubyists view things, and not how most of the Ruby code out there works.

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.]


I agree Rails is not the Ruby opus magnum and the easiest way to get convinced about it is to read ruby-talk list for a couple of months.

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.


You're right: it's a preference for "one obvious way", not saying that there's "only one way". My error for saying this the way that I did.

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).


That's a regrettably blinkered view of Ruby.


I don't remember Python ever having a driving force equivalent to Rails. Ruby was a somewhat obscure language before Rails, regardless of its strenghts. I got into Python because of Zope, but the world would be a much, much better place had it been as popular as Rails.


I'm glad Zope lost, and that has nothing to do with Python.

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.


I see you met Zope 2. There is still a lot of it under Plone.

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.


While it is true that Ruby became popular because of Rails, it is no longer true that Ruby is only popular in the area of Rails nowadays.


Speaking as someone who used to write Zope 2 apps, allow me to say no. Hell, no.

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.


> the world would be a much, much better place had it been as popular as Rails.

Why?


No relational database sort of hidden under an object-relational mapper, a template language where the template is valid HTML are two reasons that pop out promptly. Also, Python would be more popular now, perhaps taking some space from things far uglier than Python or Ruby.

Just imagine the joy of using ZODB instead of EJB's layered on top of Oracle databases.


I don't understand why having your template be valid HTML is even a little bit good (I'm not saying it's bad — I just don't see why it's better than anything else). I don't think sending unprocessed templates as pages is a common use case, so there is zero benefit in having them be in a language that a browser can render unmodified.


Argh, I meant to upvote ig1's reply, but accidentally hit the arrow down... these arrows are so close together!


Perhaps I don't participate in the mailing lists and message boards where these battles were fought, but the only python/ruby users I've met in real life have always been pretty neutral towards the other language, at least acknowledging that it's better than the alternatives (PHP, Java etc).


Maybe this should serve as a reminder to all of us: http://jacobian.org/writing/thank-you-rails/


Do you have an example of this? I've always seen it as the other way round - Rubyists dismissing Python along with PHP and Java as old/irrelevant/less powerful.

But the whole thing is pointless anyway. Everyone should learn at least a little of both languages since they're both fantastic.


I have to agree the Ruby community always seemed to be very... emotional.


I saw a video of a talk of DHH in which he expressed his love for Ruby; he also said that Ruby was/is his first language and he doesn't need any other languages. As a counterexample, he showed a snippet of a Python class and scoffed at the double underscores for special methods, and the need to explicitely use 'self'.


> and they were so similar that people thought there was only room for one such language in the New World Order.

I hear this said a lot, but where does this idea come from? Their object models are different, their syntax is different, their goals are different.

Admittedly, I haven't written much Python (my experience is mostly reading it), but that's primarily because I preferred Ruby and have never seen what Python brings to the table.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: