Kaffe



Kaffe — реализация виртуальной машины Java, созданная по методологии «чистой комнаты». Она поставляется с Java SE-подмножеством Java API и инструментами, необходимыми для обеспечения среды исполнения Java. Как и многие другие свободные виртуальные машины Java, Kaffe использует GNU Classpath в качестве библиотеки классов.

Kaffe, впервые выпущенная в 1996 году, была первой свободной реализацией Java. Первоначально разрабатываемая в рамках другого проекта, она стала настолько популярной, что разработчики Тим Уилкинсон и Петр Мехлиц основали Transvirtual Technologies, Inc. с Kaffe в качестве флагманского продукта компании. В июле 1998 Transvirtual выпустила Kaffe OpenVM под GNU General Public License. Сейчас она разрабатывается командой программистов со всего мира. Помимо списка рассылки, с разработчиками можно связаться по IRC (канал #kaffe сервера irc.freenode.net).

Kaffe является легковесной и переносимой виртуальной машиной, хотя она значительно медленнее, чем коммерческие реализации. По сравнению с эталонной реализацией виртуальной машины Java, написанной Sun Microsystems, Kaffe значительно меньше; это делает её привлекательной для разработчиков встраиваемых систем. Она поставляется с JIT-компиляторами для многих микроархитектур, и в целом портирована на более, чем 70 платформ. Она работает на разных устройствах, от встраиваемых устройств SuperH до мейнфреймов IBM zSeries, и даже на PlayStation 2.

В отличие от других реализаций, ранее Kaffe использовала библиотеку GMP для поддержки вычислений с плавающей точкой. Эта функция была удалена из версии 1.1.9, что вызвало протесты от людей, утверждавших, что они использовали Kaffe исключительно из-за того, что вычисления с использованием GMP производились быстрее, чем в обычной чистой реализации Java, доступной в других дистрибутивах. Возможность была удалена для сокращения работ по сопровождению в ожидании, что все заинтересованные люди интегрируют поддержку GMP в GNU Classpath или OpenJDK. Впоследствии GNU Classpath представил поддержку GMP в версии 0.98.