Нам необходимо разработать настольное приложение, которое запускает несколько версий других настольных приложений. Некоторый контекст - это в среде высокопроизводительных вычислений (HPC). У нас есть старое приложение, построенное на Java, использующее собственный формат данных. Файлы данных содержат комментарии, используемые для отображения названия и версии приложения, переменных среды, которые необходимо установить, и переменных, которые содержат команды, которые необходимо выполнить (например, java -jar somejar.jar или запуск EXE). Мне сказали, что другие форматы, такие как YAML и JSON, были рассмотрены и исключены, потому что они «имеют не прощающие синтаксические анализаторы, и одна из ключевых целей - это компенсация человеческих ошибок. Другой ключевой вопрос - поддержка кроссплатформенных различий и их обработка». как равные. Например, косые черты, разделители полей, пробелы, табуляции, отступы. "
У меня два основных вопроса. Сначала для формата данных. Являются ли вышеуказанные причины достаточным основанием для создания собственного формата данных и пользовательских синтаксических анализаторов для него? Или они могут быть преодолены? Я думаю, что YAML может быть правильным выбором.
Вот некоторые из перечисленных целей:
# Support line and in-line comments
# -Self-heal
# -Allow %KEY%, ${KEY}, <<KEY>> style environments on all platforms
# -Expand all environments in-line, prior to writing invocation script
# -Invoke in separate system process
# -Allow slashes in any direction on all platforms - / or \ - non-escaped
# -Do not require any escaping or quoting
# -Self-set capabilities (i.e., KEY=<<KEY>>;add
Второй - это стек технологий. Что касается разработки десктопов, я рассматриваю OpenJFX с OpenJDK-11 и использование jlinker или jpackage для создания образа приложения. Мне сказали, что индустрия отходит от этих технологий. В качестве альтернативы предлагается использовать ElectronJS , который использует HTML, CSS, JavaScript, NodeJS и встроенный Chromium. Я чувствую, что это по сути "вздор" и неэффективно. Я могу ошибаться в этом. Вы бы порекомендовали ElectronJS в качестве направления для разработки десктопов, JFX или чего-то еще?