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

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

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.

Beg to differ. I can't speak to C#, but Java is thriving. Look in
academic course catalogs. Look in the help wanteds. Look at the huge
body of open source java there is out there.

Tool to task folks, they all have their place. Consider promoting
Ruby's finer points and extolling its virtues rather than slamming the
competition.

-Chris

···

On 9/15/05, Phlip <phlipcpp@yahoo.com> wrote:

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

--
Chris Patti --- Y!: feoh -- AIM: chrisfeohpatti --- E-Mail: cpatti@gmail.com
"The greatest dangers to liberty lurk in insidious encroachment by mean of
  zeal,well-meaning but without understanding."-- Justice Louis O. Brandeis
(Olmstead vs. United States)

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

You must not have looked very hard. The RPMs are right there on the
web site:

www.mono-project.com/Downloads

Also, if we do not support your platform with rpms, you can use the x86
installer that will work everywhere.

As for dependencies, you need glib, libgdiplus and Mono, so 3 tarballs
to build. All of them build in about 10 minutes on a 2ghz laptop.

If someone burned 20 to 30 hours building three tarballs or not being
able to find a proper package in a Downloads page, I would say that
they have other more fundamental problems to deal with than Mono and
C#.

Miguel.

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=http://taubz.for.net/blog/blog-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. :confused:
   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.

Example from future C# ...

IEnumerable<string> expr = names
                           .Where(s => s.Length == 5)
                           .OrderBy(s => s.Foo)
                           .Select(s => s.ToUpper());

···

In article <dgbqs4$h6i$1@sea.gmane.org>, Florian Groß wrote:

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.

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

···

On 9/15/05, Florian Groß <florgro@gmail.com> 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=http://taubz.for.net/blog/blog-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. :confused:
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.

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

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=http://taubz.for.net/blog/blog-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. :confused:
   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

Florian Groß wrote:

I think C# is becoming a sensible language. It's still statically typed, of course, but it is improving heavily.

I couldn't agree more. I think what pushed many of us toward ruby was the fact that the static type systems of Java, C# and C++ are getting in the way all the time, but Microsoft is doing real work with C#/.net to alleviate that problem. If they push it far enough, I think they just might pull most of us back again (to mono) :slight_smile:

Thomas

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
  greencheese.org <-- NOT a blog!!!

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

···

On Thursday 15 September 2005 11:31 am, klancaster1957@gmail.com 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.

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ß wrote:
> I think C# is becoming a sensible language. It's still statically typed,
> of course, but it is improving heavily.

I couldn't agree more. I think what pushed many of us toward ruby was
the fact that the static type systems of Java, C# and C++ are getting in
the way all the time, but Microsoft is doing real work with C#/.net to
alleviate that problem. If they push it far enough, I think they just
might pull most of us back again (to mono) :slight_smile:

No 1 immediate irritant when coding in java after ruby

No
return a,b,c

Very basic, but in the java world its getA, getB, getC, or pack into a
passed array.

Thomas

···

On 9/19/05, Thomas Sondergaard <ts_news1@sondergaard.cc> wrote:

--
Into RFID? www.rfidnewsupdate.com <http://www.rfidnewsupdate.com> Simple,
fast, news.

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.

Static typing is _wrong_, and the right alternative is linguistic support
for _optional_ typing.

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

···

On 9/15/05, Phlip <phlipcpp@yahoo.com> wrote:

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? :wink:

T.

Kirk Haines wrote:

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

Btw, is J2EE enterprise ready? Is there a significant number of
applications out there that make full use of J2EE's feature set (including
scalability features) and serve large numbers of concurrent users? I'm
not prejudicing, just curious.

Regards

    robert

Hi!

> 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"?

Such terms are called "buzzwords" where a buzzword is a word

- that is used ubiquitously,

- the meaning of which everyone knows, and

- that n people are known to assign (at least) n+1 different meanings.

Buzzwords are often used in modern fairy tale telling branches like
advertising, marketing and promotion.

Josef 'Jupp' SCHUGT

···

At Fri, 16 Sep 2005 03:27:09 +0900, Kirk Haines wrote:

On Thursday 15 September 2005 11:31 am, klancaster1957@gmail.com wrote:

--
Receiving this message does not necessarily imply that you are
expected to understand it. If you do not understand it the best
current practice (BCP) is ignoring it. If you only understand parts
of it the BCP is ignoring the rest.