
New functional language - C# - nreece
http://www.xoltar.org/cms/node/17#
======
ynd
Congratulations to the .Net team. C# - which started as a Java look-alike -
has come a long way.

------
mojuba
As far as I can tell, the majority of C# programmers are either not aware of
these features or don't know how to use it.

What stops me from praising C# is its ridiculous verbosity. A language in
which the shortest possible form of a character array literal is

    
    
      new char[] {'a', 'b'}
    

is doomed to be low-end, low entry-level, low-respect language, despite all
efforts to bring some high-end features into it.

~~~
erictobia
It's actually possible to write _slightly_ less verbose code with C# 3.0. For
example:

    
    
      //...
    
      char[] someChars = {'A', 'B', 'C'};
    
      var moreChars = new [] {'D', 'E', 'F'};
    
      SomeMethod(new[] { 'G', 'H', 'I' });
    
      //...
    

I do, however, agree with your sentiment. The language still has some aspects
that are quite verbose when compared with dynamically typed languages. You are
also right in pointing out that these new features are irrelevant if
programmers are not taking advantage of them.

~~~
mojuba

      new [] {'D', 'E', 'F'}
    

I thought it was impossible at least in 2.x, is this something added in 3.0?

~~~
erictobia
You're right - it has been there since at least 2.0. I threw that in there as
an example. I apologize for not clarifying that.

------
jcromartie
This is great for some C# developers, but I wonder how well it will be
adopted. C# is mostly used for "enterprise" development. In my work I'm still
using 2.0. Worse yet, some of my former coworkers are still using .NET 1.1 at
their jobs.

Why must corporate development be so cumbersome? And more importantly, why
doesn't this hinder C# where it seems to keep Java so far behind?

------
mikkom
Why can't Java people do something like this?

I really like what C# people are doing and the language starts to sound really
good but unfortunately my work is done with java and *nix so C# is not an
option.

~~~
mojuba
This article explains why: <http://mindprod.com/jgloss/closure.html>

Upd: just found an interesting discussion on the topic:
[http://www.artima.com/forums/flat.jsp?forum=106&thread=1...](http://www.artima.com/forums/flat.jsp?forum=106&thread=173181)

------
dshah
Cool.

Now, if only ASP.NET was "cleaner" and didn't have all that "event-driven"
ugliness.

More widespread usage on Linux would help too. Mono just hasn't taken off in
terms of mainstream production use.

~~~
chrisbroadfoot
+1. I quite like C#, but it's not enough incentive for me to switch to
Windows.

~~~
cysh
<http://www.mono-project.com/Main_Page>

~~~
jm4
The article is covering features in C# 3.0. Mono is perpetually playing catch
up to Microsoft's implementation and according to the Mono site the "Mono API
today is somewhere in between .NET 2.0 and .NET 3.5". Besides the fact that
the language implementation is behind, developers also have to deal with the
fact that the standard library isn't 100% compatible either. It seems pretty
clear that C# developers that are not on Microsoft's implementation are
basically second class citizens. I don't think Mono can be taken seriously if
we're talking about being compatibility with Microsoft's implementation. It's
not all bad, though. Mono seems to be a perfectly good platform when evaluated
on its own.

That said, I have little experience with Microsoft .NET and Mono so these are
the observations of someone only casually acquainted with either project. Can
anyone here share any experiences with Mono?

~~~
chrisbroadfoot
Agreed. I personally think it's not the risk to put yet another layer in your
stack that has the potential to royally fuck things up.

------
culley
Yeah! Finally an excuse to do something interesting at work instead of at
home.

------
pavelludiq
i don't know C# but i found this and i thought it was hilarious:

[http://youtube.com/watch?v=z99EHyG2jQA&feature=related](http://youtube.com/watch?v=z99EHyG2jQA&feature=related)

[http://youtube.com/watch?v=528BCJiRkks&feature=user](http://youtube.com/watch?v=528BCJiRkks&feature=user)

