Чтобы сделать разработку переносимой на Java, имеет ли смысл делать всю разработку на J# vs C#?

Чтобы сделать разработку переносимой на Java, имеет ли смысл делать всю разработку на J# vs C#? Что происходит с отсутствующими битами в Java, которые существуют в C#, такими как лямбда-выражения и так далее?

Каков наилучший способ достижения портативности?

3 ответа

Решение

Я определенно не буду использовать J# - он больше не поддерживается, и все равно поддерживает только Java 1.1.4, IIRC.

Я лично рекомендовал бы поддерживать общую архитектуру между двумя языками, но затем написать код отдельно, вручную, принимая во внимание различные идиомы в разных языках.

Если ваша кодовая база использует тесты, управляемые данными, было бы хорошо разделить эти данные между двумя языками, чтобы помочь обеспечить переносимость данных.

Я предлагаю вам больше не использовать J#, поскольку оно было прекращено. Последняя версия была поставлена ​​с Visual Studio 2005.

В дополнение к J#-специфическим языковым расширениям и поддержке.NET CLR его библиотека времени выполнения реализует Java 2 Collections Framework (без java.util.concurrent расширения) и даже некоторые JFC/Swing через дополнительную библиотеку пользовательского интерфейса.

Таким образом, вы будете ограничены API Java 1.4.

Учитывая, что J # уже давно снят с производства, я бы не советовал вам тратить на это свое время.

Если вам действительно нужна переносимость между JVM и CLR, я бы посмотрел на IKVM (реализует Java 1.7 API поверх CLR), Scala для.NET (прекращено около Scala 2.10) или языки, такие как Ruby ( JRuby / IronRuby) или Python ( Jython / IronPython).

Кроме того, вы можете создать свой C# для.NET - есть конвертеры Java в C#.

Другие вопросы по тегам