Here are most known Criticisms
- Applications running in a managed environment such as the Microsoft framework’s CLR or Java’s JVM tend to require more system resources than similar applications that access machine resources more directly. Some applications, however, have been shown to perform better in .NET than in their native version. This could be due to the runtime optimizations made possible by such an environment, the use of relatively well-performing functions in the .NET framework, just-in-time compilation of managed code, or other aspects of the CLR.
- As JIT languages can be more easily reverse-engineered than native code to algorithms used by an application there is concern over possible loss of trade secrets and the bypassing of license control mechanisms. Many obfuscation techniques already developed, however, can help to prevent this; indeed Microsoft’s Visual Studio 2005 includes such a tool.
- In a managed environment such as the Microsoft framework’s CLR or Java’s JVM the regularly occurring garbage collection for reclaiming memory suspends execution of the application for an unpredictable lapse of time (typically no more than a few milliseconds).
- Since the framework is not pre-installed on older versions of Windows an application that requires it must verify that it is present, and if it is not, guide the user to install it.
- Newer versions of the framework (3.5 and up) are not pre-installed on any versions of the Windows operating system. Some developers have expressed concerns about the large size (around 54 MB for end-users with .NET 3.0 and 65 MB with .NET 3.5).
Reference : Dilip Kumar Jena ( https://mstechexplore.wordpress.com )