Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    text
    copied!<p>There is actually a lot of debate on how C# should evolve. Indeed, some consider that by adding a lot of new features the language becomes to difficult to learn, but most view C# as a multi-paradigm programming language. It is first of all a strongly-typed full-featured object-oriented language, but it does have concepts that until recently were restricted to functional and dynamic programming languages. These features, though they might seem confusing for a beginner, offer a lot of flexibility and power, and sometimes they might prove enough to keep you from using a domain specific language in the application and dealing with all the integration issues. You can always talk about what should be implemented in the language itself and what should be part of the framework, but keep in mind that most of the features you mention and consider as superfluous are actually the result of the developers' requests, and they do provide functionality that sets C# apart from other languages (Java comes to mind). Once a programmer gets uses to these features, he will come to realize their advantages. </p> <p>You mentioned Linq, and I have to admit I was a bit skeptical at first, since I have always considered SQL to be quite a natural language to work with data, but now I really like and I do see the advantage of having queries evaluated at compile time. Lambda expressions are always nice, indeed they can make the code hard to read if used excessively, but sometimes they actually simplify it. I'm not a big fan of the 'var' keyword but sometimes it does come in handy, and let's be honest not using it when writing Linq would make the code difficult to read. I'm a beginner programmer myself, and I don't think it is difficult to learn these concepts. I also use Java a lot in school, and I really miss some features of C# (I'm not saying that Java is a bad language, on the contrary, in some regards I think it is better than C# - code contracts, especially for academic purposes). </p>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload