Чтобы сделать разработку переносимой на 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#.