OberonCore
https://forum.oberoncore.ru/

Выбор языка под специфическую задачу.
https://forum.oberoncore.ru/viewtopic.php?f=27&t=2400
Страница 1 из 1

Автор:  Alexey Veselovsky [ Воскресенье, 28 Февраль, 2010 17:27 ]
Заголовок сообщения:  Выбор языка под специфическую задачу.

Долго думал в какую тему поместить этот вопрос, в результате решил разбить вопрос на два. Один в эту тему, другой в Общие Вопросы по КП.

В общем имеем следующую общую задачу:
Есть некая программа-сервер. При взаимодействии с клиентом используется некое множество алгоритмов/формул которые должны быть на клиенте и сервере идентичными. С течением времени, по мере развития программы-сервера, алгоритмы и формулы меняются, соответственно необходимо чтобы с минимальными усилиями можно было переносить это в программы-клиенты. Программы-клиенты пишутся в т.ч. и третьими сторонами, используя самые различные технологии. Например сервер писан может быть под jvm, клиенты же могут под jvm, .net, ну и на каком-нибудь С++, соответственно нативный код.

Естественно возникает желание это самое множество алгоритмов-формул реализовать на неком языке существующем как под jvm, так и под .net и непосредственно какой-нибудь x86. Писатель клиента просто берет последние исходники оных алгоритмов-формул на этом языке и собирает себе либу под jvm/.net/x86/или что там у него. У него в результате получается абсолютно родная (с т.з. его инструментария) библиотека. Зависимостей от библиотек у этих алгоритмов-формул нет никаких, супер-пупер абстракций тоже нет, так что, теоретически, проблем быть не должно, если получится выбрать нужный язык.

Т.о. имеем проблему выбора языка. Производительность не критична. Но, однако, не хочется использовать языки с динамической типизацией, ибо надежность важна.

Из всего многообразия языков, что я пересмотрел, только Component Pascal существует для .net/jvm/x86 одновременно.
Для .net/jvm можно использовать gpcp, для jvm я проверил -- генерируются вполне приличные class-файлы, которые могут легко быть использованы из java. .net я ещё не щупал, но проблем тоже быть не должно, но в плане x86 у меня есть сомнения (см тему viewtopic.php?f=1&t=2401).

Автор:  Alexey Veselovsky [ Воскресенье, 28 Февраль, 2010 23:21 ]
Заголовок сообщения:  Re: Выбор языка под специфическую задачу.

Нарисовался ещё один возможный претендент: OCaml.
Как оказалось есть таки компиляторы в java-байткод. Например:
http://cafesterol.x9c.fr/index.html
http://cadmium.x9c.fr/index.html

Для .net'а оно существует в виде F# -- подмножества OCaml'а с некоторыми .net-специфическими фичами.
Ну а для x86 и всякого подобного есть обычный компилятор.

Правда вопрос в том, насколько то что нагенерит компилятор ocaml'а в либу, будет удобно дёргать из какого-нибудь C++.

Автор:  Alexey Veselovsky [ Понедельник, 01 Март, 2010 10:00 ]
Заголовок сообщения:  Re: Выбор языка под специфическую задачу.

Ха! Слона то я и не приметил! Есть же Ада! Есть версии gnat'a генерирующие байткод как для jvm, так и для .net. Причем, судя по всему, adacore активно работает над интеграцией во все стороны. Т.е. ada <-> java, ada <-> .net.

Всё, думаю вопрос закрыт.

Автор:  Alexey Veselovsky [ Понедельник, 01 Март, 2010 14:25 ]
Заголовок сообщения:  Re: Выбор языка под специфическую задачу.

Предложили ещё один приятный вариант -- написать всё на java например, а потом оттранслировать это дело в javascript.

Существуют трансляторы в js нескольких языков, в т.ч. например haskell'я.

Ну, а js уже можно использовать откуда угодно.

Страница 1 из 1 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/