FAQ
I'm realizing I didn't frame my question well.

What's ***TOTALLY COMPELLING*** about Ruby over Python? What makes you jump
up in your chair and scream "Wow! Ruby has *that*? That is SO FRICKIN'
COOL!!! ***MAN*** that would save me a buttload of work and make my life
sooooo much easier!"

As opposed to minor differences of this feature here, that feature there.
Variations on style are of no interest to me. I'm coming at this from a C++
background where even C# looks like an improvement. ;-) From 10,000 miles
up, is there anything about Ruby that's a "big deal" compared to Python?

One person mentioned Japanese documentation. I'm sure that's Totally Kewl
to the Japanese....

--
Cheers, www.3DProgrammer.com
Brandon Van Every Seattle, WA

20% of the world is real.
80% is gobbledygook we make up inside our own heads.

Search Discussions

  • Andrew Dalke at Aug 18, 2003 at 6:20 pm

    Brandon J. Van Every:
    What's ***TOTALLY COMPELLING*** about Ruby over Python?
    Nothing.

    I think several people have been very explicit in saying
    that Ruby has some advantages over Python, and vice versa,
    that in most cases it's a wash, but that there's nothing 'TOTALLY
    COMPELLING" about Ruby.

    You need to acquire critical reading skills.

    And this sort of post is making your troll mark almost indelible.

    Andrew
    dalke at dalkescientific.com
  • Henk Burgstra at Aug 18, 2003 at 9:03 pm

    On Mon, 18 Aug 2003 12:20:50 -0600, Andrew Dalke wrote:
    And this sort of post is making your troll mark almost indelible.
    Brandon is not a troll. He is very serious in his quest to find a good
    'alternative' language. Look him up on Google.

    Regards,
    Henk Burgstra
  • Brandon J. Van Every at Aug 18, 2003 at 9:40 pm

    Andrew Dalke wrote:
    Brandon J. Van Every:
    What's ***TOTALLY COMPELLING*** about Ruby over Python?
    Nothing.

    I think several people have been very explicit in saying
    that Ruby has some advantages over Python, and vice versa,
    that in most cases it's a wash, but that there's nothing 'TOTALLY
    COMPELLING" about Ruby.
    That's the answer I was expecting to hear.
    You need to acquire critical reading skills.
    No I do not. I was seeking clear verification, and I got what I was looking
    for. I suggest that you need to acquire imagination skills. You can't seem
    to wrap your head around legitimate reasons for asking a question.
    And this sort of post is making your troll mark almost indelible.
    I'm tired of knee-jerkers like you. Welcome to my killfile!

    --
    Cheers, www.3DProgrammer.com
    Brandon Van Every Seattle, WA

    20% of the world is real.
    80% is gobbledygook we make up inside our own heads.
  • Bruno Desthuilliers at Aug 18, 2003 at 10:40 pm

    Brandon J. Van Every wrote:
    Andrew Dalke wrote:
    Brandon J. Van Every:
    (snip)
    And this sort of post is making your troll mark almost indelible.

    I'm tired of knee-jerkers like you. Welcome to my killfile!
    Lol ! A certified troll killfiling regular posters ! At this point, it
    becomes something like Mastery - with a great 'M'.

    Bruno

    PS : Brandon, please make my day and tell me : did I won my place in
    your killfile too ?-)
  • Brandon J. Van Every at Aug 19, 2003 at 4:12 am

    Bruno Desthuilliers wrote:
    PS : Brandon, please make my day and tell me : did I won my place in
    your killfile too ?-)
    Yes you did. Goodbye!

    --
    Cheers, www.3DProgrammer.com
    Brandon Van Every Seattle, WA

    20% of the world is real.
    80% is gobbledygook we make up inside our own heads.
  • Jeff Epler at Aug 18, 2003 at 6:29 pm

    On Mon, Aug 18, 2003 at 11:07:56AM -0700, Brandon J. Van Every wrote:
    I'm realizing I didn't frame my question well.

    What's ***TOTALLY COMPELLING*** about Ruby over Python?
    Nobody who uses Python would believe that there's anything "totally
    compelling" about Ruby. If there were, then none of the posts in
    c.l.python would be by people using Python. Of course, this doesn't
    mean that the newsgroup would be empty. There would still be "enlarge
    the size of your Python"-type spam. And there might even be the odd
    troll who would keep posting shit, trying to get the Python community
    riled up. Of course, without Python users, he wouldn't have much fun,
    would he, with nobody stupid enough to stand up to defend Python and
    "get trolled". So even the troll should be glad that there's nothing
    "totally compelling" about Ruby over Python.

    Jeff
    PS I'd just like to state for the record that neither Python nor Ruby
    have a totally compelling advantage compared to the following languages:
    BASIC
    /bin/sh
    BrainF**k
    Forth
    IBM 1180 assembler
    K&R C
    LOGO
    make
    Objective COBOL
    Orthagonal*
    RPG/3
    WaX
    WatFiv Fortran
    ... conversely, in 1985, about half the above did have a compelling
    advantage over both Python and Ruby: they existed.
    * Of course, I don't think a non-trivial program was ever written in
    Orthagonal, despite the fact that it's been around since '92 or '93.
  • Dave Brueck at Aug 18, 2003 at 6:30 pm

    On Monday 18 August 2003 12:07 pm, Brandon J. Van Every wrote:
    I'm realizing I didn't frame my question well.

    What's ***TOTALLY COMPELLING*** about Ruby over Python? What makes you
    jump up in your chair and scream "Wow! Ruby has *that*? That is SO
    FRICKIN' COOL!!! ***MAN*** that would save me a buttload of work and make
    my life sooooo much easier!"
    Nothing.

    -Dave
  • Daniel Dittmar at Aug 18, 2003 at 6:41 pm

    Brandon J. Van Every wrote:
    What's ***TOTALLY COMPELLING*** about Ruby over Python? What makes you jump
    up in your chair and scream "Wow! Ruby has *that*? That is SO FRICKIN'
    COOL!!! ***MAN*** that would save me a buttload of work and make my life
    sooooo much easier!"
    Code blocks, although I'd rather go to the source and steal them from
    Smalltalk.

    Python now has most of the parts to implement code blocks, perhaps not
    exactly like Smalltalk, but enough to make them useful. What is lacking
    is a syntax to be able to create lambdas with multiple statements. And
    perhaps a syntax without using the keyword lambda, as some people seem
    to have an allergic reaction to it.

    Daniel
  • Peter Hansen at Aug 18, 2003 at 6:53 pm

    Daniel Dittmar wrote:
    Brandon J. Van Every wrote:
    What's ***TOTALLY COMPELLING*** about Ruby over Python? What makes you jump
    up in your chair and scream "Wow! Ruby has *that*? That is SO FRICKIN'
    COOL!!! ***MAN*** that would save me a buttload of work and make my life
    sooooo much easier!"
    Code blocks, although I'd rather go to the source and steal them from
    Smalltalk.
    What is it about code blocks that would let "save *me* a buttload of work
    and make *my* life sooooo much easier"?

    If one can't answer that, one shouldn't expect to be able to answer whatever
    the heck it is Brandon has in mind (which is clearly not much), since
    only he has any idea what it is he wants, and we're not even sure about that...

    -Peter
  • John Roth at Aug 18, 2003 at 8:22 pm
    "Peter Hansen" <peter at engcorp.com> wrote in message
    news:3F41208F.40021A68 at engcorp.com...
    Daniel Dittmar wrote:
    Brandon J. Van Every wrote:
    What's ***TOTALLY COMPELLING*** about Ruby over Python? What makes
    you jump
    up in your chair and scream "Wow! Ruby has *that*? That is SO
    FRICKIN'
    COOL!!! ***MAN*** that would save me a buttload of work and make my
    life
    sooooo much easier!"
    Code blocks, although I'd rather go to the source and steal them from
    Smalltalk.
    What is it about code blocks that would let "save *me* a buttload of work
    and make *my* life sooooo much easier"?
    It's not so much code blocks. It's that Ruby's syntax gives you one code
    block for
    free in every method call. And the Ruby library is organized so that the
    facility
    is useful, which Python's isn't (or at least, it isn't as useful.)

    All of the Ruby collections implement a .each method, which is essentially
    a version of the Visitor pattern. If I want to do something to every element
    in a list or a dict (or any kind of collection,) all I have to do is say
    something
    like (using Python syntax):

    collectObj.each(<method name>)

    In Python, that's either a lambda (which restricts what you can do with it,)
    or a named function (which is overkill a huge amount of the time.) And you
    have to worry about distinctions between functions and methods. In other
    words, it's a mess compared to Ruby.

    Now, you can say: "We've got that with map()." Well, we've got it when
    your inputs are either lists (or implement the correct protocol) but the
    result is a list, it's not an internal modification to the object's state.

    You can also say: we can do that with for. Well, duh. For is a
    statement, not a method call.

    To continue on this vein, Ruby directly implements Visitor, Observer,
    Delegate and Singleton. I don't particularly like the way it does some
    of them, but Python can't claim any one of the four!

    Granted, you can do a clean singleton using new style classes and the
    __new__() method, but (as of 2.3) it's not anywhere in the core
    documentation
    that I could find. Observer is simply a couple of classes. Visitor I've
    discussed above, and I'll leave Delegate for the reader.
    If one can't answer that, one shouldn't expect to be able to answer whatever
    the heck it is Brandon has in mind (which is clearly not much), since
    only he has any idea what it is he wants, and we're not even sure about
    that...

    It might be better to simply take the question at face value, rather than
    slanging Brandon. I don't find the personalities to add anything of value
    to the conversation.

    John Roth
    -Peter
  • Peter Hansen at Aug 18, 2003 at 9:05 pm

    John Roth wrote:
    "Peter Hansen" wrote:
    What is it about code blocks that would let "save *me* a buttload of work
    and make *my* life sooooo much easier"?
    It's not so much code blocks. It's that Ruby's syntax gives you one code
    block for
    free in every method call. And the Ruby library is organized so that the
    facility
    is useful, which Python's isn't (or at least, it isn't as useful.)

    All of the Ruby collections implement a .each method, which is essentially
    a version of the Visitor pattern. If I want to do something to every element
    in a list or a dict (or any kind of collection,) all I have to do is say
    something
    like (using Python syntax):

    collectObj.each(<method name>)

    In Python, that's either a lambda (which restricts what you can do with it,)
    or a named function (which is overkill a huge amount of the time.) And you
    have to worry about distinctions between functions and methods. In other
    words, it's a mess compared to Ruby.

    Now, you can say: "We've got that with map()." Well, we've got it when
    your inputs are either lists (or implement the correct protocol) but the
    result is a list, it's not an internal modification to the object's state.

    You can also say: we can do that with for. Well, duh. For is a
    statement, not a method call.
    So what you seem to be saying is that Ruby has some features which
    in some cases can save some time or somewhat simplify code that when
    written in Python would take slightly longer or be slightly more
    complicated. (This probably underemphasizes the value you place on
    such a thing, but I think that's the gist of it.)

    While I do acknowledge that Python is often touted as a great solution
    over other languages just because it saves time and simplifies the
    resulting solutions, I'm not clear on why these few small differences
    would amount to a *TOTALLY COMPELLING* reason, to anyone, to use Ruby
    over Python.

    -Peter
  • John Roth at Aug 19, 2003 at 12:11 am
    "Peter Hansen" <peter at engcorp.com> wrote in message
    news:3F413F8C.47AAE514 at engcorp.com...
    John Roth wrote:
    "Peter Hansen" wrote:
    What is it about code blocks that would let "save *me* a buttload of
    work
    and make *my* life sooooo much easier"?
    It's not so much code blocks. It's that Ruby's syntax gives you one
    code
    block for
    free in every method call. And the Ruby library is organized so that the
    facility
    is useful, which Python's isn't (or at least, it isn't as useful.)

    All of the Ruby collections implement a .each method, which is
    essentially
    a version of the Visitor pattern. If I want to do something to every
    element
    in a list or a dict (or any kind of collection,) all I have to do is say
    something
    like (using Python syntax):

    collectObj.each(<method name>)

    In Python, that's either a lambda (which restricts what you can do with
    it,)
    or a named function (which is overkill a huge amount of the time.) And
    you
    have to worry about distinctions between functions and methods. In other
    words, it's a mess compared to Ruby.

    Now, you can say: "We've got that with map()." Well, we've got it when
    your inputs are either lists (or implement the correct protocol) but the
    result is a list, it's not an internal modification to the object's
    state.
    You can also say: we can do that with for. Well, duh. For is a
    statement, not a method call.
    So what you seem to be saying is that Ruby has some features which
    in some cases can save some time or somewhat simplify code that when
    written in Python would take slightly longer or be slightly more
    complicated. (This probably underemphasizes the value you place on
    such a thing, but I think that's the gist of it.)

    While I do acknowledge that Python is often touted as a great solution
    over other languages just because it saves time and simplifies the
    resulting solutions, I'm not clear on why these few small differences
    would amount to a *TOTALLY COMPELLING* reason, to anyone, to use Ruby
    over Python.
    I don't know either. I do know of several posters on the XP
    lists, however, who have switched from Python to Ruby, and
    I doubt that it was corporate pressure in any of their cases.

    If you're interested (which most of the posters here are not -
    I'm certainly not) you might check with them. I'm sure Phlip, for
    one, would be more than happy to say why he switched, and what
    made the difference.

    John Roth
    -Peter
  • Phlip at Aug 19, 2003 at 2:36 pm

    I don't know either. I do know of several posters on the XP
    lists, however, who have switched from Python to Ruby, and
    I doubt that it was corporate pressure in any of their cases.

    If you're interested (which most of the posters here are not -
    I'm certainly not) you might check with them. I'm sure Phlip, for
    one, would be more than happy to say why he switched, and what
    made the difference.

    John Roth
    Hi, JR!

    I got paid to research in Python, for a while, and started using Ruby
    as a hobby project on the side - http://flea.sf.net

    Python blocks, collections, and indentation all suck, but so do C++
    equivalents, and I still use the latter as a hobby language, too.

    If you were to instrument my physical responses and typing rate while
    coding using Python and Test Driven Development, and compare them to
    my responses using Ruby, you'd get close to assessing the subjective
    reason I ain't going back.

    And I would be interested to see such a comparison between Ruby and
    Smalltalk. I can't use the latter, but I suspect Ruby exceeds its
    expressiveness, but without the weird syntax.

    To reveal objective reasons would lead to tired old threads like this
    one. I could never write a paragraph expressing why Ruby is better, or
    why this is not a personal taste thing.

    The /Programming Ruby/ book says, "Ruby stays out of your way". I know
    Python tried to be like that too, but it left in so many little
    irritations.

    Finally, my TFUI book will use Ruby for its core samples, but
    generally written as expressively as possible, so that Pythonics and
    others can read it.

    I consider this a great improvement over similar books that use that
    abomination Java. The elegant simplicity of C++ and the blazing speed
    of Smalltalk!
  • Alan Kennedy at Aug 18, 2003 at 9:14 pm
    [John Roth, among others, wrote]

    [Snip: Some stuff about good things that Ruby does]

    As someone who has never seen or written a line of Ruby, I find it
    most interesting that of all the positive points being made about
    Ruby, no-one has posted a single line of Ruby code.

    Whenever people are making points about python, they usually post
    illustrative snippets of python. Fair enough, it's a python newsgroup,
    so maybe Ruby code doesn't belong.

    But I am interested to read others opinions of what Ruby has/does that
    python hasn't/doesn't. The support for continuations certainly sounds
    interesting. Some code snippets would really help, for illustrative
    purposes.

    but-python-does-almost-everything-that-*i*-need-ly y'rs.

    --
    alan kennedy
    -----------------------------------------------------
    check http headers here: http://xhaus.com/headers
    email alan: http://xhaus.com/mailto/alan
  • John J. Lee at Aug 18, 2003 at 10:03 pm
    "John Roth" <newsgroups at jhrothjr.com> writes:
    [...]
    It's not so much code blocks. It's that Ruby's syntax gives you one
    code block for free in every method call.
    I don't know what that means. Care to explain a bit more?

    [...]
    All of the Ruby collections implement a .each method, which is essentially [...]
    like (using Python syntax):

    collectObj.each(<method name>) [...]
    You can also say: we can do that with for. Well, duh. For is a
    statement, not a method call.
    I don't understand. Why does this matter?

    I guess you could implement this in Python if you had a burning
    desire, using __metaclass__ (caveat: never having had such a desire,
    I've never used metaclasses, so I may be wrong).

    To continue on this vein, Ruby directly implements Visitor, Observer,
    Delegate and Singleton. I don't particularly like the way it does some
    of them, but Python can't claim any one of the four!
    [...]

    And so...?


    John
  • Doug Tolton at Aug 18, 2003 at 10:37 pm

    On Mon, 18 Aug 2003 16:22:01 -0400, "John Roth" wrote:

    It might be better to simply take the question at face value, rather than
    slanging Brandon. I don't find the personalities to add anything of value
    to the conversation.
    Clearly you haven't followed c.l.p for long, otherwise you wouldn't
    make a statement like this. Brandon is *constantly* trolling this
    newsgroup with inflammatory and/or contradictory statements.
    Seriously do a search using google groups for Brandon Van Every in
    comp.lang.python. Your statement is innappropriate take in full
    context.


    Doug Tolton
    (format t "~a@~a~a.~a" "dtolton" "ya" "hoo" "com")
  • John Roth at Aug 19, 2003 at 12:18 am
    "Doug Tolton" <dtolton at yahoo.com> wrote in message
    news:e7l2kv8itrmaair87qto299m6rdl1r1kh3 at 4ax.com...
    On Mon, 18 Aug 2003 16:22:01 -0400, "John Roth"
    wrote:
    It might be better to simply take the question at face value, rather than
    slanging Brandon. I don't find the personalities to add anything of value
    to the conversation.
    Clearly you haven't followed c.l.p for long, otherwise you wouldn't
    make a statement like this. Brandon is *constantly* trolling this
    newsgroup with inflammatory and/or contradictory statements.
    Seriously do a search using google groups for Brandon Van Every in
    comp.lang.python. Your statement is innappropriate take in full
    context.
    I've been on c.l.py for around two years. Your statement
    is rude and assumes things you have not bothered to check
    out.

    There is a very simple rule for dealing with trolls, which most
    usenet newbies learn sooner or later. If you think someone is
    trolling, simply ignore them. Don't answer their posts, don't
    comment on them, don't even give them the gratification of
    a reply that says: "plonk!" Just killfile them and quit wasteing
    bandwidth. You've got better things to do with your time than
    maintaining an interaction that you find aggrevating.

    John Roth

    Doug Tolton
    (format t "~a@~a~a.~a" "dtolton" "ya" "hoo" "com")
  • Doug Tolton at Aug 19, 2003 at 4:18 pm

    On Mon, 18 Aug 2003 20:18:09 -0400, "John Roth" wrote:

    I've been on c.l.py for around two years. Your statement
    is rude and assumes things you have not bothered to check
    out.

    There is a very simple rule for dealing with trolls, which most
    usenet newbies learn sooner or later. If you think someone is
    trolling, simply ignore them. Don't answer their posts, don't
    comment on them, don't even give them the gratification of
    a reply that says: "plonk!" Just killfile them and quit wasteing
    bandwidth. You've got better things to do with your time than
    maintaining an interaction that you find aggrevating.
    You're right, I did make an assumption that you were new to the group.
    A lot of people who are new make posts just like you did. Saying we
    shouldn't be too harsh on Brandon, after a while they realize maybe he
    is just a troll.

    Perhaps my post was a bit rude, I shouldn't have automatically assumed
    you were new to this NG, although I am a bit baffled at hearing a long
    time c.l.p reading calling Every anything but a troll. You have to
    admit, that is atypical.


    Doug Tolton
    (format t "~a@~a~a.~a" "dtolton" "ya" "hoo" "com")
  • John Roth at Aug 19, 2003 at 5:00 pm
    "Doug Tolton" <dtolton at yahoo.com> wrote in message
    news:gui4kvcnh64s5pnl8v625ito0lb9cm7405 at 4ax.com...
    On Mon, 18 Aug 2003 20:18:09 -0400, "John Roth"
    wrote:
    I've been on c.l.py for around two years. Your statement
    is rude and assumes things you have not bothered to check
    out.

    There is a very simple rule for dealing with trolls, which most
    usenet newbies learn sooner or later. If you think someone is
    trolling, simply ignore them. Don't answer their posts, don't
    comment on them, don't even give them the gratification of
    a reply that says: "plonk!" Just killfile them and quit wasteing
    bandwidth. You've got better things to do with your time than
    maintaining an interaction that you find aggrevating.
    You're right, I did make an assumption that you were new to the group.
    A lot of people who are new make posts just like you did. Saying we
    shouldn't be too harsh on Brandon, after a while they realize maybe he
    is just a troll.

    Perhaps my post was a bit rude, I shouldn't have automatically assumed
    you were new to this NG, although I am a bit baffled at hearing a long
    time c.l.p reading calling Every anything but a troll. You have to
    admit, that is atypical.
    The standard usenet definition of a troll is someone who posts on
    a contentious (and usually off-topic) subject with the sole objective of
    stiring up reactions. I've only seen two classes of reaction to his posts:
    people who call him names, and people who respond to his question
    in a reasonable, thoughtful, and factual manner.

    That's not a troll. The questions may be ill-posed, they may not be
    questions that are all that comfortable for the self-satisfied to deal
    with, but questions of how Python stacks up against some other
    language do go to the issue of how Python should evolve in
    the future.

    As I said in another subthread of this thread, there is a standard
    usenet recommendation for dealing with people you think are
    trolls. Simply don't respond. Don't send them any response
    whatsoever. If their only purpose is to elicit responses, that
    strategy won't satisfy them, and they'll eventually go away.

    People are quite capable of making up their own minds about
    whether or not someone is making a useful contribution to the
    group, without a lot of other people running around screaming:
    "The sky is falling, we've got a troll."

    John Roth

    Doug Tolton
    (format t "~a@~a~a.~a" "dtolton" "ya" "hoo" "com")
  • Fredrik Lundh at Aug 19, 2003 at 5:26 pm

    John Roth wrote:

    The standard usenet definition of a troll is someone who posts on
    a contentious (and usually off-topic) subject with the sole objective
    of stiring up reactions.
    that's a very limited definition. I prefer this one:

    "An internet troll is someone who fishes for people's confidence and,
    once found, exploits it"

    ( from http://www.teamtechnology.co.uk/troll.htm )

    </F>
  • Aahz at Aug 20, 2003 at 2:01 pm
    In article <gui4kvcnh64s5pnl8v625ito0lb9cm7405 at 4ax.com>,
    Doug Tolton wrote:
    Perhaps my post was a bit rude, I shouldn't have automatically assumed
    you were new to this NG, although I am a bit baffled at hearing a long
    time c.l.p reading calling Every anything but a troll. You have to
    admit, that is atypical.
    I have been very careful to not label Brandon as a troll.
    --
    Aahz (aahz at pythoncraft.com) <*> http://www.pythoncraft.com/

    This is Python. We don't care much about theory, except where it intersects
    with useful practice. --Aahz
  • Andrew Dalke at Aug 20, 2003 at 9:11 pm

    Aahz:
    I have been very careful to not label Brandon as a troll.
    As have I.

    Andrew
    dalke at dalkescientific.com
  • Andrew Dalke at Aug 18, 2003 at 11:18 pm
    John Roth
    All of the Ruby collections implement a .each method, which is essentially
    a version of the Visitor pattern. If I want to do something to every element
    in a list or a dict (or any kind of collection,) all I have to do is say
    something like (using Python syntax):

    collectObj.each(<method name>)
    Does that mean 'apply the method to each element of my
    collection?'? Does it return a new container or modify things
    in-place? Is it applied recursively?

    Does it work on strings? Are characters in Ruby also strings?
    If so, and if .each is recursive, what's the bottom case?
    And you
    have to worry about distinctions between functions and methods. In other
    words, it's a mess compared to Ruby.
    Where does that distinction come into play? A method is a bound
    function, kinda like a curried function with self.

    I find C++ methods more confusing, because a reference to a
    class method is unbound, when I almost always want it bound.
    Now, you can say: "We've got that with map()." Well, we've got it when
    your inputs are either lists (or implement the correct protocol) but the
    result is a list, it's not an internal modification to the object's state.
    Ahh. Are strings in Ruby mutable or immutable? ... Yup,
    looks like it's mutable. From the FAQ

    def downer(string)
    string.downcase!
    end
    a = "HELLO"
    downer(a)
    puts a #=> "hello"

    In which case it makes more sense for this in Ruby than in
    Python, since

    "ABCDEFG".each(f)

    can't do that much unless f modifies state, either as a bound
    method or tweaking global variable.

    Given that rather fundamental difference, an each method
    in Python + code blocks wouldn't be any more powerful
    than a for statement. The following is possible

    def each(container, f):
    for i, x in enumerate(container):
    container[i] = f(container[i])

    but then it requires the container be indexable, which
    is stronger than just being iterable.

    How do Ruby's associative arrays work when the string used
    as the key is mutated in-place? Is it copy-on-write?
    To continue on this vein, Ruby directly implements Visitor, Observer,
    Delegate and Singleton. I don't particularly like the way it does some
    of them, but Python can't claim any one of the four!
    The Python approach to a Singleton is called a 'Borg' class.
    Described by Alex Martelli, it looks like
    class Borg:
    ... shared_state = {}
    ... def __init__(self):
    ... self.__dict__ = Borg.shared_state
    ...
    x1 = Borg()
    x1.a = "Albuquerque"
    x2 = Borg()
    x2.a
    'Albuquerque'
    >>>

    The other way to get singletons is with a factory function,
    which under Python wouldn't look different than a normal
    constructor. I looked at some Java code recently and
    wanted to suggest a factory implementation only to realized
    that would require a lot of 'new' removals.


    Granted, you can do a clean singleton using new style
    classes and the __new__() method,
    See Alex's discussion at
    http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/66531

    as for why singleton (so that 'x1 is x2') is less important
    than many consider. Though I know I can't recall needed a
    singleton for my code. Maybe I have a different code style?
    I've noticed a tendency of mine towards functional programming...

    Anyway, others consider Borg a workaround for Python's
    until-2.3 unability to support singletons, as with
    http://mail.python.org/pipermail/python-list/2002-April/096382.html

    As for Observer, etc., I know they are simple classes so I
    don't consider them all that important as a differentiator.
    It might be better to simply take the question at face value, rather than
    slanging Brandon. I don't find the personalities to add anything of value
    to the conversation.
    Despite my best attempts, I find it almost impossible to slag someone
    without including information to back up my view. Eg, I thought my
    numbers and trends of mentions of other programming languages was
    pretty interesting, but I guess it was of no value to you. :(

    Andrew
    dalke at dalkescientific.com
  • John Roth at Aug 19, 2003 at 12:42 am
    "Andrew Dalke" <adalke at mindspring.com> wrote in message
    news:bhrmk0$hi7$1 at slb0.atl.mindspring.net...
    John Roth
    All of the Ruby collections implement a .each method, which is
    essentially
    a version of the Visitor pattern. If I want to do something to every element
    in a list or a dict (or any kind of collection,) all I have to do is say
    something like (using Python syntax):

    collectObj.each(<method name>)
    Does that mean 'apply the method to each element of my
    collection?'? Does it return a new container or modify things
    in-place? Is it applied recursively?
    I think that's something that each object which implements .each
    needs to specify.
    And you
    have to worry about distinctions between functions and methods. In other
    words, it's a mess compared to Ruby.
    Where does that distinction come into play? A method is a bound
    function, kinda like a curried function with self.
    Ruby doesn't have functions in the sense that Python does. Since
    a module is treated as a class without instances, module level
    functions are class methods: they have the module itself as the instance.

    I find this to be a conceptually cleaner way of handling the
    issue.
    I find C++ methods more confusing, because a reference to a
    class method is unbound, when I almost always want it bound.
    Well, in C++, there is no class object to bind it to. I think that's
    a difficulty in C++, but then, I don't use the language.
    Now, you can say: "We've got that with map()." Well, we've got it when
    your inputs are either lists (or implement the correct protocol) but the
    result is a list, it's not an internal modification to the object's
    state.
    Ahh. Are strings in Ruby mutable or immutable? ... Yup,
    looks like it's mutable. From the FAQ

    def downer(string)
    string.downcase!
    end
    a = "HELLO"
    downer(a)
    puts a #=> "hello"

    In which case it makes more sense for this in Ruby than in
    Python, since

    "ABCDEFG".each(f)

    can't do that much unless f modifies state, either as a bound
    method or tweaking global variable.

    Given that rather fundamental difference, an each method
    in Python + code blocks wouldn't be any more powerful
    than a for statement. The following is possible

    def each(container, f):
    for i, x in enumerate(container):
    container[i] = f(container[i])

    but then it requires the container be indexable, which
    is stronger than just being iterable.
    The major difference is in program expressiveness.
    As I said, a For statement is a statement, while .each
    is an expression, even when followed by a code block.
    There's a considerable difference in the way the program
    is laid out, which makes a difference in how easy it is to
    determine what is being done.
    How do Ruby's associative arrays work when the string used
    as the key is mutated in-place? Is it copy-on-write?
    I believe that's true for strings: they're used enough that there's
    a special provision for them. For other objects, it's up to the
    object type to maintain its hash value properly, or to the
    application to rehash the dictionary.

    I don't really consider this to be the best policy, though.
    I like the Python solution better, though: solve the problem
    by not allowing mutable values as keys.
    To continue on this vein, Ruby directly implements Visitor, Observer,
    Delegate and Singleton. I don't particularly like the way it does some
    of them, but Python can't claim any one of the four!
    The Python approach to a Singleton is called a 'Borg' class.
    I knew I should have said: "And don't tell me about Borg.
    It's a bloody hack that never should have been invented,
    and should be quietly buried at the crossroads with a stake
    through its heart now that it's possible to do it properly."
    And I have said it before, on this newsgroup, in fact.
    The other way to get singletons is with a factory function,
    which under Python wouldn't look different than a normal
    constructor. I looked at some Java code recently and
    wanted to suggest a factory implementation only to realized
    that would require a lot of 'new' removals.
    Well, yes. You've always been able to do that, and
    the Ruby mechanism is basically a class function. The
    thing that the __new__() method (and Borg, to give it
    its due) does that neither the factory function nor the
    alternate constructor does is use the proper convention
    for creating the instance: that is, the class's name.

    That means that if you want to convert it from a singleton,
    you've got a greater chance of having code you don't have
    to touch.
    Despite my best attempts, I find it almost impossible to slag someone
    without including information to back up my view. Eg, I thought my
    numbers and trends of mentions of other programming languages was
    pretty interesting, but I guess it was of no value to you. :(
    I found it interesting, but not to the point. If there is one,
    it's simply a question of whether any of the differences are
    significant enough so someone who knows one language would
    consider switching to another one. Google searches won't tell
    you that, only looking for people who've made that switch
    will tell you.

    And I doubt if you'll find them on this newsgroup. That's the
    one problem I have with Brandon's questions. If I wanted
    to find out whether someone considered Ruby to be sufficiently
    better than Python to switch, I'd look on the Ruby newsgroup,
    not this one.

    I'm basically taking it from the viewpoint of whether there's
    anything in Ruby that I think would be good in Python, which
    is a question that might interest people on this NG.

    John Roth
    Andrew
    dalke at dalkescientific.com
  • Brandon J. Van Every at Aug 19, 2003 at 4:25 am

    John Roth wrote:
    "Andrew Dalke" <adalke at mindspring.com> wrote in message
    Despite my best attempts, I find it almost impossible to slag someone
    without including information to back up my view. Eg, I thought my
    numbers and trends of mentions of other programming languages was
    pretty interesting, but I guess it was of no value to you. :(
    I found it interesting, but not to the point. If there is one,
    it's simply a question of whether any of the differences are
    significant enough so someone who knows one language would
    consider switching to another one.
    The conclusion around here is pretty ironclad. From a Python standpoint,
    Ruby does not matter. And from a technical standpoint, I am not shocked.
    Python is already "more exotic" than mainstream industry knows it needs.
    Ruby attempts to be "more exotic" than Python. At some point, exoticism is
    not what one needs.
    Google searches won't tell
    you that, only looking for people who've made that switch
    will tell you.

    And I doubt if you'll find them on this newsgroup. That's the
    one problem I have with Brandon's questions. If I wanted
    to find out whether someone considered Ruby to be sufficiently
    better than Python to switch, I'd look on the Ruby newsgroup,
    not this one.
    Actually, I didn't think of looking for converts. Rather, I thought of
    looking for language wonks who are knowledgeable about Python + other
    languages, who had been through their own analysis of the pros and cons
    already. And I found some.

    But, I will try your idea because it's a good one. Get your marshmellows
    out for c.l.p, "Why did you switch from Python to Ruby?"

    --
    Cheers, www.3DProgrammer.com
    Brandon Van Every Seattle, WA

    20% of the world is real.
    80% is gobbledygook we make up inside our own heads.
  • Alex Martelli at Aug 19, 2003 at 11:23 am
    Andrew Dalke wrote:
    ...
    than many consider. Though I know I can't recall needed a
    singleton for my code. Maybe I have a different code style?
    I've noticed a tendency of mine towards functional programming...
    Good program designers rarely NEED singletons -- even when they
    tend towards object-oriented rather than functional programming.

    Kent Beck's superb "Test-Driven Development by example" book
    (Addison-Wesley, highly recommended to everybody!) has this to
    say on the subject, as part of an excellent though brief survey
    of useful design patterns:


    """
    Singleton

    How do you provide global variables in languages without global variables?

    Don't. Your program will thank you for taking the time to think about
    design instead.
    """


    This is ALL that Kent's book says on the subject -- and, really, it
    SHOULD be all that NEEDS to be said.

    The concept of a language that ENCOURAGES you to disregard Kent Beck's
    advice, and use Singleton instead of "taking the time to think about
    design", is truly appalling.


    Alex
  • Christos TZOTZIOY Georgiou at Aug 22, 2003 at 3:54 pm
    On Mon, 18 Aug 2003 16:22:01 -0400, rumours say that "John Roth"
    <newsgroups at jhrothjr.com> might have written:
    All of the Ruby collections implement a .each method, which is essentially
    a version of the Visitor pattern. If I want to do something to every element
    in a list or a dict (or any kind of collection,) all I have to do is say
    something
    like (using Python syntax):

    collectObj.each(<method name>)
    You can do similar things in Python, just wrap your collection in a
    class. Check this module:

    http://www.sil-tec.gr/~tzot/python/predicates.py

    See the test cases after the line
    if __name__ == "main":

    Does this work for you? Esp. the do method.

    PS I don't believe that the my final test labeled "Tricky" works, but
    RSN I'm going to work on it :)
    --
    TZOTZIOY, I speak England very best,
    Microsoft Security Alert: the Matrix began as open source.
  • Andrew Dalke at Aug 18, 2003 at 7:06 pm

    Daniel Dittmar:
    What is lacking
    is a syntax to be able to create lambdas with multiple statements. And
    perhaps a syntax without using the keyword lambda, as some people seem
    to have an allergic reaction to it.
    How about this?

    def Lambda(x, y):
    z = x+y
    return z

    print Lambda(2,3)

    ;)

    In more seriousness, Python makes a strong distinction betweeen statements
    and expressions. Lambdas can be used in expressions, so if it includes
    statements then what would would the layout look like which preserves
    good Pythonic nature?

    Here's one such example of defining a function for simple
    numerical integration.

    def integrate(fctn, start = -1.0, end = 1.0, step = 0.1):
    return sum(map(fctn, range(start, end, step)))/((end - start)/step)

    print integrate(fctn = def (x):
    print "Evaluating at", x,
    if x > 0:
    y = math.cos(x)
    else:
    y = math.sin(x)
    print "=", y
    return y
    })

    I think Python's parser can handle this. It has a certain charm
    to it as well. But if the code is more than a line or two long then
    I think it should be a named function. My main complaint is that
    I can't stick a 'print' in the lambda, as for debugging. Occasionally
    I'll have code akin to

    def print_(*args):
    print " ".join(map(str, arg)))
    return 1

    intergrate(lambda x: print_(x) and x)

    which is a workaround. But I rarely need it, prefering named
    functions over unnamed ones.

    Andrew
    dalke at dalkescientific.com
  • Erik Max Francis at Aug 18, 2003 at 7:09 pm

    "Brandon J. Van Every" wrote:

    I'm realizing I didn't frame my question well.

    What's ***TOTALLY COMPELLING*** about Ruby over Python?
    comp.lang.ruby doesn't have Brandon Van Every.

    --
    Erik Max Francis && max at alcyone.com && http://www.alcyone.com/max/
    __ San Jose, CA, USA && 37 20 N 121 53 W && &tSftDotIotE
    / \ I dream things that never were and say, "Why not?"
    \__/ John F. Kennedy
  • Istvan Albert at Aug 18, 2003 at 7:50 pm

    Erik Max Francis wrote:

    What's ***TOTALLY COMPELLING*** about Ruby over Python?
    comp.lang.ruby doesn't have Brandon Van Every.
    LOL

    Istvan.
  • Brandon J. Van Every at Aug 18, 2003 at 9:55 pm

    Istvan Albert wrote:
    Erik Max Francis wrote:
    What's ***TOTALLY COMPELLING*** about Ruby over Python?
    comp.lang.ruby doesn't have Brandon Van Every.
    Erik has been in my killfile forever, from other newsgroups. I even had to
    put him back in after letting him out. I thought a year would have been
    enough, but apparently not.
    LOL

    Istvan.
    So, you're guilty by association. Goodbye!

    --
    Cheers, www.3DProgrammer.com
    Brandon Van Every Seattle, WA

    20% of the world is real.
    80% is gobbledygook we make up inside our own heads.
  • Erik Max Francis at Aug 18, 2003 at 10:27 pm

    "Brandon J. Van Every" wrote:

    Erik has been in my killfile forever, from other newsgroups. I even
    had to
    put him back in after letting him out. I thought a year would have
    been
    enough, but apparently not.
    There's been at least four of five times where Brandon has claimed to
    have put me in his killfile; he keeps "forgetting." Not that that is
    terribly surprising coming from someone who is so fond of telling people
    about the contents of his killfile.

    --
    Erik Max Francis && max at alcyone.com && http://www.alcyone.com/max/
    __ San Jose, CA, USA && 37 20 N 121 53 W && &tSftDotIotE
    / \ I want a martini that could be declared a disaster area.
    \__/ Capt. Benjamin "Hawkeye" Pierce
  • Christos TZOTZIOY Georgiou at Aug 23, 2003 at 12:34 am
    On Mon, 18 Aug 2003 14:55:21 -0700, rumours say that "Brandon J. Van
    Every" <vanevery at 3DProgrammer.com> might have written:
    Istvan Albert wrote:
    Erik Max Francis wrote:
    What's ***TOTALLY COMPELLING*** about Ruby over Python?
    comp.lang.ruby doesn't have Brandon Van Every.
    Erik has been in my killfile forever, from other newsgroups. I even had to
    put him back in after letting him out. I thought a year would have been
    enough, but apparently not.
    LOL

    Istvan.
    So, you're guilty by association. Goodbye!
    Brandon,

    I have no reason to call you names, and I won't bother pretending to be
    a practical psychologist laying out my opinion about your social
    interoperability; however, I will give your sense of humour a test :)

    You have reported that you once in a while lose your killfile[1] because
    of newsreader changes, "OS" (quotes intended to humour MS Windows)
    reinstallations etc. A way to do comparisons between two languages is
    to test them on practical matters. So, based on that periodical loss of
    killfile, and on your keen-ness of informing your "victimfiles", I have
    an idea for you.

    Write a program in Python and Ruby that reproduces anytime your killfile
    by googling your posts and selecting those containing a combination of
    the words "killfile", "killfiling", "goodbye" and possibly "plonk!"
    (don't know if you use that one); these are replies to people you
    killfiled.
    In the process, taste the languages. Request for support in the groups
    (disabling temporarily your newly recreated killfile :). Join the
    communities. Share the experience. Answer yourself your own questions
    --and CC the groups in that answer!

    I can't talk for Ruby, but I have lived the above for Python (and for a
    long time just by lurking in the group; we're different in that, but I
    don't imply I'm better than you). Ruby sounds interesting, but Python
    has my heart (yes, geeks fall in love with computer languages, just like
    with any other human product for which a lot of craftsmanship has been
    invested).

    Now, after all the sweet talk, I'll show you my true teeth (I'm a faulty
    lying human sun of a beach after all) and tell you: "Stop believing
    you're a leader and a lone wolf; there can't be two of us" :)

    Cheer up, man. If people disappoint you, don't shut them off your
    world; try charming them, for a change.


    [1] It was you who reminded me the word "killfile"; I really had
    forgotten about it and *plonk* etc, because c.l.py (ok, and a.h.bou)
    have been the only ng's I invest time in lately...





    ...and PS: <me looking at the director>: "was that OK? or did I sound
    too hippy? perhaps we should lose the San Francisco background and,
    people, somebody stop the Ten Years track, OK??!"
    --
    TZOTZIOY, I speak England very best,
    Microsoft Security Alert: the Matrix began as open source.
  • Christos TZOTZIOY Georgiou at Aug 23, 2003 at 1:11 am
    On Sat, 23 Aug 2003 03:34:02 +0300, I said:
    Ten Years track
    and I meant Ten Years AFTER.
    --
    TZOTZIOY, I speak England very best,
    Microsoft Security Alert: the Matrix began as open source.
  • Bruno Desthuilliers at Aug 18, 2003 at 10:47 pm

    Istvan Albert wrote:
    Erik Max Francis wrote:
    What's ***TOTALLY COMPELLING*** about Ruby over Python?

    comp.lang.ruby doesn't have Brandon Van Every.

    LOL
    LOL 2

    Bruno
    (yes, I want to be in Brandon's killfile. It's the new game on clp :
    being in Brandon's killfile. Just imagine what will happen when every
    clp regulars will be in Brandon's kill file...)
  • Peter Hansen at Aug 19, 2003 at 11:01 am

    Bruno Desthuilliers wrote:
    Istvan Albert wrote:
    Erik Max Francis wrote:
    What's ***TOTALLY COMPELLING*** about Ruby over Python?

    comp.lang.ruby doesn't have Brandon Van Every.

    LOL
    LOL 2

    Bruno
    (yes, I want to be in Brandon's killfile. It's the new game on clp :
    being in Brandon's killfile. Just imagine what will happen when every
    clp regulars will be in Brandon's kill file...)
    The world will be a very quiet, happier place.

    -Peter
  • Ganesan R at Aug 19, 2003 at 11:04 am

    "Bruno" == Bruno Desthuilliers <bdesth.nospam at removeme.free.fr> writes:
    Istvan Albert wrote:
    Erik Max Francis wrote:
    What's ***TOTALLY COMPELLING*** about Ruby over Python?
    comp.lang.ruby doesn't have Brandon Van Every.
    LOL
    LOL 2
    Bruno
    (yes, I want to be in Brandon's killfile. It's the new game on clp :
    being in Brandon's killfile. Just imagine what will happen when every
    clp regulars will be in Brandon's kill file...)
    I am not a clp regular (mostly a lurker), but I also wanna play. *please*

    ;-).

    Ganesan

    --
    Ganesan R
  • Bruno Desthuilliers at Aug 19, 2003 at 12:32 pm

    Ganesan R wrote:
    "Bruno" == Bruno Desthuilliers <bdesth.nospam at removeme.free.fr> writes:
    Istvan Albert wrote:
    Erik Max Francis wrote:

    What's ***TOTALLY COMPELLING*** about Ruby over Python?
    comp.lang.ruby doesn't have Brandon Van Every.
    LOL
    LOL 2
    Bruno
    (yes, I want to be in Brandon's killfile. It's the new game on clp :
    being in Brandon's killfile. Just imagine what will happen when every
    clp regulars will be in Brandon's kill file...)

    I am not a clp regular (mostly a lurker), but I also wanna play. *please*

    ;-).

    Ganesan
    Easy : answer to any post from Brandon, singing 'Brandon is a troll, is
    a troll, is a troll' !-)

    Bruno
  • Jarek Zgoda at Aug 19, 2003 at 6:33 pm

    Bruno Desthuilliers <bdesth.nospam at removeme.free.fr> pisze:

    I am not a clp regular (mostly a lurker), but I also wanna play. *please*

    ;-).
    Easy : answer to any post from Brandon, singing 'Brandon is a troll, is
    a troll, is a troll' !-)
    Ugh, I cann't... I cann't see his posts, I accidentally pressed 'k'
    while reading some of his writings, than accidentally few times pressed
    "Enter" followed by "y" key -- of course by accident...


    --
    Jarek Zgoda
    Registered Linux User #-1
    http://www.zgoda.biz/ JID:zgoda at chrome.pl http://zgoda.jogger.pl/
  • Bruno Desthuilliers at Aug 19, 2003 at 7:13 pm

    Jarek Zgoda wrote:
    Bruno Desthuilliers <bdesth.nospam at removeme.free.fr> pisze:

    I am not a clp regular (mostly a lurker), but I also wanna play. *please*

    ;-).
    Easy : answer to any post from Brandon, singing 'Brandon is a troll, is
    a troll, is a troll' !-)

    Ugh, I cann't... I cann't see his posts, I accidentally pressed 'k'
    while reading some of his writings, than accidentally few times pressed
    "Enter" followed by "y" key -- of course by accident...
    Too bad an accident !-)
  • Christos TZOTZIOY Georgiou at Aug 23, 2003 at 1:12 am
    On Tue, 19 Aug 2003 00:47:40 +0200, rumours say that Bruno Desthuilliers
    <bdesth.nospam at removeme.free.fr> might have written:
    Just imagine what will happen when every
    clp regulars will be in Brandon's kill file...
    "Where is everybody?"
    --
    TZOTZIOY, I speak England very best,
    Microsoft Security Alert: the Matrix began as open source.
  • Doug Tolton at Aug 18, 2003 at 10:51 pm

    On Mon, 18 Aug 2003 12:09:56 -0700, Erik Max Francis wrote:
    "Brandon J. Van Every" wrote:
    I'm realizing I didn't frame my question well.

    What's ***TOTALLY COMPELLING*** about Ruby over Python?
    comp.lang.ruby doesn't have Brandon Van Every.
    That has got to be the best point in favor of Ruby I've seen so far.


    Doug Tolton
    (format t "~a@~a~a.~a" "dtolton" "ya" "hoo" "com")
  • Patrick Useldinger at Aug 18, 2003 at 7:10 pm

    Brandon J. Van Every wrote:

    What's ***TOTALLY COMPELLING*** about Ruby over Python? What makes you jump
    up in your chair and scream "Wow! Ruby has *that*? That is SO FRICKIN'
    COOL!!! ***MAN*** that would save me a buttload of work and make my life
    sooooo much easier!"
    The simple fact that *you* are not active on c.l.ruby?
    A time-saver, certainly ;-)

    --
    Real e-mail address is 'cHVAdm8ubHU=\n'.decode('base64')
    Visit my Homepage at http://www.homepages.lu/pu/
  • Brandon J. Van Every at Aug 18, 2003 at 9:52 pm

    Patrick Useldinger wrote:
    Brandon J. Van Every wrote:
    What's ***TOTALLY COMPELLING*** about Ruby over Python? What makes
    you jump up in your chair and scream "Wow! Ruby has *that*? That
    is SO FRICKIN' COOL!!! ***MAN*** that would save me a buttload of
    work and make my life sooooo much easier!"
    The simple fact that *you* are not active on c.l.ruby?
    A time-saver, certainly ;-)
    I wonder how large my c.l.p killfile is now?

    --
    Cheers, www.3DProgrammer.com
    Brandon Van Every Seattle, WA

    20% of the world is real.
    80% is gobbledygook we make up inside our own heads.
  • Patrick Useldinger at Aug 18, 2003 at 10:00 pm

    Brandon J. Van Every wrote:

    I wonder how large my c.l.p killfile is now?
    Humour is a sign of intelligence; being able to joke about oneself even
    more so. Try it!
    ;-)

    --
    Real e-mail address is 'cHVAdm8ubHU=\n'.decode('base64')
    Visit my Homepage at http://www.homepages.lu/pu/
  • Skip Montanaro at Aug 18, 2003 at 7:46 pm
    Brandon> I'm realizing I didn't frame my question well. What's
    Brandon> ***TOTALLY COMPELLING*** about Ruby over Python? What makes
    Brandon> you jump up in your chair and scream "Wow! Ruby has *that*?
    Brandon> That is SO FRICKIN' COOL!!! ***MAN*** that would save me a
    Brandon> buttload of work and make my life sooooo much easier!"

    Apparently, not much in this crowd, otherwise most of us would have switched
    to Ruby by now. Try asking the Ruby folks. They will probably be able to
    come up with some answers for you.

    Skip
  • Michael Sparks at Aug 18, 2003 at 8:13 pm

    On Mon, 18 Aug 2003, Brandon J. Van Every wrote:
    What's ***TOTALLY COMPELLING*** about Ruby over Python?
    You can create lasers using rubies I believe whereas pythons are simply
    cute.


    Michael.
    (Since this is clearly a troll :)
  • Brandon J. Van Every at Aug 18, 2003 at 9:48 pm

    Jeff Epler wrote:
    Of course, without Python users, he wouldn't have much fun,
    would he, with nobody stupid enough to stand up to defend Python and
    "get trolled". So even the troll should be glad that there's nothing
    "totally compelling" about Ruby over Python.
    I don't want to get sucked into an issue that I have little to no interest
    in. So I will observe rhetorically: some of you people waste a *lot* of
    energy on games of "who's a troll." Mabye it's time for you to establish a
    c.l.p.advocacy newsgroup, to siphon those energies in a particular
    direction? But hey, it's your newsgroup.
    Jeff
    PS I'd just like to state for the record that neither Python nor Ruby
    have a totally compelling advantage compared to the following

    K&R C
    Even as one who hasn't converted to Python yet, that statement is clearly
    insane.

    --
    Cheers, www.3DProgrammer.com
    Brandon Van Every Seattle, WA

    20% of the world is real.
    80% is gobbledygook we make up inside our own heads.
  • Andrew Dalke at Aug 19, 2003 at 12:30 am

    Brandon J. Van Every:
    in. So I will observe rhetorically: some of you people waste a *lot* of
    energy on games of "who's a troll." Mabye it's time for you to establish a
    c.l.p.advocacy newsgroup, to siphon those energies in a particular
    direction? But hey, it's your newsgroup.
    Search all c.l.py for my posts. The first was 1995/09/11, and Google
    says I made 1,160 posts in the last 8 years. Only two ever use the
    word troll.

    And I never said you were a troll. I said that you were labeled a
    troll ("your troll mark"), and you ain't done nothing to wash it off.
    Even as one who hasn't converted to Python yet, that statement is clearly
    insane.
    Why the demand that we raise coils^H^H^H^H^Harms against the
    incursion of C# / Ruby/ etc. when you youself, in the months since
    you first posted here, can't make a firm decision for yourself?

    Me:
    You need to acquire critical reading skills.
    No I do not. I was seeking clear verification, and I got what I was looking
    for. I suggest that you need to acquire imagination skills. You can't seem
    to wrap your head around legitimate reasons for asking a question.
    As I pointed out in your previous thread, the reasons you stated were
    not legitimate. You have not corrected my misconceptions in your
    follow-ups it so I remain unconvinced otherwise.

    Andrew
    dalke at dalkescientific.com
  • James Kew at Aug 20, 2003 at 9:48 pm
    "Brandon J. Van Every" <vanevery at 3DProgrammer.com> wrote in message
    news:bhrh1b$29lum$1 at ID-203719.news.uni-berlin.de...
    Jeff Epler wrote:
    PS I'd just like to state for the record that neither Python nor Ruby
    have a totally compelling advantage compared to the following

    K&R C
    Even as one who hasn't converted to Python yet, that statement is clearly
    insane.
    Not at all: there are many applications in which K&R C is a more appropriate
    language than Python.

    Compelling advantages, yes. But "totally" compelling, no: if that were the
    case it'd be Python-or-not-at-all in all cases.

    James

Related Discussions

People

Translate

site design / logo © 2022 Grokbase