Anyone have any thoughts on why python and ruby are so similar, yet so far apart? They are obviously very close, because people switch between them all the time. And they are compared on everything (languages features, libraries, tooling...). I think it's a healthy competitive environment.
The biggest difference is the communities surrounding each, and the impression each leaves on people. When I think of "Python", I think of a mature, helpful, experienced, talented, well-educated community. I can generally trust their advice, I can trust their code, and I can trust their technical decisions. It feels like collaboration is important and encouraged. The Ruby community, whether this is deserved or not, l…
Ruby 2.0.0 Released
221–230 of 303 posts
Re: Ruby 2.0.0 Released
#222Anyone have any thoughts on why python and ruby are so similar, yet so far apart? They are obviously very close, because people switch between them all the time. And they are compared on everything (languages features, libraries, tooling...). I think it's a healthy competitive environment.
I think that ruby, perl, python and javascript are similar only in purely theoretical way. Python - is "executable pseudoscript". It does not have ruby elegance, perl "worse is better", javascript ... minimalism(?) I'm using python for prototyping. As communication tool. I can describe all python scetches to every programmer, be it javer, c-sharper, C-developer or SQL-er. Can I use perl/ruby/CSharp/Java/F#/Haskel? An…
> Ruby: it's the same as for perl
Nothing you said about Perl can be applied to Ruby.
Re: Ruby 2.0.0 Released
#223Earlier quoted context omitted.
You seriously would turn down a good job or other opportunity if the only downside was having to write in a whitespace-sensitive language? Most of the good developers I know have their preferences for sure, but can be productive in all sorts of languages.
Python has enough other design mistakes (statements vs expressions, destructive sort by default, and crippled lambdas to name a few) to keep away anyone with exposure to a more functional style even without whitespace issues.
Re: Ruby 2.0.0 Released
#224I do wonder about the long term success of Ruby. Rails is easily the most visible project for Ruby. Rails is big, and all that code represents a high barrier to entry for any framework in a different language that wants to compete. However, a lot of people I talk to are moving to pure JS front-end + REST backend. In this world Rails doesn't deliver any particular value (in my opinion). Ruby also has utility for doing…
As a Ruby user that finds Rails annoying and not something I like working with, I don't think that's all that relevant. A lot of people have come to Ruby because of Rails, but a lot of Ruby people dislike Rails too. There's a plethora of web frameworks for Ruby that have sprung up exactly because of people who want to use Ruby but don't like Rails. In terms for barrier to entry with Python, the issue is that a lot of…
This has to be up there with people claiming they don't like Lua because array indexing starts at 1 instead of 0. Of all the weaknesses of Python, focusing on something so superficial just seems lazy.
Perhaps in the future just say that you're experienced and comfortable with Ruby and have no reason to investigate Python at the moment. :)
Re: Ruby 2.0.0 Released
#225Earlier quoted context omitted.
I'm a huge Python fan and there is nothing in the world that would force me to switch to Ruby =P
That's exactly what I mean. People feel very strongly for one or the other. Yet, even you, can't deny that they are very similar! Compare them to Java, Lisp, C, Go, Haskell, Perl,...
It's their very similarity that gives rise to the strong feeling. René Girard's theory of mimetic rivalry sheds light on this.
Edit: Alternatively, http://en.wikipedia.org/wiki/Narcissism_of_small_differences
Re: Ruby 2.0.0 Released
#226Earlier quoted context omitted.
With a proper runtime, you don't bolt caching on, but rather implement it throughout the code base using both local cache state and shared network cache state. The end result is something simpler to implement, maintain, and deploy. However, thanks to using faster systems, the bar at which you must pay the implementation and deployment costs for caching is much higher than that of someone that needs it just to achieve…
I don't understand why you would want to implement HTTP caching in a language's runtime. Honestly, I don't even see where and how you could even do that.
You cache generated data where you need it. This is 1) Easy to add later, 2) Doesn't sacrifice the flexibility of being able to recompose that data on-demand, and 3) Doesn't require a bunch of complex front-end infrastructure to support.
Re: Ruby 2.0.0 Released
#227Earlier quoted context omitted.
Python has enough other design mistakes (statements vs expressions, destructive sort by default, and crippled lambdas to name a few) to keep away anyone with exposure to a more functional style even without whitespace issues.
Python is a functional language. They are not design mistakes, but merely things you disagree with. Lambdas aren't "crippled", for that matter. You can throw about "normal" functions too, you just don't have the convenient expression syntax.
Re: Ruby 2.0.0 Released
#228Earlier quoted context omitted.
Trying to guess how Python works is quite hard if you're used to Ruby and other languages closer to Java. As I don't know much Python myself, it's hard to tell where Python fails the "everything is an Object" check. But in Python some legacy calls were more procedural than OO, like "len(o)" rather than "o.len". I think eventually Python got to support both approaches. I think Ruby is all objects even in its C abstrac…
Just as note: I don't really would call "len(o)" a "legacy call", as in "something it's here just for backward compatibility, but it's ugly and please don't use it". It's more "the good way to do it" :D len() is a perfect example of the duck typing and the "protocol-based" philosophy of python: its implementation it's something like def len(object): return object.__len__() as in "just return the result of invoking th…
Re: Ruby 2.0.0 Released
#229Earlier quoted context omitted.
You don' know what you're talking about. I lead the web team for local.ch, we have 4mil unique clients a month and handle 10k requests per minute in peak traffic. Our site is developed in Ruby on Rails, with average response times from in the 150ms range. We replaced our legacy PHP system last year and will never look back. Ruby 2.0 will be our future, and I'm happy about that.
We're having millions of unique clients per month and our peak traffic is above 200k requests per minute. Ruby delivers, although you need to be very careful what you deploy to the main app codebase. Especially to realize the speed differences between stuff like uniq vs. uniq! or the cost of creating new objects. It's enormous with big traffic. There are some things I wouldn't do with Ruby here. Like some concurrent…
Re: Ruby 2.0.0 Released
#230Earlier quoted context omitted.
Python is a functional language. They are not design mistakes, but merely things you disagree with. Lambdas aren't "crippled", for that matter. You can throw about "normal" functions too, you just don't have the convenient expression syntax.
There is no reason to include statements in a language other than inexperience.