title: Difference between CLR 2.0 and CLR 4.0
body: <p>I have read countless blogs, posts and StackOverflow questions about the new features of C# 4.0. Even new WPF 4.0 features have started to come out in the open. What I could not find and will like to know:</p>
  
  <ol>
  <li>What are the major changes to CLR 4.0 from a C#/WPF developer perspective?</li>
  <li>What are the major changes to CLR 4.0 as a whole?</li>
  </ol>
  
  <p>I think, internally, most changes are for the new dynamic languages and parallel programming. But are there any other major improvements? Because language improvements are just that, language improvements. You just need the new compiler and those features can be used with a lower version of .Net, apart from version 1.0/1.1 (at least most of them can be used).</p>
  
  <p>And if the above features are the only ones, only for these features the version is changed to 4.0, which I think is 4.0 because of being based on .Net 4.0 version (i.e. after 1.0/1.1, 2.0 &amp; 3.0/3.5). Is the version increment justified?</p>
  
  <p><strong>Edited:</strong></p>
  
  <p>As Pavel Minaev pointed out in the comments, even those two features are CLR independent. There were speed and other improvements in 3.0 and 3.5 also. So why the version increment?</p>