you can't get in trouble with your boss for picking C#

Discussion in 'Ruby' started by Phlip, Sep 15, 2005.

  1. Phlip

    Phlip Guest

    Rubies:

    Here's a nice advocacy anecdote. A colleague vents, "So they hired him to
    write the GUI, and he insisted on using C# because he claimed it would be
    portable. So after he wrote a ton of cruft and we got rid of him, I tried to
    build Mono for Linux, and there were no RPMs, so I know how to build source
    right? The dependency chain was a mile long, and I spent almost two weeks at
    it..."

    That's like 20 or 30 engineering hours down the drain, folks...

    Me: "Jeeze this stuff is obvious; that's why I always get permission before
    picking a language."

    Colleague: "Of course!"

    Me: "Except Ruby." [He knows I maintain portability by actually porting as I
    go...]

    Colleague: "Natch."

    Don'tcha just love backing the winning horse that everyone else thinks is
    going to lose? The Java & .NET sectors of the industry are in a pitiful
    condition, and the bosses who grew up with C++ just keep asking for more...

    --
    Phlip
    http://www.greencheese.org/ZeekLand <-- NOT a blog!!!
     
    Phlip, Sep 15, 2005
    #1
    1. Advertising

  2. Phlip wrote:

    > Don'tcha just love backing the winning horse that everyone else thinks is
    > going to lose? The Java & .NET sectors of the industry are in a pitiful
    > condition, and the bosses who grew up with C++ just keep asking for more...


    C# is heavily taking ideas from Ruby right now -- which is no surprise,
    really.
     
    Florian Groß, Sep 15, 2005
    #2
    1. Advertising

  3. Phlip

    John Guest

    C# is The Devil, capital "T" capital "D," plain and simple. There is
    nothing to set C# apart from Java, except for the impossibly huge .NET
    framework for developing a billion different kinds of applications.
    While I have to use it for various projects at work, I can say that
    I've never enjoyed any of those except for the console applications
    which felt just like writing simple Java apps. Of course, any business
    that is a self-proclaimed "Microsoft Shop" (read: "ignorant of anything
    else") is going to perpetuate these situations. I'm trying hard, but
    most of the systems at my place of employment are Windows-based, and
    sneaking Ruby in is a real trick. I've gotten more done with Ruby on
    my own desktop, though, than anything else.
     
    John, Sep 15, 2005
    #3
  4. John wrote:

    > There is nothing to set C# apart from Java, except for the impossibly
    > huge .NET framework for developing a billion different kinds of
    > applications.


    Please, have a look at
    http://taubz.for.net/blog?entry=htt...-6956298/dd7d1bf8-3fcd-4a3a-8fba-d4dca0c5da12

    How can a language where you can write this be as bad as Java?

    var old_numbers = new [] {1, 2, 3, 4};
    // And yes, I still don't like arrows. :/
    var new_numbers = old_numbers.map(number => { number * 2 });

    True, this is not possible just yet, but C# 2 already introduced
    features like yield return and delegate(int x) { return x * 2; } that
    are a huge step away from the simple mindedness of Java.

    I think C# is becoming a sensible language. It's still statically typed,
    of course, but it is improving heavily.
     
    Florian Groß, Sep 15, 2005
    #4
  5. Phlip

    Rob . Guest

    ------=_Part_27501_22435348.1126798322580
    Content-Type: text/plain; charset=ISO-8859-1
    Content-Transfer-Encoding: quoted-printable
    Content-Disposition: inline

    As long as I can put food on the table without having to code C# I will. I=
    =20
    want to avoid supporting the M$ monopoly in any way, shape or form.=20
    Particularly since they helped the Chinese government censor people bloggin=
    g=20
    in China:
    http://www.wired.com/news/20050620_chinablogs.html
    For me technical considerations related to C# don't even enter the debate.=
    =20
    [ok, end of rant] ;)
    Rob

    On 9/15/05, Florian Gro=DF <> wrote:=20
    >=20
    > John wrote:
    >=20
    > > There is nothing to set C# apart from Java, except for the impossibly
    > > huge .NET framework for developing a billion different kinds of
    > > applications.

    >=20
    > Please, have a look at
    >=20
    > http://taubz.for.net/blog?entry=3Dhttp://taubz.for.net/blog/blog-6956298/=

    dd7d1bf8-3fcd-4a3a-8fba-d4dca0c5da12
    >=20
    > How can a language where you can write this be as bad as Java?
    >=20
    > var old_numbers =3D new [] {1, 2, 3, 4};
    > // And yes, I still don't like arrows. :/
    > var new_numbers =3D old_numbers.map(number =3D> { number * 2 });
    >=20
    > True, this is not possible just yet, but C# 2 already introduced
    > features like yield return and delegate(int x) { return x * 2; } that
    > are a huge step away from the simple mindedness of Java.
    >=20
    > I think C# is becoming a sensible language. It's still statically typed,
    > of course, but it is improving heavily.
    >


    ------=_Part_27501_22435348.1126798322580--
     
    Rob ., Sep 15, 2005
    #5
  6. Phlip

    Guest

    C# certainly borrowed (aka stole) from java, which in turn was a
    response to perceived weaknesses in C/C++. Ruby has roots in Smalltalk,
    Perl, and C. Even Fortran is object oriented now! The corss-pollination
    is normal, and just helps us as developers.

    If you are willing to be tied to a single platform, I don't think there
    is anything intrinscally wrong with C#. Its a reasonalbe language, and
    as you say, its growing. I can't think of any reason why I would
    develop a Windows application in Java - in a pure Windows environment,
    ..NET beats it hands down. Ruby is great - but I'm not likely to create
    a thick client in TCL/TK. (I'm keeping issues about whether I LIKE M$
    out of it - just looking at things from a pure productivity
    standpoint).

    The very thing that makes .NET unpallatable to some is what makes it
    compelling to others - it has a giant company behind it that can throw
    developers at it at will, so it is not going away. My gut feel is that
    Ruby / Rails is at a critical point where it may have enough momentum
    to be a real competitor, but it will still face resistance just because
    there is not (to my knowledege...) a corporate entity that is actively
    promoting and supporting it.

    All that said, Ruby is the first language I've come across in a very
    long time that actually gets me excited about programming. As somebody
    said (maybe Dave Thomas?), it just feels right. In particular, Rails is
    incredible from a productivity standpoint, but is it truly enterprise
    ready? I think so, but it may be a hard sell.

    Keith
     
    , Sep 15, 2005
    #6
  7. Phlip

    Phlip Guest

    klancaster1957 wrote:

    > If you are willing to be tied to a single platform, I don't think there
    > is anything intrinscally wrong with C#. Its a reasonalbe language, and
    > as you say, its growing. I can't think of any reason why I would
    > develop a Windows application in Java - in a pure Windows environment,
    > .NET beats it hands down. Ruby is great - but I'm not likely to create
    > a thick client in TCL/TK. (I'm keeping issues about whether I LIKE M$
    > out of it - just looking at things from a pure productivity
    > standpoint).


    That's the thing. To compete against a crappy language backed by Daddy
    Warbucks, you need a language with a _much_better_ technical design. Only
    that bedrock can support you.

    Daddy Warbucks starts with languages invented by committees, and throws
    programmers at them to cover over their bad spots.

    Static typing is _wrong_, and the right alternative is linguistic support
    for _optional_ typing. This requires committees capable of _letting_go_ of
    the _illusion_of_control_, and publishing a language that might let someone,
    somewhere, get in trouble with their boss for emitting a "message not
    understood" error.

    Ruby's technical excellence permits much simpler libraries, simpler killer
    apps, and more elegant end-user-programmer code. When the pressure is on,
    those things matter.

    Florian Groß wrote:

    > C# is heavily taking ideas from Ruby right now -- which is no surprise,
    > really.


    Then when you retrofit a language design feature, instead of building it in
    from scratch, you can't use it to simplify everything. Even its syntax will
    suck.

    Block closures provide an order of magnitude simpler designs. So unless you
    add them to a language first, you fill your legacy libraries up with cruft.
    Then when you retrofit them, they need more difficult syntaxes to compete.

    klancaster1957 wrote:

    > All that said, Ruby is the first language I've come across in a very
    > long time that actually gets me excited about programming.


    There's nothing to be ashamed of there. As engineers we have the
    _obligation_ to our customers to seek these sweet spots, and exploit them.
    "Excited about programming" is a _technical_ achievement, and it's a lot
    more valuable than millions of square meters of print advertisement space in
    Dr Dobbs Journal...

    --
    Phlip
    http://www.greencheese.org/ZeekLand <-- NOT a blog!!!
     
    Phlip, Sep 15, 2005
    #7
  8. Phlip wrote:

    >>C# is heavily taking ideas from Ruby right now -- which is no surprise,
    >>really.

    >
    > Then when you retrofit a language design feature, instead of building it in
    > from scratch, you can't use it to simplify everything. Even its syntax will
    > suck.
    >
    > Block closures provide an order of magnitude simpler designs. So unless you
    > add them to a language first, you fill your legacy libraries up with cruft.
    > Then when you retrofit them, they need more difficult syntaxes to compete.


    C# has always had anonymous functions, but only recently they have added
    a nice syntax and closures to it. This means that it is fully compatible
    with the existing standard library.

    True, C# isn't as nice as Ruby, but I like to see Ruby inspire other
    languages.
     
    Florian Groß, Sep 15, 2005
    #8
  9. Phlip

    Kirk Haines Guest

    On Thursday 15 September 2005 11:31 am, wrote:

    > said (maybe Dave Thomas?), it just feels right. In particular, Rails is
    > incredible from a productivity standpoint, but is it truly enterprise
    > ready? I think so, but it may be a hard sell.


    What is "enterprise ready"? My perception of the answer depends on who is
    doing the selling, and what they are selling.

    You ask a Sun customer solutions engineer, or someone from Microsoft in the
    same role, and they are going to say that nothing written in Ruby is
    enterprise ready.

    However, if you ask people (like myself) who make a living from Ruby software
    being used by businesses, we're going to say that it is.

    What I am selling is different from what Microsoft is selling, so our answers
    diverge considerably.

    Many things in the Ruby universe are enterprise ready, at least for some
    enterprises.


    Kirk Haines
     
    Kirk Haines, Sep 15, 2005
    #9
  10. Phlip

    Josh Charles Guest

    On 9/15/05, Phlip <> wrote:
    > Static typing is _wrong_, and the right alternative is linguistic support
    > for _optional_ typing.=20


    Try building an operating system without static typing. The point is
    that you use the right tool for the job. C# is a great language, and
    the future is looking especially bright for it. With the Mono
    project, and a few other, .NET is a great platform to use as well.=20
    You can really do some neat things with it.

    =20
    > Then when you retrofit a language design feature, instead of building it =

    in
    > from scratch, you can't use it to simplify everything. Even its syntax wi=

    ll
    > suck.


    Has every feature that is currently a part of Ruby been a part of Ruby
    from the start? I doubt it. C#'s syntax is great for what it is used
    for.
    =20
    You should use the best tool for the job. If the situation is one
    where you are using several different languages, or any of the several
    other advantages of using the .NET platform, use .NET / C#. If the
    situation is different, and you're implementing a micro-kernel, use C.
    If you're creating a web application, use Ruby with the Rails
    Framework.

    There is not now, nor will there ever be a 'one-size-fits-all'
    language. It's that simple. You can't implement Ruby in Ruby, you
    have to use C. That's never going to change.
     
    Josh Charles, Sep 15, 2005
    #10
  11. Phlip

    Trans Guest

    Florian Groß wrote:
    > John wrote:
    >
    > > There is nothing to set C# apart from Java, except for the impossibly
    > > huge .NET framework for developing a billion different kinds of
    > > applications.

    >
    > Please, have a look at
    > http://taubz.for.net/blog?entry=htt...-6956298/dd7d1bf8-3fcd-4a3a-8fba-d4dca0c5da12
    >
    > How can a language where you can write this be as bad as Java?
    >
    > var old_numbers = new [] {1, 2, 3, 4};
    > // And yes, I still don't like arrows. :/
    > var new_numbers = old_numbers.map(number => { number * 2 });
    >
    > True, this is not possible just yet, but C# 2 already introduced
    > features like yield return and delegate(int x) { return x * 2; } that
    > are a huge step away from the simple mindedness of Java.


    Had to do it.

    require 'blankslate'

    class Delegate < BlankSlate
    def initialize( obj, &yld )
    @obj = obj
    @yld = yld
    end
    def method_missing( sym, *args, &blk )
    if @yld
    @yld[ @obj ].__send__( sym, *args, &blk )
    else
    @obj.__send__( sym, *args, &blk )
    end
    end
    end

    module Kernel
    def delegate( obj, &yld )
    Delegate.new( obj, &yld )
    end
    end

    if $0 == __FILE__

    i1 = 1
    i2 = delegate( i1 ) { |x| x*2 }

    p i2
    puts i2

    end
     
    Trans, Sep 15, 2005
    #11
  12. Josh Charles wrote:

    > You can't implement Ruby in Ruby, you have to use C. That's never
    > going to change.


    Heh, I agree with your posting except for that last claim. Writing a
    Ruby compiler in Ruby ought to be reasonably simple -- the run time is
    the critical part, because you want it to be fast, and Ruby is slow
    unless you can speed it up, but it certainly is possible as well.
     
    Florian Groß, Sep 15, 2005
    #12
  13. Trans wrote:

    >>True, this is not possible just yet, but C# 2 already introduced
    >>features like yield return and delegate(int x) { return x * 2; } that
    >>are a huge step away from the simple mindedness of Java.

    >
    > Had to do it.
    >
    > require 'blankslate'
    >
    > class Delegate < BlankSlate
    > def initialize( obj, &yld )
    > @obj = obj
    > @yld = yld
    > end
    > def method_missing( sym, *args, &blk )
    > if @yld
    > @yld[ @obj ].__send__( sym, *args, &blk )
    > else
    > @obj.__send__( sym, *args, &blk )
    > end
    > end
    > end


    Careful! C# delegates don't actually delegate messages. Instead they are
    the closest thing to Ruby's blocks the language has right now. Not sure
    why they named them that way, but it's probably related to the
    implementation.
     
    Florian Groß, Sep 15, 2005
    #13
  14. Phlip

    Joe Van Dyk Guest

    On 9/15/05, Josh Charles <> wrote:
    > There is not now, nor will there ever be a 'one-size-fits-all'
    > language. It's that simple. You can't implement Ruby in Ruby, you
    > have to use C. That's never going to change.


    From an upcoming Rubyconf talk:

    Reimplementing Ruby
    Eric Hodel

    MetaRuby is a reimplementation of ruby in ruby itself, involving a
    rewrite of ruby's core libraries, parser, interpreter and garbage
    collector. Metaruby will use the ruby2c translator in order to
    bootstrap a new ruby binary. As Squeak Smalltalk has helped
    demonstrate, I believe this will make ruby easier to develop and
    maintain because developers will not need to work in both C and Ruby
    when working on Ruby itself.

    I will describe the process of porting ruby from C to ruby, lessons
    learned during porting, our processes for maintaining consistency
    between matz's ruby and MetaRuby (using and enhancing rubicon),
    benefits this project will have for the ruby community, related
    projects, and how we're using them.

    Then I will grovel for contributors.
     
    Joe Van Dyk, Sep 15, 2005
    #14
  15. Phlip

    Josh Charles Guest

    On 9/15/05, Joe Van Dyk <> wrote:
    > From an upcoming Rubyconf talk:
    >=20
    > Reimplementing Ruby
    > Eric Hodel
    >=20
    > MetaRuby is a reimplementation of ruby in ruby itself, involving a
    > rewrite of ruby's core libraries, parser, interpreter and garbage
    > collector. Metaruby will use the ruby2c translator in order to
    > bootstrap a new ruby binary. As Squeak Smalltalk has helped
    > demonstrate, I believe this will make ruby easier to develop and
    > maintain because developers will not need to work in both C and Ruby
    > when working on Ruby itself.
    >=20
    > I will describe the process of porting ruby from C to ruby, lessons
    > learned during porting, our processes for maintaining consistency
    > between matz's ruby and MetaRuby (using and enhancing rubicon),
    > benefits this project will have for the ruby community, related
    > projects, and how we're using them.
    >=20
    > Then I will grovel for contributors.


    Very interesting. But you'll still need C ;) I'm interested to know
    how this will effect performance, thoug.
     
    Josh Charles, Sep 15, 2005
    #15
  16. Phlip

    Trans Guest

    Florian Groß wrote:
    > Trans wrote:
    >
    > >>True, this is not possible just yet, but C# 2 already introduced
    > >>features like yield return and delegate(int x) { return x * 2; } that
    > >>are a huge step away from the simple mindedness of Java.

    > >
    > > Had to do it.
    > >
    > > require 'blankslate'
    > >
    > > class Delegate < BlankSlate
    > > def initialize( obj, &yld )
    > > @obj = obj
    > > @yld = yld
    > > end
    > > def method_missing( sym, *args, &blk )
    > > if @yld
    > > @yld[ @obj ].__send__( sym, *args, &blk )
    > > else
    > > @obj.__send__( sym, *args, &blk )
    > > end
    > > end
    > > end

    >
    > Careful! C# delegates don't actually delegate messages. Instead they are
    > the closest thing to Ruby's blocks the language has right now. Not sure
    > why they named them that way, but it's probably related to the
    > implementation.


    Oh, is that all? Where've they been these last years? ;-)

    T.
     
    Trans, Sep 15, 2005
    #16
  17. Phlip

    Isaac Gouy Guest

    Josh Charles wrote:
    > On 9/15/05, Phlip <> wrote:
    > > Static typing is _wrong_, and the right alternative is linguistic support
    > > for _optional_ typing.

    >
    > Try building an operating system without static typing.


    That would be a job for BCPL :)


    > The point is
    > that you use the right tool for the job. C# is a great language, and
    > the future is looking especially bright for it. With the Mono
    > project, and a few other, .NET is a great platform to use as well.
    > You can really do some neat things with it.
    >
    >
    > > Then when you retrofit a language design feature, instead of building it in
    > > from scratch, you can't use it to simplify everything. Even its syntax will
    > > suck.

    >
    > Has every feature that is currently a part of Ruby been a part of Ruby
    > from the start? I doubt it. C#'s syntax is great for what it is used
    > for.
    >
    > You should use the best tool for the job. If the situation is one
    > where you are using several different languages, or any of the several
    > other advantages of using the .NET platform, use .NET / C#. If the
    > situation is different, and you're implementing a micro-kernel, use C.
    > If you're creating a web application, use Ruby with the Rails
    > Framework.
    >
    > There is not now, nor will there ever be a 'one-size-fits-all'
    > language. It's that simple. You can't implement Ruby in Ruby, you
    > have to use C. That's never going to change.
     
    Isaac Gouy, Sep 15, 2005
    #17
  18. Phlip

    Phlip Guest

    Trans wrote:

    > Oh, is that all? Where've they been these last years? ;-)


    When Daddy Warbucks tells his minions to promote Language X, and if it
    sucks, then the majority of those minions must tread water frantically just
    to write the simplest libraries and packages for X. The language's poor
    quality slows down all the minions. Daddy Warbucks doesn't mind, because he
    always has more minions to throw at the problem.

    Then all the other companies that suck-up to that company will offload the
    labor of supporting X, for free, further diluting the effects of X's poor
    quality.

    --
    Phlip
    http://www.greencheese.org/ZeekLand <-- NOT a blog!!!
     
    Phlip, Sep 16, 2005
    #18
  19. ------=_Part_25033_28533768.1126833094716
    Content-Type: text/plain; charset=ISO-8859-1
    Content-Transfer-Encoding: quoted-printable
    Content-Disposition: inline

    Languages dont suck, they differ in degrees of suitability for a purpose.

    Some languages have a wider range of tasks they are generally suitable for=
    =20
    than others.

    If it wasn't for people building on top of 'sucky' languages we wouldn't be=
    =20
    in the sweet position we are now.

    For example boo, http://boo.codehaus.org/ is a very nice language for the=
    =20
    dotnet platform, written in ( I'm guess C# ).

    "If I have seen further it is by standing on ye shoulders of Giants."=20
    --Isaac Newton

    ------=_Part_25033_28533768.1126833094716--
     
    Lyndon Samson, Sep 16, 2005
    #19
  20. Hello Josh,

    JC> On 9/15/05, Joe Van Dyk <> wrote:
    >> From an upcoming Rubyconf talk:
    >>
    >> Reimplementing Ruby
    >> Eric Hodel


    JC> Very interesting. But you'll still need C ;) I'm interested to know
    JC> how this will effect performance, thoug.

    No, you need C to implement a virtual machine, but not for the
    language parser/bytecode compiler/runtime.

    But i'm still convinced that ruby in ruby will got give us any real
    benefits.


    --
    Best regards, emailto: scholz at scriptolutions dot com
    Lothar Scholz http://www.ruby-ide.com
    CTO Scriptolutions Ruby, PHP, Python IDE 's
     
    Lothar Scholz, Sep 16, 2005
    #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. ABC
    Replies:
    7
    Views:
    717
    Luke Dalessandro
    Jan 13, 2006
  2. max khesin
    Replies:
    1
    Views:
    273
    =?ISO-8859-1?Q?=22Martin_v=2E_L=F6wis=22?=
    Feb 14, 2004
  3. www
    Replies:
    12
    Views:
    550
    RedGrittyBrick
    Jan 16, 2007
  4. estherschindler
    Replies:
    2
    Views:
    321
    estherschindler
    May 5, 2007
  5. Chris Richards
    Replies:
    12
    Views:
    207
    David Vallner
    Oct 25, 2006
Loading...

Share This Page