С первых дней моей студенческой жизни я использую Java, и самая большая проблема, с которой мы сталкиваемся, это абсолютно менее продуктивная, чем у других интерпретируемых языков. Все люди уверены, что Java - один из лучших скомпилированных языков.
Однако ни Sun, ни Oracle не приложили достаточных усилий для решения этой проблемы. Одной из проблем, конечно же, является перезагрузка классов.
Последние попытки сообщества решить эту проблему - это проект DaVinci Hotswap , JRebel , PlayFramework . Однако на момент написания этой статьи они все еще не были зрелыми (имо) и родными. Некоторые из них не готовы для предприятий, некоторые не совместимы со всеми IDE, некоторые из них являются незрелыми универсальными проектами. Дорожная карта и даже Java для разработчиков готовы, но сообщество Java до сих пор не имеет решения для перезагрузки классов на лету.
Так ли сложно Oracle приложить усилия для решения этой проблемы? Почему перезагрузка классов еще не была реализована изначально?
Ответы:
Что насчет JEE / J2EE? Впервые это было выпущено 12 лет назад. Это поддерживается непосредственно Sun / Oracle и многими другими поставщиками.
А как насчет OSGi? Его первый релиз был почти 11 лет назад. Eclipse (IDE) построен на нем, Glassfish из Sun / Oracle и Apache Felix широко его используют. Вы можете использовать его с Spring-OSGi.
Он не был изначально поддержан в Java SE, потому что корпоративные приложения специально поддерживались серверами приложений как отдельные продукты.
источник
Попробуйте это: http://www.zeroturnaround.com/blog/reloading_java_classes_401_hotswap_jrebel/
Есть несколько сложных вопросов. Я на самом деле не знаю каких-либо решений (для Java или нет), которые вносят структурные изменения в объекты с состоянием. Динамические языки, такие как Ruby или PHP, на самом деле этого не делают, я не уверен насчет Эрланга, но я думаю, что он также потеряет состояние.
источник