El uso (y abuso) del lenguaje.

Algunas características del lenguaje no son malas por sí mismas, pero pueden permitir o incluso alentar malas prácticas en la programación. Por ejemplo, veamos algunas críticas al lenguaje C. En C, la gestión de la memoria se realiza de forma manual: no se controla si se accede a una posición fuera de rango en un vector, es posible eliminar accidentalmente la marca de final en una cadena de caracteres, hay que controlar que no se accede a posiciones de memoria que se han liberado previamente. No realizar estos controles permite generar un código muy eficiente, pero sin una buena disciplina por parte del desarrollador/a también abre la puerta a innumerables bugs y agujeros de seguridad.

El lenguaje de programación Java y la plataforma Java ha sido criticada por elecciones de diseño en el lenguaje y la plataforma, incluyendo la implementación de generics, programación orientada a objetos forzada, la administración de números sin signo, la implementación aritmética de punto flotante, y una historia de vulnerabilidades de seguridad en la implementación Java VM, HotSpot. Además, el software escrito en Java, especialmente sus versiones tempranas, ha sido criticado por su rendimiento comparado al software escrito en otros lenguajes de programación. Desarrolladores también han remarcado que hay diferencias en varias implementaciones de Java que tienen que ser tomadas en cuenta cuándo se está escribiendo complejos programas de Java que tiene que ser utilizado a través de estas implementaciones.