Как скрестить ужа с ежом? Эту, казалось бы, анекдотичную задачу довольно неплохо решили разработчики проекта Ja.NET. В результате их кропотливого труда на свет появилось уникальное творение — JVM, работающая под Microsoft .NET Framework. Разработчики заявляют о частичной совместимости с Java SE 1.5.
На этом месте разработчики со стажем, поморщившись, вспомнят про полумертвенький J#, впоследствии практически заброшенный «родителями». Но Жанетт — в отличие от той поделки — девушка серьезная, и подход демонстрирует более вдумчивый. В ее родителях числятся именитые проекты: Eclipse JDT compiler, Mono's Cecil, и Apache Harmony. В отличие от своих аналогов, Ja.NET представляет из себя полноценную виртуальную ява-машину, работающую на основе .NET. Кроме того, компилятор генерирует родной код MSIL, что положительно сказалось на производительности.
Как видно из примера кода, в программе можно использовать как библиотеку классов Java, так и BCL .NET.
Подводя итог, можно сказать что проект насколько интересен, настолько же и амбициозен. Хочется надеяться что разработчики смогут выпустить полноценно работоспособный продукт. Может их в этом поддержит одна из «высоких сторон»?
На этом месте разработчики со стажем, поморщившись, вспомнят про полумертвенький J#, впоследствии практически заброшенный «родителями». Но Жанетт — в отличие от той поделки — девушка серьезная, и подход демонстрирует более вдумчивый. В ее родителях числятся именитые проекты: Eclipse JDT compiler, Mono's Cecil, и Apache Harmony. В отличие от своих аналогов, Ja.NET представляет из себя полноценную виртуальную ява-машину, работающую на основе .NET. Кроме того, компилятор генерирует родной код MSIL, что положительно сказалось на производительности.
class HelloWorld {
public static void saySomethingUsingJava(String message) {
System.out.println(message);
}
public static void saySomethingUsingDotNet(String message) {
System.Console.WriteLine(message);
}
}
public class MyProgram {
public static void main(String[] args) {
HelloWorld.saySomethingUsingJava("A message via Java API's");
HelloWorld.saySomethingUsingDotNet("A message via .NET framework API's");
}
}
Как видно из примера кода, в программе можно использовать как библиотеку классов Java, так и BCL .NET.
Подводя итог, можно сказать что проект насколько интересен, настолько же и амбициозен. Хочется надеяться что разработчики смогут выпустить полноценно работоспособный продукт. Может их в этом поддержит одна из «высоких сторон»?