Why Ruby over Python?

Discussion in 'Ruby' started by howachen@gmail.com, Jul 8, 2006.

  1. Guest

    Besides ROR, can you give me a reason why perfer ruby instead of
    python?

    seems to many users, they are very similar in nature...

    such as

    1. non C or Java style syntax
    2. focus on codes readability, not like Perl
    3. ..
    , Jul 8, 2006
    #1
    1. Advertising

  2. Lyle Johnson Guest

    Lyle Johnson, Jul 8, 2006
    #2
    1. Advertising

  3. vasudevram Guest

    wrote:
    > Besides ROR, can you give me a reason why perfer ruby instead of
    > python?
    >
    > seems to many users, they are very similar in nature...
    >
    > such as
    >
    > 1. non C or Java style syntax
    > 2. focus on codes readability, not like Perl
    > 3. ..


    Hi,

    I'm sticking my neck out here a bit, since I'm relatively new to Ruby,
    but gonna do it anyway ... :0) [I do have a good amount of experience
    in other languages like Java, C, Python]. More knowledgeable Rubyists,
    feel free to flame away at what I say below :) I know I'll learn
    something from it anyway.

    Reason 0: First of all, its not necessarily a matter of preferring Ruby
    *over* Python. Its not an either-or situation at all - unless you want
    to make it one. Its quite possible to learn and work with more than one
    language at the same time, or at least in a staggered/parallel manner.
    Many top developers are of the view that learning and using more than
    one language is beneficial, helps you grow as a programmer. I believe
    that myself. Dave Thomas recently spoke at a No Fluff Just Stuff
    interview on this point. I heard the MP3 - it was good. Don't have the
    URL right now, try Googling for keywords like +"Dave Thomas" + "NFJS"
    or variants.

    Reason 1: Ruby is more object-oriented than Python.

    Reason 2: The Principle of Least Surprise. You can, to a good extent,
    almost figure out how parts of the language / syntax work, after you've
    learnt a bit of it. Read the Pickaxe and other Ruby books and the docs
    to see more on what this means.
    I've been writing some Ruby code and can attest to it.

    Reason 3: No indentation rules like in Python. Just open the logical
    construct like if or while with its corresponding keyword ("if" /
    "while"), close it with "end". Though I'm an experienced developer and
    a very good typist, Python's syntax rules recently almost drove me mad,
    trying to track down an elusive bug that was related to indentation.
    The rules of indentation themselves are straightforward enough. The
    problem arises when you accidentally, say, mix spaces and tabs, or, if
    you're not using tabs (which is probably better), put in one more or
    less space - stuff like that. This was not the problem in my case,
    since I consistently use tabs. The problem arose - I think - because I
    was switching text editors (Metapad and GVim on windows) at times in a
    coding session. This somehow led to the changing of some tabs to
    spaces. Hard to detect visually in a Windows style editor like Metapad.
    Using the ":se list" option in GVim can help, but it still takes time
    to track down and change all those spaces back to tabs. One can argue
    away that one should not change editors in the middle of a session,
    etc., but the point is that this problem simply would not happen in
    Ruby, even if you switch editors midway.

    Though I like Python a lot, this is one reason why I'm moving some of
    my work to Ruby.
    [ I finally did manage to identify and fix the problem. ]

    I'm sure you'll get some other replies, which I'll read with interest
    ....

    HTH
    Vasudev
    ------------------------------------------------------------------------------------------------
    Vasudev Ram
    Independent software consultant
    http://www.geocities.com/vasudevram
    PDF conversion toolkit:
    http://sourceforge.net/projects/xtopdf
    ------------------------------------------------------------------------------------------------
    vasudevram, Jul 8, 2006
    #3
  4. Guest

    Hi --

    On Sat, 8 Jul 2006, wrote:

    > Besides ROR, can you give me a reason why perfer ruby instead of
    > python?
    >
    > seems to many users, they are very similar in nature...
    >
    > such as
    >
    > 1. non C or Java style syntax
    > 2. focus on codes readability, not like Perl
    > 3. ..


    I can give you the answer in my case: love. I fell in love with the
    Ruby language, and subsequently with the Ruby culture and community.
    That gives you a much more lucid, rigorous account of my experience
    than anything I can say about blocks, significant whitespace, or other
    language features possibly could.


    David

    --
    "To fully realize the potential of Rails, it's crucial that you take
    the time to fully understand Ruby--and with "Ruby for Rails" David
    has provided just what you need to help you achieve that goal."
    -- DAVID HEINEMEIER HANSSON, in the foreword to RUBY FOR RAILS.
    Complete foreword & sample chapters at http://www.manning.com/black!
    , Jul 8, 2006
    #4
  5. Guest

    On Sat, 8 Jul 2006 wrote:

    > Besides ROR, can you give me a reason why perfer ruby instead of
    > python?


    RoR is irrelevant to it.

    Ruby is love.
    Python is bondage.

    I choose love.


    Kirk Haines
    , Jul 8, 2006
    #5
  6. James Britt Guest

    wrote:
    > Besides ROR, can you give me a reason why perfer ruby instead of
    > python?


    The Ruby community is better-looking.



    --
    James Britt

    "The use of anthropomorphic terminology when dealing with
    computing systems is a symptom of professional immaturity."
    - Edsger W. Dijkstra
    James Britt, Jul 8, 2006
    #6
  7. Jamey Cribbs Guest

    James Britt wrote:
    > wrote:
    >> Besides ROR, can you give me a reason why perfer ruby instead of
    >> python?

    >
    > The Ruby community is better-looking.
    >

    And more modest.
    Jamey Cribbs, Jul 8, 2006
    #7
  8. Jamey Cribbs wrote:
    > James Britt wrote:
    >> wrote:
    >>> Besides ROR, can you give me a reason why perfer ruby instead of
    >>> python?

    >>
    >> The Ruby community is better-looking.
    >>

    > And more modest.
    >

    And more funny. :)
    Robin Stocker, Jul 8, 2006
    #8
  9. vasudevram wrote:
    > Hi,
    >
    > I'm sticking my neck out here a bit, since I'm relatively new to Ruby,
    > but gonna do it anyway ... :0) [I do have a good amount of experience
    > in other languages like Java, C, Python]. More knowledgeable Rubyists,
    > feel free to flame away at what I say below :) I know I'll learn
    > something from it anyway.
    >

    Not so much flames as challenges ...
    > Reason 0: First of all, its not necessarily a matter of preferring Ruby
    > *over* Python. Its not an either-or situation at all - unless you want
    > to make it one. Its quite possible to learn and work with more than one
    > language at the same time, or at least in a staggered/parallel manner.
    > Many top developers are of the view that learning and using more than
    > one language is beneficial, helps you grow as a programmer.

    I have found that switching languages rapidly, frequently, even in a
    "staggered/parallel" manner is for the most part counter-productive.
    Programming in *any* language is an activity that requires a mix of
    intense focus on the programming tasks *and* an intensely active
    communication in a spoken human language with customers and colleagues.
    Add multiple programming languages and you lose focus.

    Occasionally a project will need multiple languages. I've found those go
    slower and are more difficult than projects where you can wallow in your
    knowledge of a single language and a single application domain. I pity a
    programmer who has to write a Ruby - FORTRAN bridge that is called by a
    Java ERP application for an engineering firm located in Quebec. :)

    Yes, indeed, learning multiple languages does help you grow, provided
    they aren't too similar. There's a note about that on someone's blog --
    give me a day or so and I can track it down. But briefly, he claimed --
    and I somewhat agree -- that there are two broad classes of language.

    There's the "Algol Family", into which class C/C++, Java, Python, Ruby,
    Perl, etc. fall, and there's the "Lisp Family". If you're like most of
    us, you spend most of your time in the Algol family. His point was that
    you grow more if you learn a Lisp family language than if you learn
    another Algol family language.

    Incidentally, where I disagree is that I think there are six families:

    1. Macro assemblers
    2. Algol
    3. Lisp
    4. APL
    5. Forth
    6. Smalltalk

    One of the things that's attractive to me about Ruby is that it contains
    features from most of the six. I haven't found much of APL or Forth, but
    there are clearly influences from Algol, Lisp, Smalltalk and macro
    assembler.
    > Reason 1: Ruby is more object-oriented than Python.
    >

    Well ... Ruby objects were there from day one, and they resemble
    "classical" object concepts like those in Smalltalk, C++ and Java, but I
    don't think *today's* Python is "less object-oriented" than *today's*
    Ruby, nor do I think Ruby is "more object-oriented" than R, Lisp or Scheme.
    > Reason 2: The Principle of Least Surprise. You can, to a good extent,
    > almost figure out how parts of the language / syntax work, after you've
    > learnt a bit of it. Read the Pickaxe and other Ruby books and the docs
    > to see more on what this means.
    > I've been writing some Ruby code and can attest to it.
    >

    I haven't found Ruby code all that obvious to a newcomer. I've been
    programming a long time, and I have a programming style that evolved
    from macro assembler to FORTRAN to Perl to R, with influences from Lisp,
    FORTH and Java.

    Part of it is that I'm very much more familiar and comfortable with
    functional programming than I am with object-oriented programming. In my
    younger days, I was actually one of those people who went around on long
    tirades declaiming that Functional Programming was the one true way. :)
    I thought pure functional languages had a lot going for them. I still do.

    I spent about three hours last night trying to understand Hal Fulton's
    well-crafted example of metaprogramming that reads CSV files. I know it
    will make sense to me eventually, but it didn't after three hours. I
    know it's "good code", I know it's "elegant code", I know it's an
    example of the wonders of Ruby, and I know it works. But I still don't
    know why. :)
    > Reason 3: No indentation rules like in Python. Just open the logical
    > construct like if or while with its corresponding keyword ("if" /
    > "while"), close it with "end". Though I'm an experienced developer and
    > a very good typist, Python's syntax rules recently almost drove me mad,
    > trying to track down an elusive bug that was related to indentation.
    > The rules of indentation themselves are straightforward enough. The
    > problem arises when you accidentally, say, mix spaces and tabs, or, if
    > you're not using tabs (which is probably better), put in one more or
    > less space - stuff like that. This was not the problem in my case,
    > since I consistently use tabs. The problem arose - I think - because I
    > was switching text editors (Metapad and GVim on windows) at times in a
    > coding session. This somehow led to the changing of some tabs to
    > spaces. Hard to detect visually in a Windows style editor like Metapad.
    > Using the ":se list" option in GVim can help, but it still takes time
    > to track down and change all those spaces back to tabs. One can argue
    > away that one should not change editors in the middle of a session,
    > etc., but the point is that this problem simply would not happen in
    > Ruby, even if you switch editors midway.
    >

    Well ... there are language-specific IDEs for Python. If I were
    planning/required to learn Python, I'd probably use Leo. I've got Leo
    and if I can get it integrated with the languages I do use, Perl, R and
    Ruby, I'll give it a shot. And there are language-specific IDEs for
    Ruby. But don't *real* programmers use Emacs?

    <ducking>

    Actually, I've never bothered to learn Emacs. It had a (justified)
    reputation as a memory hog, so I learned vi. I'm pretty sure GNU Emacs
    is no longer a memory hog, but I'm so firmly down the "vim" path that
    Emacs seems like a distraction.

    --
    M. Edward (Ed) Borasky

    http://linuxcapacityplanning.com
    M. Edward (Ed) Borasky, Jul 8, 2006
    #9
  10. Doug H Guest

    wrote:
    > Besides ROR, can you give me a reason why perfer ruby instead of
    > python?
    >
    > seems to many users, they are very similar in nature...
    >
    > such as
    >
    > 1. non C or Java style syntax
    > 2. focus on codes readability, not like Perl
    > 3. ..


    Go ask this same question over on comp.lang.python and you'll see why
    you might prefer ruby.
    Doug H, Jul 8, 2006
    #10
  11. Guest

    Hi --

    On Sun, 9 Jul 2006, Troy Denkinger wrote:

    > As a longtime Perler, I dislike Python's significant whitespace. That's why
    > I could never go for it. Ruby just feels right to me. I enjoy writing it
    > and it feels liberating when I do.
    >
    > I still like Perl, but Ruby is quickly winning me over.


    Let's be clear about this, though: people *are* allowed to like and
    use more than one language :) This is a point that sometimes gets
    obscured in these "winner-take-all" language comparison discussions.


    David

    --
    "To fully realize the potential of Rails, it's crucial that you take
    the time to fully understand Ruby--and with "Ruby for Rails" David
    has provided just what you need to help you achieve that goal."
    -- DAVID HEINEMEIER HANSSON, in the foreword to RUBY FOR RAILS.
    Complete foreword & sample chapters at http://www.manning.com/black!
    , Jul 8, 2006
    #11
  12. wrote:
    > RoR is irrelevant to it.
    >
    > Ruby is love.
    > Python is bondage.

    Uh ... love ... bondage ... uh ... never mind

    <ducking>

    --
    M. Edward (Ed) Borasky

    http://linuxcapacityplanning.com
    M. Edward (Ed) Borasky, Jul 8, 2006
    #12
  13. M. Edward (Ed) Borasky wrote:
    > Yes, indeed, learning multiple languages does help you grow, provided
    > they aren't too similar. There's a note about that on someone's blog --
    > give me a day or so and I can track it down. But briefly, he claimed --
    > and I somewhat agree -- that there are two broad classes of language.
    >

    http://weblog.hypotheticalabs.com/?p=59

    --
    M. Edward (Ed) Borasky

    http://linuxcapacityplanning.com
    M. Edward (Ed) Borasky, Jul 8, 2006
    #13
  14. Xavier Noria Guest

    On Jul 8, 2006, at 19:08, wrote:

    >> As a longtime Perler, I dislike Python's significant whitespace.
    >> That's why
    >> I could never go for it. Ruby just feels right to me. I enjoy
    >> writing it
    >> and it feels liberating when I do.
    >>
    >> I still like Perl, but Ruby is quickly winning me over.

    >
    > Let's be clear about this, though: people *are* allowed to like and
    > use more than one language :) This is a point that sometimes gets
    > obscured in these "winner-take-all" language comparison discussions.


    Indeed, I am a dynamic languages enthusiast. Perl specialist by
    historical accident, that's the one I learned the firt. But very
    happy to code in either Python or Ruby. My Perl module Acme::pythonic
    is kind of a joke about these "dualities".

    -- fxn
    Xavier Noria, Jul 8, 2006
    #14
  15. James Britt Guest

    wrote:
    > Hi --
    >
    > On Sun, 9 Jul 2006, Troy Denkinger wrote:
    >
    >> As a longtime Perler, I dislike Python's significant whitespace.
    >> That's why
    >> I could never go for it. Ruby just feels right to me. I enjoy
    >> writing it
    >> and it feels liberating when I do.
    >>
    >> I still like Perl, but Ruby is quickly winning me over.

    >
    >
    > Let's be clear about this, though: people *are* allowed to like and
    > use more than one language :) This is a point that sometimes gets
    > obscured in these "winner-take-all" language comparison discussions.


    Don't be a party pooper.

    Next thing you know, people will start thinking it's OK to like and use
    more than one Web framework, or more than one editor, or more than one OS.

    And what fun would that be?

    --
    James Britt

    "You harmonize; then you customize."
    - Wilson Pickett
    James Britt, Jul 8, 2006
    #15
  16. James Britt wrote:
    > wrote:
    >> Hi --
    >>
    >> On Sun, 9 Jul 2006, Troy Denkinger wrote:
    >>
    >>> As a longtime Perler, I dislike Python's significant whitespace.
    >>> That's why
    >>> I could never go for it. Ruby just feels right to me. I enjoy
    >>> writing it
    >>> and it feels liberating when I do.
    >>>
    >>> I still like Perl, but Ruby is quickly winning me over.

    >>
    >>
    >> Let's be clear about this, though: people *are* allowed to like and
    >> use more than one language :) This is a point that sometimes gets
    >> obscured in these "winner-take-all" language comparison discussions.

    >
    > Don't be a party pooper.
    >
    > Next thing you know, people will start thinking it's OK to like and
    > use more than one Web framework, or more than one editor, or more than
    > one OS.
    >
    > And what fun would that be?

    Wait a minute ... there's *another* OS? This changes *everything*!
    --

    M. Edward (Ed) Borasky

    http://linuxcapacityplanning.com
    M. Edward (Ed) Borasky, Jul 8, 2006
    #16
  17. Guest

    I got into Ruby because of Rails. I like Ruby because of the
    readability, funcitonality, and object oriented approach not to mention
    the integration with Rails. Perl is great and has a bunch of
    packages/support because its been around a bit longer. I just finished
    reading David Black's book about RoR and it increased my interest in
    Ruby considerably. I guess to sum it up... less headache's >_<

    _Steve
    , Jul 8, 2006
    #17
  18. On Sat, 8 Jul 2006 wrote:

    > Besides ROR, can you give me a reason why perfer ruby instead of
    > python?


    Did you see the lovely young ladies (I hope you know who you are) at the
    last RubyConf?

    -- Matt
    It's not what I know that counts.
    It's what I can remember in time to use.
    Matt Lawrence, Jul 8, 2006
    #18
  19. Matt Lawrence wrote:
    > On Sat, 8 Jul 2006 wrote:
    >
    >> Besides ROR, can you give me a reason why perfer ruby instead of
    >> python?

    >
    > Did you see the lovely young ladies (I hope you know who you are) at
    > the last RubyConf?

    And ... which would *you* give a lovely young lady -- a ruby or a
    dangerous reptile?

    :)

    --
    M. Edward (Ed) Borasky

    http://linuxcapacityplanning.com
    M. Edward (Ed) Borasky, Jul 9, 2006
    #19
  20. gregarican Guest

    As someone who has used both languages for various projects I would say
    that I honestly have more fun programming in Ruby. It fits the way I
    think better and therefore is more intuitive than Python IMHO. The
    languages are similar in nature and if you learn one then learning the
    other shouldn't be too tough. The other external factor (other than
    personal experience) is the community. As others have posted the Ruby
    community is active, helpful, patient, and funny. Not every language
    necessarily can say that...

    wrote:
    > Besides ROR, can you give me a reason why perfer ruby instead of
    > python?
    >
    > seems to many users, they are very similar in nature...
    >
    > such as
    >
    > 1. non C or Java style syntax
    > 2. focus on codes readability, not like Perl
    > 3. ..
    gregarican, Jul 9, 2006
    #20
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Cesar Zam
    Replies:
    0
    Views:
    337
    Cesar Zam
    Nov 6, 2003
  2. Francois

    Why I chose Python over Ruby

    Francois, Mar 5, 2006, in forum: Python
    Replies:
    22
    Views:
    876
    Torsten Bronger
    Mar 6, 2006
  3. Mr. SweatyFinger

    why why why why why

    Mr. SweatyFinger, Nov 28, 2006, in forum: ASP .Net
    Replies:
    4
    Views:
    878
    Mark Rae
    Dec 21, 2006
  4. Mr. SweatyFinger
    Replies:
    2
    Views:
    1,839
    Smokey Grindel
    Dec 2, 2006
  5. Sara
    Replies:
    6
    Views:
    255
    John W. Krahn
    Apr 12, 2004
Loading...

Share This Page