# Disadvantages

Compiled code is usually seen as an advantage, but it also has its own drawbacks. If you change any part of your code, you must recompile the whole application, this makes the deployment process a bit tedious.

Even though C# is a compiled language, it's not as fast as native code compiled languages. The two main reasons for this are: C# is compiled to IL (intermediate language) instead of machine code and due to the overhead added by the GC (garbage collector)

Finally, even though C# is Cross-Platform compatible, it is still used mainly within .NET ecosystem and you would most likely see C# on Windows based OS. Nowadays it's gaining popularity (especially since .NET Core release) and is also being seen on other platforms as well such as on Linux and Mac.
