title: Why are there four mono C# compilers?
body: <p><a href="http://www.mono-project.com/CSharp" rel="noreferrer">This page</a> explains about the four different mono compilers - mcs/gmcs/smcs/dmcs. </p>
  
  <p>To me, it's a little bit weird to have four C# compilers. As normally the newer version of compiler maintains backward compatibility. </p>
  
  <p>I assume that's because of runtime support issues, but Microsoft's C# has one csc.exe that supports all of the runtime versions. </p>