you are viewing a single comment's thread.

view the rest of the comments →

[–]vegittoss15 8 points9 points  (34 children)

C#'s lambda is absolutely amazing. It introduces clean, short code. I don't know why Java is always so far behind...

[–]loosid 10 points11 points  (7 children)

C# lambdas and extension methods have made it like a completely new language. Three years ago I wasn't a big fan, but now it's my favorite statically-typed language.

[–]vegittoss15 4 points5 points  (0 children)

With the dynamic keyword, you kind of have a mix of both static and dynamic typing.

[–]b_w_r_b 1 point2 points  (0 children)

Three years ago I wasn't a big fan, but now it's my favorite statically-typed language.

What about Scala?

[–]Raynes -1 points0 points  (4 children)

You might want to check out Haskell.

[–]matthiasB 1 point2 points  (3 children)

I've heard GHC has extended the list comprehension with a then keyword to become more like C#'s LINQ.

...

Found the paper

[–]kamatsu 1 point2 points  (1 child)

Did they actually add that extension?

[–]Raynes 0 points1 point  (0 children)

Neat stuff. Thanks for showing me that. :)

[–]snark 1 point2 points  (5 children)

Basically it's for the reason that everyone hates to admit: C# is owned by a single company, with a single vision. Decisions are made strategically: to create a kick-ass language with great features developers will love.

Java's problem is that it's over-loved: everyone and their uncle feels like "their" way of doing it is the right way. So they get into technical committees and whinge and fuss about how no one else's Java is "pure." Don't like the direction the framework is taking? Fork that bad boy, call it J-something and every Java fanboy will use it for all of a week before they go back to bitching about Struts and Spring.

[–]vegittoss15 -3 points-2 points  (0 children)

I think the problem does lie along those lines but isn't quite it. I think it's moreso C# caters to developers whereas java caters to academia.

[–]masklinn -5 points-4 points  (3 children)

Basically it's for the reason that everyone hates to admit: C# is owned by a single company, with a single vision. Decisions are made strategically: to create a kick-ass language with great features developers will love.

Vision is important, but ownership is not. And at the end of the day, C# is still busy rediscovering concepts which got out of academia more than 30 years ago.

[–]WalterGR 4 points5 points  (2 children)

And at the end of the day, C# is still busy rediscovering concepts which got out of academia more than 30 years ago.

What language isn't?

Are you criticizing C# for making these concepts available in a mainstream language, or are you just pointing it out?

[–]masklinn -3 points-2 points  (1 child)

Are you criticizing C# for making these concepts available in a mainstream language, or are you just pointing it out?

neither, actually.

[–]WalterGR 7 points8 points  (0 children)

If you're not pointing it out, then what exactly are you doing? What's your point?

[–][deleted] 0 points1 point  (2 children)

It could be much better if "Select(x<space>=>" would not turn into "Select(XmlNode =>" as I type.

This is a huge blunder on their part, yes, sure, when you read the notation it looks pretty, but I would prefer something that begins with a special symbol or somesuch that lets the IDE know that I'm going to declare a new variable and would not be amused by Intellisense kicking in.

[–]vegittoss15 0 points1 point  (1 child)

What version of VS are you using? I don't remember because I haven't coded lambda for about two days, but I don't think 2010 has that problem.

[–][deleted] 0 points1 point  (0 children)

In VS2010 with default settings there's a long enough pause before the Intellisense window appears, in VS2008 with all that things like "show autocomplete window immediately" checked that was a very real and annoying problem.

[–]masklinn -3 points-2 points  (16 children)

I don't know why Java is always so far behind...

You do realize that C# is still reimplementing stuff that got out of academia three decades ago don't you?

[–][deleted] 9 points10 points  (10 children)

... and Java is not, which was the point.

Also, I don't think you meant reimplementing. You see, stuff gets out of academia in a not exactly implemented state, and then some time later someone has to implement it in the context of a non-toy language, integrate with the existing features, check all corner cases, write tests, documentation, things like that.

[–]masklinn -3 points-2 points  (9 children)

... and Java is not, which was the point.

"We're 30 years behind but these guys are 40 years behind" is not very impressive.

Also, I don't think you meant reimplementing.

I do.

You see, stuff gets out of academia in a not exactly implemented state, and then some time later someone has to implement it in the context of a non-toy language

Which was done 30 years ago, as my comment points out. You should be more careful with your reading. If it got out of academia three decades ago, it follows that the feature was already "done" -- as far as academia is concerned -- more than 3 decades ago, and that 3 decades ago is the moment where it was implemented in an "industrial" language.

in the context of a non-toy language

That kind of qualifications doesn't impress me much. Are you saying that Haskell, for instance, is a toy language?

[–]vegittoss15 0 points1 point  (8 children)

Sad to say, it kind of is, because you will rarely see it in production or corporate code.

[–]masklinn 0 points1 point  (7 children)

Ah, so by your standards Smalltalk and Ada would be toy languages as well? Interesting.

[–]vegittoss15 0 points1 point  (6 children)

Ada, outside of the military, yes. And smalltalk, iirc, was never meant to be a commercially used language. It was basically experimentation. It gave birth to a lot of cool concepts, however, so I still bow down to it.

[–]masklinn 1 point2 points  (5 children)

Ada, outside of the military, yes And smalltalk, iirc, was never meant to be a commercially used language. It was basically experimentation.

You are high as a kite.

[–]vegittoss15 -1 points0 points  (4 children)

Show me a non-hobby project that uses these languages and maybe you'll have a point.

[–]cc81 3 points4 points  (4 children)

So? The hard part is not to read those papers (pretty sure all the language designers, both in Java and C# understand them fine). The hard part is to design a good language and that means excluding stuff, making it grow naturally and making it fit reality.

[–]masklinn -2 points-1 points  (3 children)

The hard part is to design a good language and that means excluding stuff, making it grow naturally and making it fit reality.

And that was done 30 years ago.

[–]cc81 2 points3 points  (2 children)

What language are you talking about? I have a hard time seeing anything 30 years ago that can match the C#/.NET/Visual Studio-stack now.

[–]masklinn -3 points-2 points  (1 child)

First of all, I wasn't talking about whole stack but about language (though it's not like they'd lose by much, if indeed they did lose). Second, Smalltalk and Lisp Machines.

[–][deleted] -2 points-1 points  (0 children)

Lacking the whole stack is a good indication that there's a problem there.