Es el mecanismo de control de versiones impuesto por la plataforma la característica más necesaria de Jav

Como desarrollador, a menudo me interesan las nuevas funciones de lenguaje que pueden facilitarle la vida. Por ejemplo, Java 5 trajo genéricos y anotaciones al lenguaje, características que definitivamente pueden aumentar su productividad.

Sin embargo, cuando miro hacia atrás cerca de una década trabajando en la plataforma Java, descubro que los problemas relacionados con el control de versiones son el mayor culpable del esfuerzo improductivo y innecesariamente gastado. Horas y horas de buscar la versión correcta del jar, tratar de conciliar algunos conflictos de versiones, actualizar las bibliotecas dependientes, etc. Cuando comencé a trabajar en Java, las cosas no eran tan difíciles, tendrías algunas bibliotecas de terceros y eso es todo. . Hoy, su aplicación web típica podría usar fácilmente: Spring Framework, Hibernate, Struts, lo que sea. Todos estos llevan una serie de bibliotecas de terceros dependientes. Hoy, mis archivos de oído incluirán típicamente unas 40 o más bibliotecas de terceros. ¡Un verdadero infierno!

Con anotaciones, no tengo que administrar archivos de configuración para Hibernate, por ejemplo. Una buena característica, pero no he visto muchos problemas derivados del hecho de que mantengo mis descriptores en un archivo separado. Con los genéricos, no me atrevo a escribir declaraciones emitidas, pero en todo mi soporte de programación no puedo recordar un solo error que podría haberse evitado mediante el uso de contenedor de tipo seguro. ¿No habría sido mucho más valiosa la solución a los problemas de versiones?

Todos estos problemas han resultado en varias herramientas como Maven, hiedr, One Jar, Jar Jar Links (¡no es broma!), incluso apropiadamente llamadoJar Hell etc. Incluso si utiliza algunas de estas herramientas, está lejos de ser inmune al problema. Yo uso Maven 2 y ha sido de gran ayuda. Aún así, es un mundo en sí mismo. El programador novato puede tardar un tiempo en aprenderlo. Mover sus proyectos heredados a la estructura de Maven también es un dolor.

Parece que en .Net han aprendido la lección con dll hell y la administración de los ensamblados .Net es mucho más simple.

Parece que hay planes para resolver este problema para la plataforma Java y alternativas como OSGI. Creo que se necesita urgentemente algún mecanismo de control de versiones básico y forzado por la plataforma

Respuestas a la pregunta(5)

Su respuesta a la pregunta