I have read a lot of lang. wars and complaints about programming languages... but C# is one of the only languages that I can't remember reading any complaints about. None. I must conclude, by the usual Stroustrup quote, that no one uses C#. (yes this is tongue in cheek)
Well, I use it =) C# is a language with a somewhat limited market ("Enterprise" applications running on Windows Servers, and yes, I know about Mono). And in this market, a very strict subset of C# (see: Java) is happily used. I know a lot of people who refrain from using even lambdas and implicit typing, let alone the other "fringe functional stuff", because "they make things complicated".
More functional C#
41–50 of 98 posts
Re: More functional C#
#42C#'s functional side is why I actually really enjoy working with it. I get to use a nice blend of OO and functional, where each makes sense. OO more on a macro scale, organising code.
The future is to have multi-paradigm languages. Each paradigm gets used depending on the type of problem being solved.
Re: More functional C#
#43But why do things "near functional" when you have F# which is fully functional?
Because "near functional" is sufficient most of the time and if there is no compelling reason to split your codebase among two different languages, you shouldn't do it. Not to mention that there's probably 1000 C# developers for every F# developer Have a look at http://www.indeed.com/jobanalytics/jobtrends?q=c%23%2C+f%23&... And someone has to maintain your near functional or functional code
You don't have to hire developers from outside to bring new technologies into a company. In fact, given the scarcity (i.e., demand > supply) of good developers these days, it's almost certainly going to be easier and faster to have your existing development staff learn those new technologies vs. trying to hire new developers with experience in those technologies.
Re: More functional C#
#44Earlier quoted context omitted.
C# is a language with a somewhat limited market ("Enterprise" applications running on Windows Servers, and yes, I know about Mono) One would think that Windows Phone - fastest growing smartphone OS - would go before Mono... geez, I make a living out of desktop C# apps (WPF). Not solely, but on a daily basis.
Fastest growing is easier to achieve when you have low market share. Mono is significantly more important for the future of C# than Windows Phone.
Re: More functional C#
#45I'd rather have code written in simple, well factored functions and classes and easy to reason about, than having to deal with such a mess of functional code.
Don't get me wrong, functional code can be very elegant and clear, but the example provided here is a huge turn off to me.
Re: More functional C#
#46Earlier quoted context omitted.
Well, I use it =) C# is a language with a somewhat limited market ("Enterprise" applications running on Windows Servers, and yes, I know about Mono). And in this market, a very strict subset of C# (see: Java) is happily used. I know a lot of people who refrain from using even lambdas and implicit typing, let alone the other "fringe functional stuff", because "they make things complicated".
C# is a great language, in fact, I believe it's the best "general language", if there ever was one. The only real problem C# has is it's bad support of non-Windows platforms. As a language, it's excellent.
Re: More functional C#
#47Earlier quoted context omitted.
You're not hanging around in the right circles then, I hear complaints about C# all the time ;). While there's plenty of limitations and frustrations you can run into with C#, I've generally felt they were largely due to intentional tradeoffs I can understand, and fail to know a better alternative to. This makes me significantly less ranty about it, in contrast to my other daily bread and butter of C++. Even if I fel…
Am currently reading "Thinking Fast and Slow" by Kahneman, this is a perfect example of a base-rate fallacy (something addressed in the book). Absent any other evidence, one should assume the amount of complaining a language would get is about proportional to how widely it's used. So the lack of complaining (asserted by the parent) about C# might be as much a reflection on how widely it's used, than on the language i…
[0]: http://www.tiobe.com/index.php/content/paperinfo/tpci/index....
Re: More functional C#
#48But why do things "near functional" when you have F# which is fully functional?
Because "near functional" is sufficient most of the time and if there is no compelling reason to split your codebase among two different languages, you shouldn't do it. Not to mention that there's probably 1000 C# developers for every F# developer Have a look at http://www.indeed.com/jobanalytics/jobtrends?q=c%23%2C+f%23&... And someone has to maintain your near functional or functional code
Also, with default immutability, type providers, and less boilerplate I feel a lot more confident with the quality of the code I write, and I am able to write it faster.
Since it's possible to do full C#-style OO in F#, I personally don't see a reason to use C# at all. F# is more supporting of a multi paradigm codebase, it's safer, and requires less code to do the same things as C#. Combine that with what I would consider to be an extremely short learning curve, I am happy finding C# programmers and letting them learn F# the first week of the job.
Re: More functional C#
#49But why do things "near functional" when you have F# which is fully functional?
Re: More functional C#
#50I have read a lot of lang. wars and complaints about programming languages... but C# is one of the only languages that I can't remember reading any complaints about. None. I must conclude, by the usual Stroustrup quote, that no one uses C#. (yes this is tongue in cheek)
It's a little bit too verbose, it doesn't have quite the flexibility or metaprogramming ability of a language like Python. But in general it's a very solid choice. You can even get around a lot of the inefficiency of GC by careful usage of structs.
I never got the verbosity argument. Verbosity comes down to the person using the language. With C#, you can be as verbose as you want to. Do you have any examples?
What kind of inefficiency are you speaking of? the CLR's GC is one of, if not the, most efficient around.