Soy nuevo en compiladores Java modernos y máquinas virtuales, así que tengo curiosidad por saber qué problemas técnicos encuentran los grandes proyectos Java (más de 5000 clases considerables), durante la compilación y en tiempo de ejecución, a medida que crece el nudo gordiano de las dependencias de paquetes.¿Existen razones técnicas para evitar la creación de dependencias de paquetes muy enredados en grandes proyectos de Java?
En grandes proyectos de C++, puede tener problemas técnicos (dejando de lado todas las inquietudes de mantenimiento) si se aleja de un gráfico de dependencias de biblioteca acíclica (o paquete) en proyectos grandes.
Algunos ejemplos
- de compilación que se quede sin memoria si la mayor parte de un árbol de código fuente está incluido
- vinculación también puede hacerlo si se incluyen demasiados archivos de objetos (archivos de objetos generalmente se correlacionan con los paquetes en C++ proyectos)
El problema se agrava considerablemente con la instanciación de plantillas en línea. Las estaciones de trabajo modernas no están equipadas para compilar y vincular un proyecto que reúne la mayoría de las 5000 clases considerables en una u otra fase de la compilación.
Los desarrolladores de Java que he preguntado no creen que las limitaciones técnicas sean una razón para evitar dependencias de paquetes circulares (se aplican otras motivaciones). ¿Hay alguno?
Independientemente de las limitaciones técnicas de Java, las dependencias de paquetes cíclicos pueden conducir a un monolito. Evitarlos puede ser útil. –
@ AndyThomas-Cramer - ¿Qué es una "dependencia del paquete" en Java? No creo que exista tal cosa (en lo que se refiere al compilador). –
@TedHopp: consulta la respuesta a tu comentario similar a continuación. –